如何建设私人Linux小系统
发布时间:2022-01-08 00:28:51 所属栏目:系统 来源:互联网
导读:如何打造私人Linux小系统,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 一、前言 Linux操作系统至1991.10.5号诞生以来,就源其开源性和自由性得到了很多技术大牛的青睐,每个Linux爱
如何打造私人Linux小系统,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 一、前言 Linux操作系统至1991.10.5号诞生以来,就源其开源性和自由性得到了很多技术大牛的青睐,每个Linux爱好者都为其贡献了自己的一份力,不管是在Linux内核还是开源软件等方面,都为我们后来人提供了一个良好的学习和研究环境。做为一个Linuxer,感谢各位前辈们为我们提供一个自由的空间,让我们也能够在学习的同时去研究Linux。 下面主要通过裁剪现有Linux系统,打造一个属于自己的Linux小系统,让其能够装载网卡驱动,并配置IP地址,实现网络功能。 二、原理 启动流程介绍: 制作Linux小系统之前,我们有必要再了解一下Linux的启动流程: 1、首先Linux要通过POST自检,检查硬件设备有没有故障 2、如果有多块启动盘的话,需要在BIOS中选择启动磁盘 3、启动MBR中的bootloader引导程序 4、加载内核文件 5、执行所有进程的父进程、老祖宗init 6、打印欢迎界面 在Linux的启动流程中,加载内核文件时还需要借助别外两个文件: 1)initrd,是CentOS5上用内存模拟的磁盘设备 2)initramfs,是CentOS6上用内存模拟的文件系统 在启程的流程中,init主要是用来做哪些操作的呢? init通过调用/etc/inittab这个配置文件,然后再去执行/etc/rc.d/rc.sysinit的系统初始化脚本 启发 到Linux打印欢迎界面后,就说明系统已经启动成功,如果我们要制作一个Linux小系统,我们只需要把它在开机流程中用到的各文件都装载到一起,就可以点亮属于我们自己的系统了,而Linux是一个模块化的操作系统,好多功能组件都是通过模块化的工具来实现的,而且支持动态装载和卸载,我们要是想实现某种功能,只需加载相应的模块即可,就可以实现我们的Linux操作系统大瘦身了。 三、操作步骤 1、目标磁盘分区 在宿主机上挂一块新磁盘,命名为soft-Linux,此块磁盘是宿主机上的第二块磁盘,所以这里是/dev/sdb,而到时候挂载到目标主机的时候,因为那里只有这一块磁盘,所以在目标主机上的名称应该是/dev/sda,这个不能搞混了。首先,我们要在目标磁盘上分两个区,并进行格式化。***个分区500M,用来装引导程序;第二个分区10G,用来装根文件系统。然后再进行挂载操作,将/dev/sdb1挂载到/mnt/boot下,将/dev/sdb2挂载到/mnt/sysroot下。 如何打造私人Linux小系统 [root@nmshuishui ~]# mount /dev/sdb1 /mnt/boot mount: mount point /mnt/boot does not exist [root@nmshuishui ~]# mkdir -p /mnt/boot /mnt/sysroot [root@nmshuishui ~]# mount /dev/sdb1 /mnt/boot [root@nmshuishui ~]# mount /dev/sdb2 /mnt/sysroot/ [root@nmshuishui ~]# 2、安装grub至目标磁盘 一个系统能启动,就需要引导,所以我们首先要安装一个grub引导程序到我们的新磁盘上,安装grub引导程序主要有两个命令,一个是grub-install,另一个是setup,这里***使用grub-install来安装。因为: ①grub-install会安装grub引导第二阶段的文件 ②setup不会安装第二阶段的引导程序,是安装引导信息到MBR 第二个需要注意的地方就是--root-directory=后面接的路径应该是boot目录所在的地方,而不是/mnt/boot,因为boot目录在mnt下;目标磁盘是/dev/sdb [root@nmshuishui ~]# grub-install --root-directory=/mnt /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 /mnt/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 [root@nmshuishui ~]# cd /mnt/boot/ [root@nmshuishui boot]# ls grub lost+found [root@nmshuishui boot]# cd grub/ [root@nmshuishui grub]# ls device.map e2fs_stage1_5 fat_stage1_5 ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 reiserfs_stage1_5 stage1 stage2 ufs2_stage1_5 vstafs_stage1_5 xfs_stage1_5 [root@nmshuishui grub]# 3、复制内核文件和initrd文件 init是系统中用来产生其它所有进程的程序。它以守护进程的方式存在,其进程号为1,init是所有进程的父进程,老祖宗,所以不移植是不行的。它通过调用/etc/inittab这个配置文件,然后再去执行/etc/rc.d/rc.sysinit的系统初始化脚本。 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |