fstab、init文件创建,内核启动管理
一、/etc/fstab文件创建
某些时候当Linux系统下划分了新的分区后,需要将这些分区设置为开机自动挂载,否则,Linux是无法使用新建的分区的。 /etc/fstab 文件负责配置Linux开机时自动挂载的分区。根目录是所有Linux的文件和目录所在的地方,需要挂载上一个磁盘分区。假如我们把/etc/fstab文件删除了,或者该文件里的分区名和挂载点出现了错误,导致系统无法正常启动,那么下面介绍了我们可以怎么将其恢复。
1、/etc/fstab文件错误,系统救援模式下会提醒:系统将尝试去寻找相关的挂载点,但是提示我们没有找到任何LINUX分区。
2、救援模式进入系统后,我们发现根目录不知道是挂载到哪个分区下了,我们用分区工具查询一下我们现有的linux分区,如下图所示:没有显示根目录的位置,所以我们来尝试的挂载一下根目录,创建/mnt/rootfs挂载点,我们试着把分区都挂载一下,基于平时的经验,我们确认/dev/sda2是根目录的挂载点。
3、查看一下/etc/fstab文件,显示没有该文件。那我们就创建该文件,用vim打开编辑也可以,用cat将文件内容重定向到文件里也可以,这里我们采用第二种方法。把我们需要挂载的分区都写到文件里去。第一列到最后一列依次是:分区名,挂载点,文件系统类型,挂载参数,dump备份设置,fsck磁盘检查设置。
4、编辑完后我们可以查看一下/etc/fstab文件,内容都有了,blkid可以看到我们挂载的分区UUID和文件系统类型都有了。现在我们重启,系统就可以启动成功了。
二、/sbin/init文件创建
1、在系统启动过程中,加载Kernel之后,紧接着系统会调用/sbin/init程序。如果该程序文件不存在将是灾难性的。现在我们尝试恢复该文件。下图是该文件丢失后,系统启动后的反应,无法进入shell。
2、/sbin/init程序丢失我们可以查看一下init文件是依赖于哪个包文件,rpm -qf init ,可以看到init程序是出自于upstart程序包,那现在我们来安装此程序包,如下图所示:安装upstart包中为/sbin/init的文件。安装好以后查看sbin目录下,init程序文件已经恢复出来了。重启系统。
三、内核管理(删除不用的内核启动项、更改默认启动内核)
1、如果我们在系统中安装了多个内核,而后续有的内核不想要了,然后内核启动时启动列表里仍然显示着不需要的内核,我们可以将其删除。
2、我的系统中有3版本的内核和4版本的内核,现在我把4版本的内核删除,对应的我们需要找到内核相关的文件。/boot/目录下,执行rm -f *4.16*,这样/boot/下关于内核4版本的文件就没了,然后还需要进入/lib/modules文件夹下,把4版本的文件删除,接着,我们需要进入/etc/grub2.cfg文件(CentOS6中是/etc/grub.conf),把关于内核4版本的项全部删除,如下图中选中的内容所示。这样我们重启后会发现,我们不想要的系统内核版本已经不在启动列表里了。
3、查看系统内核的个数为2个,分别是内核3版本和救援模式内核
4、查看内核默认启动项为saved
5、查看saved的参数设定为内核3版本。因此系统启动时默认启动内核3版本。
6、如果我们内核启动列表里有多个内核版本,默认启动的内核不是自己想要启动的内核,那么我们可以更改/etc/default/grub文件中的GRUB_DEFAULT项为你想要的启动内核,这里需要注意的是,系统启动内核列表里,从上到下第一个内核的标识为0,第二个为1,以此类推。因此如果你需要启动的内核为第二个,我们就把GRUB_DEFAULT项设定为1,这样系统启动时默认加载第二个内核。
7、/etc/default/grub文件修改完后,我们需要让其生效,而系统在加载内核时会读取/etc/grub2.cfg文件来确认加载哪一个内核,而/etc/grub2.cfg文件是来自/etc/default/grub文件的生成,因此我们需要用到GRUB2-MKCONFIG命令来生成新的/etc/grub2.cfg文件。完成后,我们查看一下/etc/grub2.cfg文件,默认的启动项saved_entry已经被改为1了,此时可以重启系统。修改完成。
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/98571