grub命令行程序:
grub-editenv 编辑环境块的工具 grub-mkelfimage 生成一个GRUB的可启动映像 grub-mkfont 升级 GRUB 使用的字体 grub-mkimage 生成一个GRUB的可启动映像 grub-mkrescue 生成一个适用于软盘的GRUB的可启动映像 grub-dumpbios 创建vbios和int10转储 grub-install 在磁盘上安装 GRUB grub-mkconfig 生成 grub 配置文件 grub-mkdevicemap 自动生成一个设备映射文件 grub-probe 为制定的目录或设备探测设备信息 grub-setup 设置映像从某个设备启动
grub命令参数解释:命令 | 选项 | 解释 | boot
| 无
| 引导一个已定义的内核或链式装载程序。
| cat
| filename
| 显示指定的文件的内容。
| configfile
| filename
| 加载指定的配置文件。
| help
| [command]
| 显示帮助 — 一个命令列表或有关指定命令的帮助。
| initrd
| filename
| 加载指定的初始 RAM 磁盘文件。
| insmod
| module_name
| 加载指定的模块(驱动程序)。
| linux
| filename
| 加载指定的 Linux 内核。
| ls
| [arg]
| 列出设备或一个设备上的文件。
| reboot
| 无
| 重新引导计算机。
| set
| envvar=value
| 将一个环境变量设置为等于某个值。
|
grub中设备与分区GRUB2对设备与分区的命名规则举例如下,看看就能明白。需要说明的是磁盘从"0"开始计数,分区从"1"开始计数。 (fd0) 第一软盘
(hd0) 第一硬盘[大多数U盘与USB接口的移动硬盘以及SD卡也都被当作硬盘看待]
(hd1,1) 第二硬盘的第一分区(通用于MBR与GPT分区)
(hd0,msdos2) 第一硬盘的第二MBR分区,也就是传统的DOS分区表
(hd1,msdos5) 第二硬盘的第五MBR分区,也就是第一个逻辑分区
(hd0,gpt1) 第一硬盘的第一GPT分区
(cd) 启动光盘[仅在从光盘启动GRUB时可用]
(cd0) 第一光盘
grub2命令行下执行:
# ls -l
可以查看分区及其UUID。
清单
2. 使用 ls 查看文件系统的设备或内容
grub> ls(hd0) (hd0,gpt5) (hd0,gpt4) (hd0,gpt3) (hd0,gpt2) (hd0,gpt1)
grub> ls (hd0,gpt5)/abi-3.2.0-22-generic grub/ initrd.img-3.2.0-22-genericmemtest86+bin System.map-3.2.0-22-generic vmcoreinfo-3.2.0-22-genericvmlinuz-3.2.0-22-generic
清单 2 中的示例显示了一个具有单个磁盘 (hd0) 的计算机,该磁盘包含 5 个全局惟一标识符 (GUID) 分区表 (GPT) 分区。(hd0,gpt5) 的内容好像是一个 Linux /boot 分区,包含一个 GRUB 配置目录 (grub/)。您可能需要查看其他分区的内容,然后才能找到您的 Linux /boot 分区。如果您的系统未使用单独的 /boot 分区,则必须查找您的 Linux 引导 (/) 分区。
识别 GRUB 配置文件所在位置后,可以设置 prefix 和 root 环境变量,告诉 GRUB 在何处找到配置文件。这些变量分别识别 grub.cfg 所在的目录和它所在的分区:
grub> set prefix=(hd0,gpt5)/grub
grub> set root=(hd0,gpt5)
从这里,您可加载 normal 模块并启动它来调出 GRUB 菜单: grub> insmod normal
grub> normal
-------------------------------------------------------- grub2配置grub2-mkconfig -o /boot/grub2/grub.cfg 自动生成一个grub2配置文件。 grub2-setup /dev/sda 这使用默认的文件向设备上灌入grub。 如果出现如下错误: grub-probe:error: Cannot find a GRUB drive for /dev/sda1 请执行:grub2-install --recheck /dev/sda 这个命令会修复上述错误。
grub1.9等后期版本也有类似grub2的上述命令,用法基本相同。
update-grub或者update-grub2 命令,相当于grub2-mkconfig 和 grub2-setup 的结合。自动生成grub配置文件,并且直接向设备上灌如grub。
安装Grub2 首先需要准备EFI分区. 在这里, Windows 7安装的EFI分区, 可以直接使用, 有关Windows7的信息不会被复写.
启动Gentoo Linux或者其他Linux Live CD并chroot到本地硬盘
mkdir -p /boot # 创建mount点
mount /dev/sda2 /mnt/efi # 假设EFI分区为sda2, 将它挂在/mnt/efi目录下.
执行Grub2安装命令, 为了文件管理方便, 直接将文件安装在EFI分区的/grub2目录下.
# grub2-install --directory=/usr/lib64/grub/x86_64-efi --target=x86_64-efi --root-directory=/mnt/efi --boot-directory=/mnt/efi --bootloader-id=GRUB2 --removable sda1
--directory #定义了grub2安装的源文件位置, 缺省为/usr/lib64/grub/x86_64-efi
--target #定义了目标文件格式, 比如是64或32位EFI模式, 还是GRUB2-BIOS模式.
--root-directory #定义文件复制目标位置. 复制到哪里去?
-- boot-directory #定义启动目录, 缺省带/boot/grub2的prefix, 所以我们直接定义/就可以.
当你运行 grub-install 时,记得GRUB是安装到整个硬盘驱动器的主引导扇区而不是到一个具体分区,所以不要加上像/dev/sda1一样的分区号。
grub-install 是一个脚本,它完成以下任务:
* 调用 grub-mkdevicemap 创建设备映像文件 /boot/grub/device.map
* 复制 *.mod *.lst *.img 文件到 /boot/grub/
* 调用 grub-probe 自动侦测文件系统类型
* 调用 grub-mkimage 生成grub2内核文件 /boot/grub/core.img
* 调用 grub-setup 安装引导记录到mbr或分区
|