我打算创建一个/home
分区。唯一的问题是我的硬盘是 MBR,而不是 GPT,而且我已经使用了最多 4 个可用分区(Windows 7、用于数据的 NTFS 分区、Lubuntu 18.04 和交换分区。)
因此我想出了一个计划:使用dd
它来传输我的数据,对主磁盘进行必要的更改,然后dd
再次使用它来恢复数据。计划如下:
- 从 Live CD/USB 启动
- 缩小主 Lubuntu 分区(因为目标磁盘有 73 GB 可用)
- 将我的数据传输
dd
到目标磁盘 - 删除 Lubuntu 和交换分区,然后创建一个包含 2 个“子分区”的扩展分区
dd
再次使用将数据恢复到我的主磁盘- 跟随本指南创建
/home
分区 - 完毕!
这可行吗?因为我不知道符号链接是否会被转移,而且我不想花 2 个小时下载软件包和更新。
答案1
从另一个驱动器启动
我建议您从另一个驱动器工作,例如 Ubuntu 实时驱动器或 Clonezilla 驱动器。
备份至少全部文件,你不能失去,在你开始缩小 Lubuntu 分区之前,或者更好的是,你
- 克隆整个当前 Lubuntu 分区
dd
或者克隆兹拉或者 使用以下命令制作两个 tarball(保留属性)
cd /path-to-lubuntu-root-file-system/home sudo tar -cvzf /path-to-external-drive/home.tar.gz . cd /path-to-lubuntu-root-file-system sudo tar --exclude="/home" -cvzf /path-to-external-drive/root.tar.gz .
从实时驱动器启动时。
- 克隆整个当前 Lubuntu 分区
编辑分区
使用
gparted
编辑分区表,使其符合您的要求。如果您让新根分区的头端与旧分区位于同一位置,引导加载程序可能会找到它,这样您就不需要重新安装引导加载程序 (grub
),如果不是,则很容易重新安装,‘修复’,引导加载程序。如果你依赖 tarball,你可以擦除根分区和交换分区,编辑过程将非常快
- 否则,你可以通过移动尾端来缩小它并删除交换分区
- 在未分配的驱动器空间的头端为根文件系统创建一个分区(并为其他分区留下一些未分配的驱动器空间)
- 创建扩展分区(使用所有未分配的驱动器空间)
- 创建一个用于和用于交换的分区
/home
作为逻辑分区。
现在你可以开始从克隆的镜像文件或 tarball 中恢复数据
cd /path-to-lubuntu-home-file-system
sudo tar -xvzf /path-to-external-drive/home.tar.gz
cd /path-to-lubuntu-root-file-system
sudo tar -xvzf /path-to-external-drive/root.tar.gz
- 使根文件系统和交换分区的 UUID 与以下行匹配
/etc/fstab
/etc/fstab
为“home”分区创建一个新行
重新启动进入更新后的系统,如果有必要的话,重新安装、‘修复’引导加载程序。
屏幕截图,其中包含一个扩展分区和两个逻辑分区,
在这种情况下,我减少了casper-rw
持久实时驱动器的分区的大小并添加了一个home-rw
分区。