且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

fedora学习笔记 5:关于用grub命令启动系统的补充

更新时间:2021-12-03 21:43:05

 前面讲了用grub命令行启动fedora系统,还有两点想补充一下。

  一,关于指定根分区。指定内核映像那一行命令中,在指定根分区的位置时,是用分区名称来指定的,即:/dev/VolGroup00/LogVol00;而实际上有些时候是用分区标签来指定根分区的,如:root=LABEL=/。实际上,不但是根分区,所有的分区都可以用标签来指定,用标签来指定分区非常简洁方便。
  我们知道etc目录中的fstab文件是文件系统的配置文件,里面存放的是磁盘分区的配置信息;如果你想让一个文件系统在开机时自动挂载,就要修改fstab文件,把它添加进去。我们来看一下fstab文件的内容,下面的图片是我虚拟机中的fstab文件的内容:
       fedora学习笔记 5:关于用grub命令启动系统的补充
 
  fstab文件中,第一列是分区或设备名,第二列是它的挂载点,第三列是分区的文件系统类型,第四列是磁盘挂载时的状态选项,第五列和第六列分别对应着dump功能和check功能,一般都默认为0。而每一行代表一个分区或文件系统。行的排序非常重要,因为内核就是按这个顺序来读取分区的。
  这个文件的第二行是/boot分区的配置信息,第一列写着LABEL=/boot,而根据前一篇文章里知道,我的/boot分区是(hd0,3)。就是说,/boot是/boot分区(即hda4分区)的标签。这就是按分区标签来指定/boot分区的一个实例。最后一行的sdb5也是标签,是我手动挂载的一个分区;为了能在开机时系统自动挂载/mnt/sdb5分区,所以我在fstab文件中加入这一行信息。
  那么如何来指定分区的标签呢?使用e2label命令,命令格式为:e2label 分区 分区标签。
  创建和挂载文件系统是linux里很重要的一项技能,这里就不详解了。
 
  二,关于链式装入器引导windows。我刚装双系统的时候,对grub引导器很不了解。觉得既然grub是一个多重系统引导器,可以引导windows,那么ntldr就是多余的了,于是把xp的引导器删掉了。后来就进不了xp系统了,它的症状跟NTLDR is missing错误一样。直到对grub有了一定的了解,才把这个问题给解决掉:grub是多重系统引导器,并不意味着你可以把windows的引导器给删除掉。
  “链式装入器从grub的引导记录中装入winxp自己的引导装入器,然后引导它。这就是这种技术叫做链式装入的原因 -- 它创建了一个从引导装入器到另一个的链。这种链式装入技术可以用于引导任何版本的 DOS 或 Windows。”这句话来自于linuxsir,我觉得它是对链式装入器很精辟的描述。这说明,grub对windwos的引导不是用自身引导的,而是创建了一个从grub到ntldr的链,最终还是用ntldr来引导windows的。
  知道了这个原理,我就从别人xp系统的电脑里拷贝了windows引导器必须的文件,重启就可以进入xp系统了。windows引导器里必须的两个文件是:ntldr和ntdetect.com。有人会说boot.ini,其实它并不是必须的。


本文转自 li_qinshan 51CTO博客,原文链接:http://blog.51cto.com/share/133443