当前位置:首页文章首页 IT学院 IT技术

高配置grub的方法与其说明

作者:  来源:  发布时间:2011-5-18 18:17:27  点击:
  如果查看系统运行所挂载的分区,请用 df -lh 来查看,就能明白是不是/boot是独立的分区,或者查看/etc/fstab也能知道;

  Filesystem 容量 已用 可用 已用% 挂载点

  /dev/hda7 11G 9.2G 1.2G 90% /

  /dev/shm 236M 0 236M 0% /dev/shm

  在这个例子中,我们可以发现 /boot并没有出现只有/dev/hda7,这表示/boot并不是独立的一个分区;所有的东西都包含在/中;于是我们在/boot中查看内核版本;

  /boot/vmlinuz-2.6.11-1.1369_FC4 注:看到内核vmlinuz所处的目录;

  于是我们就可以这样kernel 这行了;

  3)initrd 命令行的写法;

  如果是/boot独立一个分区,initrd 一行要把/boot中省略;如果/boot不是处于一个分区,而是和Linux的/分区处于同一分区,不应该省略;

  比如我们在2)中用的例子;现在拿到这里,我们应该首先查看 /boot中的initrd的文件名到底是什么;

  /boot/initrd-2.6.11-1.1369_FC4.img

  如果是通过df -lh 得知或查看/etc/fstab 也行, 得知/boot是独立的分区;这时initrd 应该写成;

  如果是 /boot不是独处一个分区,而是在/同一处一个分区, 则要写成;

  4)menu.lst第一种写法的总结和实践;

  在这里,我们只说重要的,不重要的就一带而过了;

  1]用fdisk -l ;df -lh ;more /etc/fstab来确认分区情况;

  我们过fdisk -l ;df -lh ; more /etc/fstab 来确认/boot所在的分区,及Linux的根分区所在位置;

  比如我们确认/boot和Linux的/分区同处一个分区;

  Filesystem 容量 已用 可用 已用% 挂载点

  /dev/hda7 11G 9.2G 1.2G 90% /

  /dev/shm 236M 0 236M 0% /dev/shm

  然后我们/etc/fstab 中,查看/分所在的分区或分区标签是什么;

  # This file is edited by fstab-sync - see 'man fstab-sync' for details

  LABEL=/ / ext3 defaults 1 1

  /dev/devpts /dev/pts devpts gid=5,mode=620 0 0

  /dev/shm /dev/shm tmpfs defaults 0 0

  /dev/proc /proc proc defaults 0 0

  /dev/sys /sys sysfs defaults 0 0

  LABEL=SWAP-hda1 swap swap defaults 0 0

  /dev/hdc /media/cdrecorder auto pamconsole,exec,noauto,managed 0 0

  经过上面的df -lh 和more /etc/fstab 的对照中得知,/boot并是独处一个分区,而是和/在同一个分区;这个Linux系统安装在/dev/hda7上,文件系统(此分区)的标签为LABEL=/ ,/boot也是处于/dev/hda7 ,/dev/hda7也可以说是 root (hd0,6);

  2]查看内核vmlinuz的和initrd文件名的全称;

  -rw-r--r-- 1 root root 1.6M 2005-06-03 /boot/vmlinuz-2.6.11-1.1369_FC4

  [root@localhost ~]# ls -lh /boot/initrd*

  -rw-r--r-- 1 root root 1.1M 11月 26 22:30 /boot/initrd-2.6.11-1.1369_FC4.img

  3]开始写menu.lst ;

  我们根据上面所提到的,可以写成如下的样子;

   root (hd0,6)

   kernel /boot/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/

   initrd /boot/initrd-2.6.11-1.1369_FC4.img

  也可以写成;

   root (hd0,6)

   kernel /boot/vmlinuz-2.6.11-1.1369_FC4 ro root=/dev/hda7

   initrd /boot/initrd-2.6.11-1.1369_FC4.img

  注解:上面两个不同之处在于一指定Linux的根/所在的分区时,一个是用了文件系统的标签,另一个没有用标签;

  2、menu.lst的写法之二,精简型;

  本写法主要是把指定/boot所位于的所分区直接写入kernel 指令行;这样就省略了通过root (hd[0-n],y)来指定/boot所位于的分区;

  1)第一种情况:/boot和Linux的/根分区在同一个分区;

  有前面的那么多的讲解,menu.lst写法之二就好理解多了;也得分两种情况,咱们先把/boot并不是独处一个分区,而是和Linux的根分区处于同一个分区;我们以 4)menu.lst第一种方法的写法总结 的实例为例子;

   kernel (hd0,6)/boot/vmlinuz-2.6.11-1.1369_FC4 ro root=/dev/hda7

   initrd (hd0,6)/boot/initrd-2.6.11-1.1369_FC4.img

  注解:

  title FC4x 注:自己为这个Linux 起个简单的名,以title开头,然后一个空格,后面就自己发挥吧,FC4或FC4x都行;

  kernel 空格 (hd0,6)/boot/vmlinuz-2.6.11-1.1369_FC4 空格 ro 空格 root=/dev/hda7

  kernel 这行这样理解 kernel (boot所在的分区)/boot/内核文件件全称 ro root=Linux根所位于的分区或标签

  initrd 空格 (hd0,6)/boot/initrd-2.6.11-1.1369_FC4.img

  initrd 这行可以这样理解 initrd (/boot所在的分区)/boot/内核文件名全称

  2)第二种情况:/boot独立一个分区,和Linux的根分区不是同一个分区;

  比如我们查看到df -lh 得到的是

  Filesystem 容量 已用 可用 已用% 挂载点

  /dev/hda6 200M 120M 80M 60% /boot

  /dev/hda7 11G 9.2G 1.2G 90% /

  我们再进一行查看/etc/fstab 得知;

  LABEL=/boot /boot ext3 defaults 1 2

  所以我们应该写成如下的;

   kernel (hd0,5)/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/

   initrd (hd0,5)/initrd-2.6.11-1.1369_FC4.img

  因为Linux的根分区是/dev/hda7,通过/etc/fstab和df -h的内容得知标签为 LABEL=/的分区就是/dev/hda7 ,所以有;

   kernel (hd0,5)/vmlinuz-2.6.11-1.1369_FC4 ro root=/dev/hda7

   initrd (hd0,5)/initrd-2.6.11-1.1369_FC4.img

文章评论

软件按字母排列: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z