制作简单的小Linux系统
前言
本篇博文主要通过裁剪现有Linux系统,打造出一个属于你自己的小Linux系统,并让其能够装载网卡驱动,配置IP地址后可以实现网络功能。但在开始制作之前需要先向你说明本次制作前的一些准备工作,以及制作的思路。
制作前的准备
凡事预则立,不预则废,无论工作学习皆是如此。所以在开启本次自制小Linux的实验之前,你需要先做好两大项准备,分别是看的见的物理设备和看不见的制作思路。
物理设备
首先,你要准备一台linux主机和一块磁盘,这块磁盘用于安装和启动我们自制的小Linux,可以是块硬盘,也可以是U盘。对于磁盘空间没过多要求,大于2G就可以。
将准备好的磁盘连接到Linux主机,使用lsblk命令查看连接到主机的设备,确定你的磁盘被加载到了系统中。
root&Centos6: ~#lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 3.7G 0 rom /media/CentOS_6.9_Final
sdb 8:16 0 16G 0 disk
#这块sdb磁盘就是我为本次实验准备的磁盘。
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1000M 0 part /boot
├─sda2 8:2 0 48.8G 0 part /
├─sda3 8:3 0 47.9G 0 part /app
├─sda4 8:4 0 1K 0 part
└─sda5 8:5 0 2G 0 part [SWAP]
制作思路
有一个清晰且准确的实验流程思路,对于成功完成实验至关重要。下面是我以清单的方式向你说明的大致制作流程,请在实验过程中务必按照此流程操作,以确保实验成功。
- 创建分区和文件系统
- 挂载boot分区
- 安装grub
- 复制内核和initramfs文件
- 建立grub.conf配置文件
- 挂载根分区
- 复制bash和相关命令及相关库文件
- 创建根分区下的一级目录
- 测试定制的小Linux是否制作成功
创建分区和文件系统
使用fdisk命令创建分区,需要至少划分两个分区,用于后面boot和根的挂载。
root&Centos6: ~#fdisk /dev/sdb
……此处省略部分显示内容
Command (m for help): n #n:新建分区
Command action
e extended
p primary partition (1-4)
p #p:创建主分区
Partition number (1-4): 1 #1:创建第一个主分区
First cylinder (1-2088, default 1): #此处回车默认就可
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-2088, default 2088): +100M
#此处输入+100M,代表第一分区的大小是100M,此分区之后会后用来挂载/boot分区。
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (15-2088, default 15): #此处回车键
Using default value 15
Last cylinder, +cylinders or +size{K,M,G} (15-2088, default 2088):#此处回车键
Using default value 2088
#这是创建的第二个分区,这里没有指定大小,而是直接回车使用默认值,将所有剩余空间全部分给第二分区,之后会用来挂载根分区。
Command (m for help): w
#w:保存退出
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
使用lsblk命令查看创建好的分区,我们可以看到分区sdb1和sdb2,以及这两个分区的大小。
root&Centos6: ~#lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 3.7G 0 rom /media/CentOS_6.9_Final
sdb 8:16 0 16G 0 disk
├─sdb1 8:17 0