🐈
linuxの入った ssdを別のノートPCに移行する方法
先日メインで使用しているノートpcが壊れてしまったのでそのままssdを別のノートpcに移植した際の記録です。
対応ハード
huawei d15 ryzen7 3700U → huawei d15 ryzen5 3500U
huawei d15のマザーボードにはm.2ssdのスロットと、2.5インチのsataスロットがついています。
2つssdが入るデバイスなら問題ないと思います。
一方にwindows11/10、もう一方にgaruda linuxが入ったssdを使用します。
準備するもの
windowsが入ったpc ssd slotが2つ以上挿入できるもの
linuxの入ったssd
linuxのliveusb garudalinuxのinstallディスクがあったので使用します。
手順
- linuxの入ったssdをノートpcに差し込みます。
- linuxのliveusbを起動します。
- lsblk でデバイスの名前と uuidを確認します。
ファイルサイズで特定できるかと思います。
windowsの efi fat32 のパーティションを使用します。
パーティションが最大の100Mのサイズなのでgrubをインストール可能な容量かどうか確認します。
自分の例
sda linuxのliveusb
sdb linuxの入ったssd
windows の入った ssd
$ lsblk -f
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
sda
└─sda1 btrfs 1a5xxxx 32G 80% /root
sdb
└─sdb1 btrfs 1a5xxxx 857.7G 2% /root
zram0 [SWAP]
nvme0n1
├─nvme0n1p1 vfat FAT32 54F8-xxx XXM 30% /boot/efi
├─nvme0n1p2
├─nvme0n1p3 ntfs DE66fxxx xxxG x% /media/windows
└─nvme0n1p4 ntfs 389xxxxx
- linuxの入ったssdをマウントし、chrootする
$ cd tmp
[tmp]$ mkdir ssd/root
[tmp]$ sudo mount /dev/sdb/ ssd/root
[tmp]$ ls /ssd/root
@ @home @etc @lib ...
[tmp]$ garuda-chroot ssd/root/@
- grub install
(chroot)$ mount /dev/nvme0n1p1 /boot/efi
(chroot)$ grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=garuda --recheck
- /etc/fstab の書き換え
fstabに移行前のpcからのboot情報が残っているので変更します。
(chroot)$ sudo vim /etc/fstab
# <file system> <mount point> <type> <options>
UUID=54F8-xxxxx /boot/efi vfat noatime
pcを再起動して、bios画面に行くとboot deviceが追加されていると思います。
参考元
Discussion