自制linux小系统

自制linux

天说一说怎么自制一个linux,也就是用一块新硬盘来自己搞一个linux。硬盘拆掉撞到其他机器上可以照常使用,需要什么东西都是自己添加的哦。

那我就在虚拟机里进行了嘿嘿嘿。。。

1.在我的centos里加了一块新的硬盘并顺便分了个区,并且格式化了一下。

[[email protected] ~]# fdisk /dev/sdb

WARNING: DOS-compatible mode is deprecated. It‘s strongly recom
mended to
         switch off the mode (command ‘c‘) and change display u
nits to
         sectors (command ‘u‘).

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-2610, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610
): +10G

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (1307-2610, default 1307):
Using default value 1307
Last cylinder, +cylinders or +size{K,M,G} (1307-2610, default 2
610):
Using default value 2610

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[[email protected] ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0     11:0    1  3.7G  0 rom  /media/CentOS_6.9_Final
sda      8:0    0  200G  0 disk
├─sda1   8:1    0    1G  0 part /boot
├─sda2   8:2    0   50G  0 part /
├─sda3   8:3    0   50G  0 part /app
├─sda4   8:4    0    1K  0 part
└─sda5   8:5    0    2G  0 part [SWAP]
sdb      8:16   0   20G  0 disk
├─sdb1   8:17   0   10G  0 part
└─sdb2   8:18   0   10G  0 part         =》sdb就是我新硬盘,分了两个10G的分区。
[[email protected] ~]#

接下来就是两个分区的文件系统(另一个分区一样)

[[email protected] ~]# mkfs.ext4 /dev/sdb1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
655776 inodes, 2622603 blocks
131130 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2688548864
81 block groups
32768 blocks per group, 32768 fragments per group
8096 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 20 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[[email protected] ~]#

创建两个分区一个是为根目录挂载,另一个是为了boot挂载。

2.在自己的linux下创建/media/boot(该boot是制作的boot),之后把/dev/sda1挂载到/media/boot,这个就不做演示了。

3.之后安装grub:grub-install --root-directory=/media /dev/sdb(不能是sdb{1,2},grub安装是安装前446字节还不到分区)

[[email protected] ~]# grub-install --root-directory=/media/ /dev/sdb
Probing devices to guess BIOS drives. This may take a long time.
Installation finished. No error reported.
This is the contents of the device map /media//boot/grub/device.map.
Check if this is correct or not. If any of the lines is incorrect,
fix it and re-run the script `grub-install‘.

(fd0)	/dev/fd0
(hd0)	/dev/sda
(hd1)	/dev/sdb
[[email protected] ~]#
[[email protected] ~]#
[[email protected] grub]# pwd
/media/boot/grub
[[email protected] grub]# ls
device.map        jfs_stage1_5       ufs2_stage1_5
e2fs_stage1_5     minix_stage1_5     vstafs_stage1_5
fat_stage1_5      reiserfs_stage1_5  xfs_stage1_5
ffs_stage1_5      stage1
iso9660_stage1_5  stage2
[[email protected] grub]#        ===》现在grub下已经有基本的文件了

4.拷贝一些重要文件。在本人机器上vm,init文件名称是我自己定义的,和其他版本可能不一样。

[[email protected] ~]# cp /boot/vmlinuz /media/boot/
[[email protected] ~]# cp /boot/initramfs.img /media/boot/
[[email protected] ~]#

5.创建编辑grub.conf文件

[[email protected] ~]# vim /media/boot/grub/grub.conf
default=0
timeout=5
title cnetos 8.8
        kernel /vmlinuz root=/dev/sda2 init=/bin/bash
        initrd /initramfs.img
~

kernel和initrd添加的是我第四部拷贝的两个文件,所以文件名是一样的。

6.本人是提前做了个脚本,脚本功能是输入命令,把命令和关联的库都cp到某一个目录下(也就是现在新创建的boot下),用这个脚本来实现自己小Linux里面的命令功能。

[[email protected] ~]# copycmd31.sh 
please input command(q或quit退出) : ls
请输入一个目标路径(绝对路径): /media
/bin/ls  ======> /media/bin 
/lib64/libselinux.so.1 ======> /media/lib64/libselinux.so.1 
/lib64/librt.so.1 ======> /media/lib64/librt.so.1 
/lib64/libcap.so.2 ======> /media/lib64/libcap.so.2 
/lib64/libacl.so.1 ======> /media/lib64/libacl.so.1 
/lib64/libc.so.6 ======> /media/lib64/libc.so.6 
/lib64/libdl.so.2 ======> /media/lib64/libdl.so.2 
/lib64/ld-linux-x86-64.so.2 ======> /media/lib64/ld-linux-x86-64.so.2 
/lib64/libpthread.so.0 ======> /media/lib64/libpthread.so.0 
/lib64/libattr.so.1 ======> /media/lib64/libattr.so.1

功能如上,拷贝完需要的重要命令之后在把该创建的目录都创建一遍这个简单的linux就差不多完成了。

[[email protected] media]# mkdir {etc,root,sys,usr,var,proc}
[[email protected] media]# ls
bin   dev  home  lib64       proc  sbin  tmp  var
boot  etc  lib   lost+found  root  sys   usr
现在就差不多像个简单的linux了。

现在可以把这个自己制作的硬盘安装到其他机器上看看效果了



时间: 2024-12-21 15:59:46

自制linux小系统的相关文章

Centos 6.8 为自己打造Linux小系统

一.前言 Linux操作系统至1991.10.5号诞生以来,就源其开源性和自由性得到了很多技术大牛的青睐,每个Linux爱好者都为其贡献了自己的一份力,不管是在Linux内核还是开源软件等方面,都为我们后来人提供了一个良好的学习和研究环境.做为一个Linuxer,感谢各位前辈们为我们提供一个自由的空间,让我们也能够在学习的同时去研究Linux. 本文主要通过裁剪现有Linux系统,打造一个属于自己的Linux小系统,让其能够装载网卡驱动,并配置IP地址,实现网络功能. 二.原理 启动流程介绍:

Linux还是亲生的好,实战自制Linux操作系统

实战自制Linux操作系统 本文主要通过裁剪现有Linux系统,打造一个属于自己的Linux小系统,让其能够装载网卡驱动,并配置IP地址,实现网络功能. 自制linux系统 步骤概述: 1.新建一个硬盘2.在该新硬盘上新建两个分区,一个当boot分区,一个当/分区3.格式化并且挂载两个分区4.安装grub至目标磁盘5.为grub提供配置文件6.复制内核文件和initrd文件7.创建目标主机根文件系统8.移植bash命令和其库文件到根文件系统9.装载模块,实现网络功能10.启动测试 特别提醒 如果

使用U盘自制Linux操作系统

章节导航: 前言 Linux系统启动流程 实验前的准备 实验过程 拷贝命令脚本 一.前言 我们生活中离不开电脑,时时刻刻在跟操作系统打交道,有时候会被系统中出现的错误搞得头昏脑胀,使用操作系统,不如亲自动手组建一个自己的简单的系统,体验一下制作操作系统的乐趣.在系统的学习了Linux操作系统之后,就有了理论基础,所以,迫不及待的想做一个自己的简单的Linux小系统,有兴趣的同学也可以来动手做一做. 在接下来的文章中,小编会先从Linux系统的启动流程入手,将启动过程一一展示出来,再进行实验指导.

grub命令及小系统的制作

在计算机启动的时候,并不会像人一样直接就知道该运行操作系统,而是需要一个程序来进行引导,告诉计算机该去如何的启动系统.这个程序可以是grub程序,或者其他的程序也可以,在这里简单的介绍grub程序. grub程序分为三个部分,分别是stage1.stage1_5和stage2.其中stage1的作用是写入mbr中存储的bootloader程序,将stage1_5载入内存中,并执行,然后接下来执行的就是stage1_5了,它位于mbr之后的扇区,通过提供基本文件系统驱动让stage1中的bootl

关于 开机启动加密破坏修复 自制linux系统

开机破坏并且修复之      自制linux系统            CentOS 6启动流程:POST --> Boot Sequence(BIOS) --> Boot Loader -->Kernel(ramdisk) --> rootfs --> switchroot --> /sbin/init -->(/etc/inittab, /etc/init/*.conf) --> 设定默认运行级别--> 系统初始化脚本rc.sysinit --&g

手把手带你自制Linux系统之二 简易Linux制作

手把手带你自制Linux系统之二 简易Linux制作 本文利用CentOS5.5自带内核制作一个Mini Linux. 打开准备工作中创建的CentOS,为另一个虚拟机MiniLinux添加一个最小Linux所需要的文件. 1. 创建分区 为准备好的磁盘创建两个主分区,大小分别为20M和512M. 使用fdisk命令创建分区详细过程: fdisk /dev/hda 创建第一个20M分区依次输入: n --> p --> 1 --> <Enter> --> +20M 这几

模拟自制linux系统

(1) 新建硬盘对其分区 硬盘文件名CentOS 6.9-0.vmk (2)识别新加硬盘,记录设备名sdb (3)对其新建硬盘sdb分区(fdisk /dev/sdb),至少有根以及boot分区 (4)对分区创建文件系统 设备sdb分区如下sdb1作为boot分区 sdb2作为根所在分区 [[email protected] ~]# mkfs.ext4 /dev/sdb1 [[email protected] ~]# mkfs.ext4 /dev/sdb2 (5)创建一级目录,并挂载 注:新建s

自制linux系统——打造属于自己的linux系统

很多时候我们直接使用别人帮我们打包好的一个linux系统,总感觉某些工具或者命令多余或者效果不好,那我们是否可以自制一个比较符合自己需求的linux系统出来了,答案是肯定的,而且实现这个目标也并困难,需要的时间也不会太长.接下来就给大家分享如何自制的过程. 环境需求: 1.Vmware虚拟机 2.Centos6.8光盘镜像IS0文件 3.Vmware上安装一份Centos6.8的操作系统 第一步:装载一块新硬盘到虚拟机的Centos6.8系统上,并保证系统正常读取 [[email protect

Linux 小知识翻译 - 「X Window系统」

X Window System是给Unix系的OS提供的一套窗口管理软件或者说是组件.X Window System已经成为了在Linux上使用GUI环境的不可或缺的东西了. X Window System诞生于马萨诸塞州(美国州名)工科大学的研究组,现在主要由  X.Org Foundation 这个组织来负责开发.目前的版本是「X11」(version 11). 上面所说的内容可能很多人都知道,但 X Window System 的架构「采用了服务端·客户端模式」这点就不那么广为人知了.正因