安装 Ubuntu 时,我毫无理由地创建了一个单独的/boot
分区。现在我想将该分区用于其他用途,并将启动文件移至主分区。
我尝试了这个答案,但是现在我的系统启动到 GRUB 的提示符下。
答案1
这个答案是一个很好的起点,但它对于 UEFI 系统来说还不够。
这是对我有用的分步指南。
该答案假定以下分区名称:
Device Purpose
-------------------------
/dev/sda2 EFI partition
/dev/sda5 /boot
/dev/sda6 /
需要带有 Ubuntu 或其他 Linux 发行版的可启动媒体(实时 USB 等)。在执行以下步骤之前请先进行备份。
从 Ubuntu 媒体启动并打开终端 ( Ctrl+ Alt+ T)。成为 root 用户:
sudo su
挂载
/
、/boot
和 EFI 分区的文件系统:cd /mnt mkdir efi boot os mount /dev/sda2 efi mount /dev/sda5 boot mount /dev/sda6 os
将分区的内容复制
/boot
到分区/boot
上的目录中:/
cp -r boot/* os/boot
防止 Ubuntu
/boot
自动挂载。还请记下根分区的 UUID。/etc/fstab
在您喜欢的编辑器中打开:gedit os/etc/fstab
以下是我的情况(保存评论):
UUID=df89aab6-941d-4ffa-9681-e16fc94641d3 / ext4 errors=remount-ro 0 1 UUID=f7c32b17-a2f1-4eb3-a8e7-414b6a228a72 /boot ext4 defaults 0 2 UUID=2252-1B80 /boot/efi vfat umask=0077 0 1 UUID=a80bb662-d531-408b-bc23-b47f28c44ec4 /home ext4 defaults 0 2 /swapfile none swap sw 0 0
我注释掉了挂载的第二行
/boot
。我还复制了/
分区的 UUID,我们稍后会用到它。更新 EFI 分区上的 GRUB 配置。此步骤对于 UEFI 系统来说至关重要。
cd /mnt/efi/EFI/ubuntu cp grub.cfg grub.cfg.bak gedit grub.cfg
我的
grub.cfg
看起来像这样:search.fs_uuid f7c32b17-a2f1-4eb3-a8e7-414b6a228a72 root hd1,gpt5 set prefix=($root)'/grub' configfile $prefix/grub.cfg
我必须更新:1. UUID,2. 分区号和 3. 前缀。修改后的文件如下所示:
search.fs_uuid df89aab6-941d-4ffa-9681-e16fc94641d3 root hd1,gpt6 set prefix=($root)'/boot/grub' configfile $prefix/grub.cfg
请注意,它与我获得的 UUID 相同
/etc/fstab
,并且我必须将其添加/boot
到前缀中。重启硬盘进入 Ubuntu。它应该可以正常启动。确保
/boot
没有挂载 -grep /boot /etc/mtab
应该不会输出任何内容。格式化旧/boot
分区(不要将其与当前分区混淆/boot
,后者是常规目录)并刷新 GRUB 配置:sudo mkfs.ext4 /dev/sda5 sudo update-grub
再次重新启动,确认操作系统已启动,然后对前启动分区执行任何您想要的操作。