我使用过 10.10,现在为了测试目的,将 10.04 安装到单独的分区。10.10 目前位于单个分区上,而对于 10.04,我决定将 /boot 分离到第三个分区。现在我的问题是:
- 我如何将 10.10 的 /boot 移动并合并到新的 /boot 分区上
- 我必须修改什么来重新排列(自动)条目?
- 我怎样才能让条目包含分发名称以减少混淆?
- 如何确保任一发行版更新时 grub 配置保持相同?
答案1
以下是如何将 10.10 的启动移动到单独的分区:
如果你使用许多 Linux,将 /boot 放在自己的分区上是很有用的 发行版,尤其是在不同的硬盘上。此外,如果你的 根文件系统损坏,你仍然可以启动,如果你的 /boot 是分开的。 让我们开始吧..首先我们需要创建一个新的 ext3 分区 这将是我们的新 /boot。为了决定它应该有多大,让我们 查看当前 /boot 占用了多少空间。100Mb 的值应该 满足大多数需求(除非你是一个拥有大量图像的内核黑客) 在/boot中): $ du -h /引导 一旦我们对大小有了概念,就可以继续创建分区。 可以使用 GParted…或者如果您更喜欢命令行,可以使用 mkfs: # mkfs -t ext3 /dev/hda# 现在我们假设你刚刚创建的分区是 /dev/hdaX(将 X 替换为实际数字。我们将按如下方式进行操作(在每个命令前添加 sudo 命令,或者以 root 身份重新登录): 1. # 创建 /mnt/newboot 2. # 挂载 /dev/hdaX /mnt/newboot 3. # cp -dpR /boot/* /mnt/newboot/ 4. # mv /boot /oldboot 5. # 创建 /boot 6. # nano -w /etc/fstab 并将 /boot 行修改为: /dev/hdaX /boot ext3 ro 0 0 请注意,我们希望在操作系统启动过程之后以只读方式安装 /boot。 您也可以删除整个条目,以防止 /boot 被 已安装。 7. # 卸载 /mnt/newboot 8. # 挂载 /dev/hdaX /boot 9. # nano -w /boot/grub/menu.lst 现在将与旧根分区相对应的条目更改为 /dev/hdaX。 用 grub 的术语来说,如果它是第一个硬盘,那就翻译为 (hd0,X-1)。 例如,/dev/hda8 是 (hd0,7)。请注意,您还需要更改 /boot/xxx.x /xxx.x 中的条目,因为 /boot 分区本身就是 grub 的眼睛。例如,/boot/grub 变成 /grub。最后,将 grub 安装到 MBR。问题: 10. # grub 安装 /dev/hda (将 /dev/hda 替换为要在其中安装的硬盘的 /dev/… 条目) 安装 Grub 到)。 全部完成!现在重新启动。 PS:任何时候您想要写入 /boot,请执行以下操作: $ sudo mount -o remount,rw /boot
参考:http://tekguru.wordpress.com/2007/09/04/howto-moving-boot-to-its-own-partition/
编辑自动条目的方法如下:
创建自定义菜单 用户可以编辑默认的 /etc/grub.d/40_custom 文件,也可以创建 新建一个。创建自定义菜单内容的最简单方法是复制 /boot/grub/grub.cfg 中的工作条目。复制后, 40_custom 可以根据用户的需求进行定制。 根据默认示例自定义文件(/etc/grub.d/40_custom) /etc/grub.d 中任何自定义文件的前两行应该是: /bin/sh #!/bin/sh 复制代码 执行 tail -n +3 $0 用户可以从 /boot/grub/grub.cfg 文件中复制现有的菜单项 (...) 一般菜单项构造规则: 第一行必须以 menuentry 开头,以 { 引号之间的区域就是 GRUB 2 菜单上显示的内容。 根据需要进行编辑。 菜单项的最后一行必须是 } 不要在行末留空格 set root= 行应指向 GRUB 2 /boot 位置 ( (hdX,Y) ) Linux 行中的根引用应该指向系统分区。 如果 GRUB 2 找不到引用的内核,请尝试将 UUID 替换为 设备名称(例如: /dev/sda6 )。 从 grub.cfg 复制并由用户修改的示例条目可能如下所示 像这样: 菜单项“我的默认业力”{ 设置根=(hd0,1) 搜索--no-floppy--fs-uuid--set cb201140-52f8-4449-9a95-749b27b58ce8 linux /boot/vmlinuz-2.6.31-11-generic root=UUID=cb201140-52f8-4449-9a95-749b27b58ce8 ro 安静启动 initrd /boot/initrd.img-2.6.31-11-generic }