移至新驱动器

移至新驱动器

我在圣诞节收到了一个 240GB 的 SSD,以及一个硬盘外壳。我有一台笔记本电脑,上面有一个 500GB 的硬盘,而且硬盘快满了。现在,我的 HDD 上安装了 Windows 10 和 Ubuntu,SSD 上安装了全新安装的 Ubuntu,外部连接。我想在 SSD 上安装 Ubuntu,SSD 会内部连接。我还不确定要用 Windows 做什么,但我可能很快就会需要访问它。

新的驱动器较小,这在调整分区大小时会出现一些问题,并且只有内部连接的驱动器才能启动。

我是否应该(再次)将旧的 Linux 分区复制到 SSD,然后从 Live USB 上运行 Boot Repair?我直到今天或昨天才知道 Boot Repair,所以我现在已经完成了一半的主文件夹复制。如果它不起作用,我不想浪费时间,但如果它起作用,它将保持我的程序和设置完好无损,值得花时间。

那么,它会起作用吗?

lsblk 输出:

NAME   MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
loop1    7:1    0   115M  1 loop  /snap/vlc/4
sdb      8:16   0 223.6G  0 disk  
├─sdb4   8:20   0 220.3G  0 part  /media/joeyubuntu/ae1867d3-bd73-4bd6-96df-93a0
├─sdb2   8:18   0   512M  0 part  
└─sdb3   8:19   0   2.8G  0 part  
loop8    7:8    0 193.5M  1 loop  /snap/vlc/65
loop6    7:6    0  83.1M  1 loop  /snap/core/3247
loop4    7:4    0   121M  1 loop  /snap/discord/38
loop2    7:2    0  83.7M  1 loop  /snap/core/3440
loop0    7:0    0   121M  1 loop  /snap/discord/41
sda      8:0    0 465.8G  0 disk  
├─sda4   8:4    0    25G  0 part  
├─sda2   8:2    0    16M  0 part  
├─sda9   8:9    0   2.8G  0 part  [SWAP]
├─sda7   8:7    0  1000M  0 part  
├─sda5   8:5    0  1000M  0 part  
├─sda3   8:3    0 371.1G  0 part  /media/joeyubuntu/Windows
├─sda1   8:1    0   260M  0 part  /boot/efi
├─sda8   8:8    0  45.7G  0 part  /
└─sda6   8:6    0    19G  0 part  
  └─cryptswap1
       253:0    0    19G  0 crypt [SWAP]
loop7    7:7    0 113.6M  1 loop  /snap/blender-tpaw/3
loop5    7:5    0  83.8M  1 loop  /snap/core/3604
loop3    7:3    0 204.8M  1 loop  /snap/discord/32`

答案1

首先对新磁盘进行分区。使用 /dev/disk/by-id/ 而不是 /dev/sdX,这样就不会出错。

sudo apt-get install gdisk partclone    
lsblk -o NAME,VENDOR,MODEL    
sudo gdisk /dev/disk/by-id/usb-modelnamenumber

请注意,usb-modelnamenumber 是您的设备的占位符,它将由其型号和其连接的接口(如 usb)命名。

o

创建一个新的 GPT 分区表。

n

添加新分区

1 EFI System 256MiB
2 Linux       60GiB
3 Windows    140GiB
4 Data        20GiB
5 Swap      ~3.6GiB

通过在 gdisk 分区号和第一个扇区中使用前两个提示的默认值来添加这些。然后对于最后一个扇区和文件系统类型,按以下顺序对每个分区使用此语法:第一个是最后一个扇区,然后是 fstype:

+256M
ef00

+60G
8300

+140G
0700

+20G
8300

然后对于最后一个,只需使用默认值,即略低于 3.6GiB 的磁盘剩余部分。并使用 8200 作为文件系统类型。

然后使用以下命令将更改写入磁盘w

sudo mkfs.vfat -F32 /dev/disk/by-id/usb-modelnamenumber-part1
sudo mkfs.ext4 /dev/disk/by-id/usb-modelnamenumber-part2
sudo mkfs.ntfs -f /dev/disk/by-id/usb-modelnamenumber-part3
sudo mkfs.ext4 /dev/disk/by-id/usb-modelnamenumber-part4
sudo mkswap /dev/disk/by-id/usb-modelnamenumber-part5

您需要进入 Windows 并从磁盘管理中缩小 Windows 分区。此外,您需要重新启动 Ubuntu 并从 GRUB 以恢复模式运行。然后,chroot /target在运行以下内容之前。

sudo partclone.fat32 -b -s /dev/sda1 -o /dev/disk/by-id/usb-modelnamenumber-part1
sudo partclone.ext4 -b -s /dev/sda8 -o /dev/disk/by-id/usb-modelnamenumber-part2
sudo partclone.ntfs -b -s /dev/sda3 -o /dev/disk/by-id/usb-modelnamenumber-part3

此后您可以恢复正常的 Ubuntu。

不清楚 sda2,4,5,6,7 是什么。

sudo mount /dev/disk/by-id/usb-modelnamenumber-part2 /mnt
sudo mount /dev/disk/by-id/usb-modelnamenumber-part1 /mnt/boot/efi

打开 /etc/fstab 并更改 UUID,因为您是从现有驱动器复制的。它们将位于每个设备所在的表中UUID=[UUID]。替换该[UUID]部分。

lsblk -o UUID /dev/disk/by-id/usb-modelnamenumber-part1

为了/boot/efi

lsblk -o UUID /dev/disk/by-id/usb-modelnamenumber-part2

为了/

lsblk -o UUID /dev/disk/by-id/usb-modelnamenumber-part5

为了swap

sudo grub-install --target=x86_64-efi --boot-directory=/mnt/boot --efi-directory==/mnt/boot/efi --bootloader-id="UbuntuSSD"
sudo grub-mkconfig -o /mnt/boot/grub/grub.cfg
sudo umount /mnt/*

完成此操作后,您应该有两个工作系统,具体取决于您选择UbuntuUbuntuSSD。此时您需要测试它是否有效。

相关内容