合并 /boot 并重新排列 grub2 条目

合并 /boot 并重新排列 grub2 条目

我使用过 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
}

参考:https://help.ubuntu.com/community/Grub2

相关内容