将 Ubuntu 从一个具有双启动的驱动器移动到具有单启动的新驱动器

将 Ubuntu 从一个具有双启动的驱动器移动到具有单启动的新驱动器

我有一个双启动驱动器(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 的新驱动器。

我尝试了以下方法:

  1. 在新驱动器中创建 3 个分区,一个用于 /,一个用于 /home,一个用于 swap
  2. 使用 dd 将 ubuntu sda5 分区克隆到 nvme0n1p1(即操作系统,安装在 / 中)
  3. 使用 dd 将 ubuntu sda7 分区克隆到 nvme0n1p2(这是数据,安装在 /home 中)
  4. 更新 fsta
  5. 断开(物理)旧驱动器(sda)的连接并仅保留新驱动器(nvme01)的连接

不幸的是,这种方法不起作用。系统无法启动。主板屏幕显示后,系统立即陷入黑屏。您能建议如何继续吗?

如果有用的话,我在下面粘贴了原始驱动器中分区的图片:

Gnome 磁盘截图

答案1

在这种情况下,最好的做法是克隆 Ubuntu - 这非常简单。

  1. 创建 Live CD/USB 并从此实时驱动器加载您的系统。选择与旧系统相同的 Ubuntu 版本,例如 16.04。创建所有重要数据的备份!

  2. 将 Ubuntu 安装到新驱动器 - 不要将旧驱动器纳入新安装。在安装过程中,在新驱动器上创建 /、/home 和交换分区,就像在旧 Ubuntu 驱动器上所做的那样。安装结束时重新启动计算机,并检查新 Ubuntu 是否加载正常。

  3. 再次从实时 CD/USB 加载计算机。从终端或 Nautilus 在旧驱动器和新驱动器上安装根“/”分区。成为 root:

    sudo -i
    

    仔细检查你的新旧根“/”分区安装在哪里:

    mount -l
    

    假设你的旧根“/”分区挂载到

    /media/ubuntu/old/
    

    新的旧分区可在

    /media/ubuntu/new/
    
  4. 在根目录的主目录中创建名为“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/
    

    请仔细检查文本文件是否缺少额外的空格 - 包括每一行末尾在内的所有地方都必须没有空格!

  5. 如果您的实时系统中未安装 rsync 实用程序,请在分区克隆之前安装它:

    sudo apt install rsync
    
  6. 在终端中使用以下命令将旧根“/”分区复制到新分区:

    rsync -xrlptgoEvv --progress --exclude-from=/root/exclude-list /media/ubuntu/old/ /media/ubuntu/new/
    
  7. 重新启动计算机并检查克隆的 Ubuntu 是否一切正常。

  8. 对您的分区重复步骤 3 和 4 /home,或者仅将文件从旧分区复制到/home新安装的 Ubuntu 内的新分区。

相关内容