Linux移植――打造属于自己的小系统

第一步:

准备一台完好的linux宿主机,将移植linux系统的磁盘挂载在其上面

第二步:
1) 为新磁盘分区
 

2)sdb3应为swap分区修改其类型
 

3)然后保存分区
 

4)使用partprobe命令使kernel重新读取分区表
5)对磁盘sdb上的分区进行格式化
 

 

sdb3为虚拟分区暂时不理会
以sdb1作为新系统主引导分区
sdb2作为新系统的根分区
6)挂载sdb1(新系统的主引导分区)、sdb2(新系统的根分区)
 

第三步:
1) 构建mbr(一段在硬盘上一段为grub)
 

2) 查看文件是否已存在
 

发现没有grub.conf文件,所以需要手动创建这个文件
3) 拷贝内核以及驱动镜像到新系统
 

由于磁盘sda与sdb可能不同所以需要对驱动镜像加以改动
修改init文件
 

重新打包initrd-2.6.18-164.e15.img文件
 

4) 手动创建这个文件grub.conf
 

5)移植init
将宿主机根目录下的文件夹创建在新系统的根目录下并将init文件拷贝到新系统的sbin目录下
 

由于init为二进制文件所以会关联许多库,需要将这些库也一并拷贝过去
 

由linux的引导流程可知,init进程运行之后,需要读取/etc/inittab配置文件,故须为新系统创建这个配置文件
 

6) 由inittab知需要创建文件、/etc/rc.d/rc.sysinit(bash文件)文件
 

将其改为可执行的文件
 

7) 将宿主机的bash拷贝至新的系统并查看其所需要的关联链接库
 

 

8)通过脚本拷贝这些链接库
 

 

9)执行sync将已写数据同步到硬盘上
启动我们该写的小系统
 

第三步:
利用脚本向小系统里添加一些基本命令
如:ls、tree、kill、pkill、
第四步:
为系统添加关机命令
1) 由linux引导流程可知,系统执行关机,与/etc/rc.d/rc0.d/目录下的S01halt文件有关
 

 

2) 因为执行init 0 相当于切换至零级别,所以需要修改新系统的inittab文件
 

3) 编写rc.sysdown脚本并赋予可执行的权限
 

4) 将halt文件及相关库文件拷贝至新系统
 

5) 运行新系统,执行init 0命令
 

第五步:
1) 设置主机名
 

 

 

 

第五步:
为新系统grub设置背景图片
1) 使用gimp编辑要作为grub背景的图片
这个图片有几点要求:
a.大小为640*480
b.图片为14色
c.图片为.xpm格式的并且压缩的
 

 

第六步:
1) 添加内核的网卡模块
 

2) 在rc.sysinit文件中设置内核参数以及网络参数、ip
 

3) 移植指令sysctl、modprobe、ifconfig
 

4)测试网卡模块是否移植成功
 

第七步:
在新系统中搭建一个ftp服务
1) 在宿主机上安装ftp
 

2) 将vsftpd指令及相关库、配置文件拷贝至新系统
 

3) 在新系统中建一个pub目录作为ftp的根
 

4) 将宿主机中的passwd、shadow、group复制至新系统
 

5) 由于名称与id号相对应的机制,nsswitch机制,nsswitch机制依赖于/etc/nsswitch.conf这个配置文件,而nsswitch.conf文件又依赖于、/lib/libnss*的库文件,所以需将它们拷贝至新系统,禁用log
 

6)启动新系统中的ftp服务(后台启动)
 

7) 测试ftp服务
 

你可能感兴趣的:(linux,的)