我有一个双启动驱动器(1TB),Windows 和 Ubuntu。我刚买了一个新驱动器(SSD NVME,500GB),想将我的 Ubuntu 移到那里,并摆脱 Windows。
以下是 blkid 的输出:
/dev/sda1: LABEL="System Reserved" UUID="3C7695297694E544" TYPE="ntfs" PARTUUID="7769abfe-01"
/dev/sda2: UUID="4C62966262965116" TYPE="ntfs" PARTUUID="7769abfe-02"
/dev/sda5: UUID="dd52dd12-778d-4f02-83f6-e4cef3788833" TYPE="ext4" PARTUUID="7769abfe-05"
/dev/sda7: UUID="38576bd8-2ccd-4041-8793-c704c551ce12" TYPE="ext4" PARTUUID="7769abfe-07"
/dev/sdb2: LABEL="Windows_Data" UUID="D0D47D90D47D7A14" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="c4f411e0-b487-4311-8bb2-be50d0ed3f14"
/dev/sdb3: LABEL="Linux_Data" UUID="12ce2115-3dba-4274-978d-7032b4310a9c" TYPE="ext4" PARTUUID="c36dbcad-9607-419b-b017-cc45f36370d4"
/dev/loop0: TYPE="squashfs"
/dev/loop1: TYPE="squashfs"
/dev/loop2: TYPE="squashfs"
/dev/loop3: TYPE="squashfs"
/dev/loop4: TYPE="squashfs"
/dev/loop5: TYPE="squashfs"
/dev/loop6: TYPE="squashfs"
/dev/nvme0n1: PTUUID="a88b5ea4-c101-4eb0-bf38-c1717cd0c947" PTTYPE="gpt"
/dev/nvme0n1p1: UUID="dd52dd12-778d-4f02-83f6-e4cef3788833" TYPE="ext4" PARTUUID="3e5794ef-d04e-49ab-8759-9add8e2cd41c"
/dev/nvme0n1p2: UUID="38576bd8-2ccd-4041-8793-c704c551ce12" TYPE="ext4" PARTUUID="90fefe53-b697-4bab-b838-4cca8af2c09e"
/dev/nvme0n1p3: UUID="e03fa428-d57f-434d-ab07-4868de47048d" TYPE="swap" PARTUUID="82eb145d-394a-466e-956b-5739c1414532"
/dev/sdb1: PARTLABEL="Microsoft reserved partition" PARTUUID="8b761d39-2c50-4a73-a8ce-da826968337a"
/dev/sda6: UUID="89af7643-09ca-4490-9a37-5cd93579c2a7" TYPE="swap" PARTUUID="7769abfe-06"
/dev/sdc1: UUID="2018-04-26-18-43-51-00" LABEL="Ubuntu 18.04 LTS amd64" TYPE="iso9660" PTUUID="2b192737" PTTYPE="dos" PARTUUID="2b192737-01"
/dev/sdc2: SEC_TYPE="msdos" UUID="044E-AC17" TYPE="vfat" PARTUUID="2b192737-02"
看起来有点乱。实际上我有 3 个物理驱动器:
- sda - 当前具有 Ubuntu/Windows 双启动的版本
- sdb - 用于存储,一半用于 Windows,一半用于 ubuntu
- nvme0n1——我想要移动我的 ubuntu 的新驱动器。
我尝试了以下方法:
- 在新驱动器中创建 3 个分区,一个用于 /,一个用于 /home,一个用于 swap
- 使用 dd 将 ubuntu sda5 分区克隆到 nvme0n1p1(即操作系统,安装在 / 中)
- 使用 dd 将 ubuntu sda7 分区克隆到 nvme0n1p2(这是数据,安装在 /home 中)
- 更新 fsta
- 断开(物理)旧驱动器(sda)的连接并仅保留新驱动器(nvme01)的连接
不幸的是,这种方法不起作用。系统无法启动。主板屏幕显示后,系统立即陷入黑屏。您能建议如何继续吗?
如果有用的话,我在下面粘贴了原始驱动器中分区的图片:
答案1
在这种情况下,最好的做法是克隆 Ubuntu - 这非常简单。
创建 Live CD/USB 并从此实时驱动器加载您的系统。选择与旧系统相同的 Ubuntu 版本,例如 16.04。创建所有重要数据的备份!
将 Ubuntu 安装到新驱动器 - 不要将旧驱动器纳入新安装。在安装过程中,在新驱动器上创建 /、/home 和交换分区,就像在旧 Ubuntu 驱动器上所做的那样。安装结束时重新启动计算机,并检查新 Ubuntu 是否加载正常。
再次从实时 CD/USB 加载计算机。从终端或 Nautilus 在旧驱动器和新驱动器上安装根“/”分区。成为 root:
sudo -i
仔细检查你的新旧根“/”分区安装在哪里:
mount -l
假设你的旧根“/”分区挂载到
/media/ubuntu/old/
新的旧分区可在
/media/ubuntu/new/
在根目录的主目录中创建名为“exclude-list”的空纯文本文件:
touch /root/exclude-list
编辑新创建的文件,在您最喜欢的文本编辑器中打开它 - 例如,让它成为 nano:
nano /root/exclude-list
在文件中插入以下文本:
+ */proc/ + */sys/ + */dev/ + */mnt/ + */media/ + */tmp/ + */run/ - etc/fstab - boot/grub/grub.cfg - proc/ - sys/ - dev/ - mnt/ - media/ - tmp/ - run/ - lost+found/
请仔细检查文本文件是否缺少额外的空格 - 包括每一行末尾在内的所有地方都必须没有空格!
如果您的实时系统中未安装 rsync 实用程序,请在分区克隆之前安装它:
sudo apt install rsync
在终端中使用以下命令将旧根“/”分区复制到新分区:
rsync -xrlptgoEvv --progress --exclude-from=/root/exclude-list /media/ubuntu/old/ /media/ubuntu/new/
重新启动计算机并检查克隆的 Ubuntu 是否一切正常。
对您的分区重复步骤 3 和 4
/home
,或者仅将文件从旧分区复制到/home
新安装的 Ubuntu 内的新分区。