LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 699|回复: 4

grub請補貼

[复制链接]
发表于 2004-10-20 21:13:52 | 显示全部楼层 |阅读模式
GRUB 是引导装入器 -- 它负责装入内核并引导 Linux 系统。
GRUB 还可以引导其它 操作系统,如 FreeBSD、NetBSD、OpenBSD、GNU HURD 和 DOS,以及 Windows 95、 98、NT 和 2000。
# cd /tmp
# tar xzvf /path/to/archive/here/grub-0.5.96.1.tar.gz
# cd grub-0.5.96.1
# ./configure --prefix=/usr
# make
# make install

将一张空盘插入 1.44MB 软驱,输入:
mkfs.ext2  /dev/fd0
mount /dev/fd0 /mnt/floppy
[root@good root]# mkdir -p /mnt/floppy/boot/grub
cp /usr/share/grub/i386-pc/stage1 /mnt/floppy/boot/grub
cp /usr/share/grub/i386-pc/stage2 /mnt/floppy/boot/grub
(或者
[root@heaven /boot/grub ]# dd if=stage1 of=/dev/fd0 bs=512 count=1
命令的详细说明如下:
if=input file
i.e., stage1
of=output file
i.e., floppy drive (this may be different on your computer)
bs=bytes to read and write
Here it is 512 bytes.
count=how many times to perform this operation
每次拷贝“bs”数目的块到目标地址。
安装stage2到软盘
  [root@heaven /boot/grub ]# dd if=stage2 of=/dev/fd0 bs=512 seek=1
  这里的步骤同stage1的相同,除了一个seek选项外。Seek选项将调过一个“bs”。
例如,在上面的命令中bs的值是512,这样seek=1意味着将跳过软盘上前512个字节 ,从513字节开始。这将使得第一步操作不会覆盖stage1的前512字节。
现在你完成了基本的软盘驱动器安装grub)
grub> root (fd0)
grub> setup (fd0)
grub> quit
已经制作好引导盘

GRUB 所使用的硬盘/分区命名约定与Linux 使用的命名约定不同。在 Linux 中,第一个硬盘的第五个分区称作 "hda5"。
而 GRUB 把这个分区称作 "(hd0,4)"。GRUB 对硬盘和分区的编号都是从 0 开始计算。另外,硬盘和分区都用逗号分隔,整个表达式用括号括起。
按一次 Tab 键,會有相應的補充的..

恢复被windows破坏的grub.
如果你用grub来引导linux和windows,当windows出毛病重新安装后,会破坏MBR中的grub,这时需要恢复grub.
1.把linux安装光盘的第一张放到光驱引导。
2.等安装界面出来后,按[F4]键,也就是linux rescue模式。
3.然后会出现这样的提示符:
sh#
5.我们就可以操作GRUB了.输入grub:
sh#grub
会出现这样的提示符:
grub>
我们就可以在这样的字符后面,输入:
grub>root (hdX,Y)
grub>setup (hd0)
如果成功会有一个successful......
这里的X,如果是一个盘,就是0,如果你所安装的linux的根分区在第二个硬盘上,那X就是1了;Y,就是装有linux系统所在的根分区。
例如,如果stage1 和 stage2 文件在 hda5 的 /boot/grub 目录中,应输入 "root (hd0,4)"。如果曾安裝過些文件已存在相應/boot/grub中的目錄了,否則可複製到相應的目錄下,用root去指向.
决定在哪里安装 GRUB
如果安装到 MBR,则可以指定整个磁盘而不必指定分区,如下(对于 hda):
grub> setup (hd0)
如果要将 GRUB 安装到 /dev/hda5 的引导记录中,应输入:
grub> setup (hd0,4)
當然你也可以選擇
grub>kernel /boot/vmlinuz(tab) ro root=/dev/hda4
(有輸入root(hd0,4)就不用root=/dev/hda4)
grub>boot(先進行引導linux)
grub>chainloader +1
grub>boot(引導windows)
[root@good root]# ls -l /boot/grub/menu.lst
lrwxr-xr-x    1 root     root           11  9月 13 13:29 /boot/grub/menu.lst ->/etc/grub.conf
默认的操作系统就是由default控制的。default后加一个数字n,表明是第n+1个。需要注意的是,GRUB中,计数是从0开始的,root (hd0,6)表示第1个硬盘,第7个分区,第一个软驱是fd0
title表示的是“”菜单项,我们讨论的是 GRUB,需要指定 GRUB 的 root 分区。
说明/boot/vmlinuz-2.4.21-4.ELsmp 就是要载入的内核。ro是以readonly的意思。后面的都是传递给内核的参数。root=LABEL=/就是linux的硬盘分区表示法
看下fdisk –l的結果說明root=LABEL=/可以換成root=/dev/hda6
注意我这里内核前面的路径是"/boot/"如果boot為一個单独分区則可簡寫為/
如果boot不是一個單獨的分區則一定得寫成/boot, 雖然我的是sata硬碟識別為
/dev/sda,但是grub只管你是第幾個硬碟用hdn?順俗R,不會用sdn?碜R別的.
[root@good root]# e2label /dev/sda7
/
default=0
timeout=10
splashimage=(hd0,6)/boot/grub/splash.xpm.gz
title Red Hat Enterprise Linux AS (2.4.21-4.ELsmp)
        root (hd0,6)
        kernel /boot/vmlinuz-2.4.21-4.ELsmp ro root=LABEL=/ acpi=ht vga=788
        initrd /boot/initrd-2.4.21-4.ELsmp.img
title Red Hat Enterprise Linux AS-up (2.4.21-4.EL)
        root (hd0,6)
        kernel /boot/vmlinuz-2.4.21-4.EL ro root=LABEL=/ acpi=ht vga=788
        initrd /boot/initrd-2.4.21-4.EL.img
title DOS
        rootnoverify (hd0,0)
        chainloader +1
[root@good root]# fdisk -l

Disk /dev/sda: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/sda1   *         1      1275  10241406    7  HPFS/NTFS
/dev/sda2          1276     14592 106968802+   f  Win95 Ext'd (LBA)
/dev/sda5          1276      7649  51199123+   7  HPFS/NTFS
/dev/sda6          7650     10258  20956761    c  Win95 FAT32 (LBA)
/dev/sda7         10259     11150   7164958+  83  Linux
/dev/sda8         11151     11660   4096543+  82  Linux swap
 楼主| 发表于 2004-10-20 22:16:34 | 显示全部楼层
雖然我的是sata硬碟識別為
/dev/sda,但是grub只管你是第幾個硬碟用hdn?順俗R,不會用sdn?碜R別的.
[root@good root]# e2label /dev/sda7
/

看下fdisk –l的結果說明root=LABEL=/可以換成root=/dev/hda6
這樣的分析是對的嗎??請高手解答...
发表于 2004-10-21 10:48:22 | 显示全部楼层
如果你的/分区是sda7 应该是root=/dev/hda7
这个不是从0计算的。
发表于 2004-10-21 10:52:45 | 显示全部楼层
我想应该是root=/dev/sda7吧
这里root= 是挂载分区了,不是Grub标识分区。
也不是从0计算。
 楼主| 发表于 2004-10-21 11:16:21 | 显示全部楼层
為什麽不是
是/dev/sda7
[root@good root]# e2label /dev/sda7
/


kernel /boot/vmlinuz-2.4.21-4.ELsmp ro root=LABEL=/ acpi=ht vga=788


root=LABEL=/ 不要可以??
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表