长话短说。我意外删除了 GRUB,以及设置了挂载点“/”的分区。我通过从 liveCD(USB)重新安装 Ubuntu 来解决这个问题,并将新分区(使用 Ubuntu 的第二版)的挂载点设置为“/”,Ubuntu 安装程序重新安装了 GRUB。(我曾尝试使用 liveCD 中的启动修复,但没有成功)
我的问题是:我是否可以删除这个旧系统以恢复使用的空间,并将我原来的 Ubuntu 重新分配给挂载点“/”,而不必复制重新格式化等等?
原因:
我没有足够空间的大容量存储设备来保存该分区(当前/第一个 Ubuntu)上的所有内容。
没有光驱。
很多设置和其他东西我想保存
计算机已预装 Ubuntu,因此无需再寻找驱动程序(我宁愿不必费力寻找所有驱动程序,因为我知道有些驱动程序在 liveCD 中无法使用)
LSBLK 如下:
df -h --total
(编辑:欲了解更多信息)我的上网本已预装 Ubuntu,因此它不是以“正常”方式设置的,即我的操作系统没有与 MBR 和 GRUB 设置在同一个分区上。还有一个包含 Ubuntu 恢复的恢复分区。引导信息设置为 / 作为安装点。
sda1——FAT32 分区
sda2——FAT32 分区
sda3——第二个 Ubuntu 安装根目录'/'
sda4——加密交换
sda5——第一个 Ubuntu 安装主目录'/home'
sda7——其他操作系统(Ubuntu 14.04)
sda8——未使用
zram0 和 zram1——Linux 的交换分区
采取的步骤:
- 从 liveCD-打开终端克隆/sda5 -
sudo dd if /dev/sda5 of=/dev/sda7 conv=notrunc,noerror
- 从新终端
watch -n5 'sudo kill -USR1 $(pgredp ^dd)
查看 dd 的进度(大约需要 24 小时才能完成) - 尝试从硬盘加载。系统加载到 grub 命令行(不是引导加载程序)。
- 再次运行 liveCD 安装了启动修复程序,并进行了修复。
- 默认操作系统现在在 GRUB 中设置为 sda5,仍然有混乱的分区挂载点。
(到第 5 步为止操作系统都是完整的)
- 格式化 sda7。
调整 sda5 的大小。
最后两个步骤之一破坏了 GRUB 和分区的可引导性(即 3 个 Ubuntu 都无法加载)
- liveCD,尝试了 3 次启动修复,第一次“修复”后无法访问启动修复高级选项中的 GRUB 选项(无法清除/重新安装 GRUB)
- 挂载了 sda5,看看能否取出文件,但磁盘无法读取。(猜测是由于步骤 #7 中的调整大小)
- 清除所有内容并重新安装 Ubuntu。
- 不幸的是,我必须重新进行所有设置,幸运的是,我保留了重要数据的备份,但仍然丢失了一些。
- 我自己的一个教训。分区时要小心。
尽管看起来启动可以在 sda3 完整的情况下进行,但似乎某些启动信息可能已跨分区扩展。从 sda5 克隆到 sda7(使用 dd)也不起作用。(克隆 sda5 后 sda7 无法启动,但可能是因为大小不同,而克隆需要完全相同的大小才能复制)。所以我格式化了 sda7,并扩展了 sda5。这导致我的 sda5 信息变得混乱。如果我只有信息(而不是完整的系统调整),下面的答案很可能有效。
我遇到的最大问题是,使用 liveCD 时,我必须手动安装驱动器(使用终端、、mkdir /temporary/folder/
)mount /dev/sdXY/ /temporary/folder
,但并非总是如此。有时系统会自动安装,因此如果我想更改任何内容,我必须卸载。这很不一致。
答案1
最简单的方法可能是将所有内容移动到,/dev/sda3
因为移动/
分区可能很棘手(特殊文件、grub 等,请参阅这里)
您需要从 USB 启动才能用于gparted
编辑分区。
- 将您需要的所有文件从 移动
/dev/sda5
到/dev/sda7
,删除/dev/sda5
- 你应该能够移动
/dev/sda4
并扩展/dev/sda3
到自由空间 - 然后您可以将移动的文件复制
/dev/sda7
到/dev/sda3
- 然后你可以删除
/dev/sda7
,/dev/sda4
再次移动,最后扩展/dev/sda3
以填充空间
您还需要编辑以/etc/fstab
删除对/home
/dev/sda5
由于/
保留在同一个分区上,希望 grub 仍能正常启动。如果不行,你应该能够运行引导修复要解决这个问题。
仅供参考:grub 安装在驱动器的 MBR 上(不会显示在lsblk
或 上df
),有关分区和所有内容的信息都存储在 中/boot
,在您的情况下,它将位于/
目录中(在 上/dev/sda3
)