Migrating the system to new ssd - boot issues

so i abandoned windows completely and hence want to move Endeavour from the pesky 2nd SSD to the big cool main one, moving from ext4 to btrfs in the process.

I set up the new partitions, rsynced’ everything over, including /efi

  • replaced the UUID in the loader entries with the new btrfs partitions’
  • wrote a new fstab.
  • rebootet, fails at "start for for /dev/disk/by-uuid/xyz, showing an unprintable character instead of the first uuid segment (see screenshot at bottom), what the f***

Context from my 2nd-drive-booted system, with the migration target ssd mounted to /mnt and /mnt/efi:

[julian@julian-endeavour-desktop /]$ lsblk -f
NAME        FSTYPE FSVER LABEL       UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
├─nvme1n1p1 vfat   FAT32             C502-7E1D                             780,4M    24% /mnt/efi
└─nvme1n1p2 btrfs        endeavouros c5e408f7-d3d1-490d-8550-41295dfdd5c4    1,5T    20% /mnt
├─nvme0n1p1 vfat   FAT32             DF59-A651                             780,4M    24% /efi
├─nvme0n1p2 ext4   1.0   endeavouros bdbb8463-eadd-4ca3-ba75-937f93683bce   70,9G    79% /
└─nvme0n1p3 swap   1                 e3bc30c3-7965-495c-ad4c-10ff46cd1ac4                [SWAP]

[julian@julian-endeavour-desktop ~]$ sudo blkid
/dev/nvme0n1p3: UUID="e3bc30c3-7965-495c-ad4c-10ff46cd1ac4" TYPE="swap" PARTUUID="c07f8dcd-ce85-498d-9bb9-861a5c925ed4"
/dev/nvme0n1p1: UUID="DF59-A651" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="b55ce0f6-c051-46dc-bc1e-cac2066d9b30"
/dev/nvme0n1p2: LABEL="endeavouros" UUID="bdbb8463-eadd-4ca3-ba75-937f93683bce" BLOCK_SIZE="4096" TYPE="ext4" PARTLABEL="endeavouros" PARTUUID="98e709bc-ec8f-eb42-80cb-361308375797"
/dev/nvme1n1p2: LABEL="endeavouros" UUID="c5e408f7-d3d1-490d-8550-41295dfdd5c4" UUID_SUB="9650b75b-15b2-43cd-bec4-7edce2167a16" BLOCK_SIZE="4096" TYPE="btrfs" PARTUUID="a6c7692c-3ce2-4d8e-becf-f17df9840821"
/dev/nvme1n1p1: LABEL_FATBOOT="EFI" UUID="C502-7E1D" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="e4cb6505-f7ea-4dea-b98a-0ace7a4e37f2"

new fstab:

# <file system>                           <mount point>  <type>  <options>                          <dump>  <pass>
UUID=C502-7E1D                            /efi           vfat    defaults,noatime                   0       2
UUID=c5e408f7-d3d1-490d-8550-41295dfdd5c4 /              btrfs   defaults,noatime                   0       1
UUID=c5e408f7-d3d1-490d-8550-41295dfdd5c4 /.snapshots    btrfs   defaults,noatime,subvol=.snapshots 0       1
UUID=c5e408f7-d3d1-490d-8550-41295dfdd5c4 /home          btrfs   defaults,noatime,subvol=home       0       1
UUID=c5e408f7-d3d1-490d-8550-41295dfdd5c4 /etc           btrfs   defaults,noatime,subvol=etc        0       1
UUID=c5e408f7-d3d1-490d-8550-41295dfdd5c4 /swap          btrfs   defaults,noatime,subvol=swap       0       1
tmpfs                                     /tmp           tmpfs   defaults,noatime,mode=1777         0       0
/swap/swapfile                            none           swap    defaults                           0       0
[julian@julian-endeavour-desktop /]$ cat /mnt/efi/loader/entries/7c2884c38d164ef0ad0224a40aef9baf-6.6.2-arch1-1.conf # /mnt because i mounted the new filesystem here to rsync over, new boot part is mounted at /mnt/efi
# Boot Loader Specification type#1 entry
# File created by /etc/kernel/install.d/90-loaderentry.install (systemd 254.1-1-arch)
title      EndeavourOS
version    6.6.2-arch1-1
machine-id 7c2884c38d164ef0ad0224a40aef9baf
sort-key   endeavouros-6.6.2-arch1-1
options    amd_pstate=guided nvidia-drm.modeset=1 nvme_load=YES rw root=UUID=c5e408f7-d3d1-490d-8550-41295dfdd5c4 systemd.machine_id=7c2884c38d164ef0ad0224a40aef9baf
linux      /7c2884c38d164ef0ad0224a40aef9baf/6.6.2-arch1-1/linux
initrd     /7c2884c38d164ef0ad0224a40aef9baf/6.6.2-arch1-1/initrd

after seeing the unprintable character, i checked above and beyond for strange unicode sequences, non-printable spaces - nothing. I tried referencing PARTUUID instead, which gave me “start job /dev/disk/by-part[square character]>-3ce2-4d8e-becf-f17df9840821” at boot.

I also generated a new uuid for the partition, hoping there is some weird escape sequence i hit by accident, but apparently no.

I am at a loss here. Does anyone have ideas?

Did you copy over your old initrds? If so, you need to rebuild them.

Also, did you edit the entries directly? If so, make sure you change /etc/kernel/cmdline as the entries get overwritten.

1 Like

thank you, no i wasnt aware of the cmdline - that is fixed now

could you give me a hint, how i can rebuild initrd without being booted into the new system? can is just chroot /mnt and run dracut-rebuild?
EDIT: i cannot, as /dev, amongst other things, is missing. --sysroot?

You need to mount the root to /mnt, mount the EFI partition to /mnt/efi than sudo arch-chroot /mnt

Then you can run dracut-rebuild

You will have to boot off the ISO to do that.

arch-chroot handles all that for you.

1 Like

Thank you so much :slight_smile:
Reporting in from the migrated system!

1 Like

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.