我在圣诞节收到了一个 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/*
完成此操作后,您应该有两个工作系统,具体取决于您选择Ubuntu
或UbuntuSSD
。此时您需要测试它是否有效。