Zum Inhalt

Arch Linux Bootplatte umziehen

📅 Erstellt: 31.01.2026 🔄 Aktualisiert: 23.08.2026

Hier ziehe ich meine /dev/sda auf /dev/sde um, beides unabhängige Platten mit ext4 Dateisystem, die in keinem RAID-Verbund oder ZFS-Dateisystem liegen.
Und ja, ZFS Pools sind auch vorhanden, aber unabhängig der Bootplatte.
Die Verbatim V550 SSD macht Probleme, offenbar Firmware oder Controller Inkompatibilitäten. Ständige Hänger, innerhalb 30 Minuten komplette Partitionsgröße an Trim usw.

Nunja hier nun folgend, grob aus dem Kopf und mit Gemini KI erstellte Ablaufreihenfolge.

Partitionen erstellen und formatieren

ACHTUNG! Die alte Platte SSD ist /dev/sda, die neue Platte HDD ist /dev/sde

# GPT Tabelle erstellen
sudo parted /dev/sde mklabel gpt

# 1. EFI-Boot (1GB)
sudo parted /dev/sde mkpart primary fat32 2048s 2099199s
sudo parted /dev/sde set 1 esp on

# 2. Swap (16GB - etwas Puffer schadet nicht)
sudo parted /dev/sde mkpart primary linux-swap 2099200s 35651583s

# 3. Root (250GB für System & Jellyfin Metadaten)
sudo parted /dev/sde mkpart primary ext4 35651584s 522190847s

# 4. Restliche 2,7 TB als neue Datenpartition
sudo parted /dev/sde mkpart primary ext4 522190848s 100%

# Formatieren
sudo mkfs.vfat -F 32 /dev/sde1
sudo mkswap /dev/sde2
sudo mkfs.ext4 /dev/sde3
sudo mkfs.ext4 -L ZUSAETZLICHER_PLATZ /dev/sde4

Neue Partitionen mounten und Daten kopieren

Meine Poolnamen brauche ich, um sie von rsync auszuschließen. Diese finde ich heraus mit $ zpool status, meine sind seagate und aca, sowie die Datenplatte aca300 vorerst und die Backupplatte USB wdbook.

# Ordner erstellen und mounten
sudo mkdir -p /mnt/newHDD
sudo mount /dev/sde3 /mnt/newHDD

# EFI Partition einbinden
sudo mkdir -p /mnt/newHDD/boot/efi
sudo mount /dev/sde1 /mnt/newHDD/boot

# Kopiere alles, schließe ZFS-Daten und den neuen Mountpunkt selbst aus
# Ersetze /pfad/zu/18tb durch deinen tatsächlichen ZFS-Pfad
sudo rsync -aAXv --ignore-errors --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found","/seagate/*","/aca/*","/aca300/*","/wdbook/*" / /mnt/newHDD/

# Bootdateien kopieren - WICHTIG!
sudo rsync -aAXv /boot/ /mnt/newHDD/boot/

fstab entsprechend der neuen UUIDs anpassen

ACHTUNG! sudo nano /mnt/newHDD/etc/fstab unbedingt! in der neuen fstab arbeiten! NIEMALS verwechseln!

Wie man nano bedient und die fstab ausfüllt spare ich mir hier. Mit lsblk -f /dev/sde erhält man jedenfalls die UUID der Partitionen, beispielsweise:

$ lsblk -f /dev/sde
NAME   FSTYPE FSVER LABEL       UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
sde
├─sde1 vfat   FAT32             249E-3743                             825,7M    19% /boot
├─sde2 swap   1                 5b2823d8-b0c2-403d-a431-13b5fa4b1f7a                [SWAP]
├─sde3 ext4   1.0               239b525e-0ca2-41e8-8314-954b91c0db13  195,8G     9% /
└─sde4 ext4   1.0   DATA_ACA300 7f22c7b1-6da3-4f3b-9ef4-1c44735541a2    2,3T     0% /aca300

Die neue fstab sieht so aus:

$ cat /etc/fstab
# Static information about the filesystems.
# See fstab(5) for details.

# <file system> <dir> <type> <options> <dump> <pass>

###########################################################
# OLD STUFF fucking damn SSD died! 2026-01-31 ~~marquisor #
###########################################################

# /dev/sda4 - OLD!!
#UUID=ddecac51-0764-4c4f-9db7-990453d1b3d8      /               ext4            rw,discard,defaults     0 1

# /dev/sda1 - OLD!!
# UUID=5F81-8264        /boot           vfat            rw,sync,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro      0 2

#######################
# NEW SYSTEM below... #
#######################

# /dev/sde3 - Root Partition
UUID=239b525e-0ca2-41e8-8314-954b91c0db13       /               ext4            rw,relatime,defaults   0 1

# /dev/sde1 - Boot Partition
UUID=249E-3743          /boot       vfat            rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro     0 2

# /dev/sde2 - Swap
UUID=5b2823d8-b0c2-403d-a431-13b5fa4b1f7a       none            swap            defaults,pri=10       0 0

# Other mounts

# ACA300 Daten
UUID="7f22c7b1-6da3-4f3b-9ef4-1c44735541a2"     /aca300         ext4    defaults                0 2

Bind-Mounts und Chroot

# Bind-Mounts für die Systemumgebung
for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt/newHDD$i; done

# Wechsel in die neue Umgebung
sudo chroot /mnt/newHDD

# GRUB auf die 3TB Platte schreiben
grub-install /dev/sde
update-grub
exit

GRUB in den Standard-Pfad installieren (erzwingt die .efi Datei nach /boot/efi/EFI/BOOT/BOOTX64.EFI)

ACHTUNG! Im Chroot ausführen!

grub-install /dev/sde --removable --recheck
update-grub

GRUB Konfiguration generieren

ACHTUNG! Auch hier wichtig die Ausgabe zu beachten, es müssen die Linux-Kernel und ggf. Initramfs aufgelistet werden, dass diese gezogen wurden!

grub-mkconfig -o /boot/grub/grub.cfg

Chroot verlassen und neue Festplatte unmounten

# EFI/Boot aushängen, falls noch gemountet
umount /boot

# Chroot verlassen
exit

# Dann OHNE Chroot ausführen
sudo umount -l /mnt/newHDD/dev{/pts,} /mnt/newHDD/{sys,proc,run}
sudo umount -R /mnt/newHDD

EFI- Reihenfolge setzen, Reboot und ggf. BIOS anpassen

Im BIOS sollte man 1. und einzige Boot-Option auf UEFI OS legen

$ sudo efibootmgr
BootCurrent: 0000
Timeout: 1 seconds
BootOrder: 0000,0002,0001
Boot0000* GRUB  HD(1,GPT,be96b392-e15e-4af4-b1bc-5a9de2a30894,0x800,0x200000)/\EFI\GRUB\grubx64.efi
Boot0001  Hard Drive    BBS(HD,,0x0)0000474f000 ... haufen Firlefanz ...
Boot0002* UEFI OS       HD(1,GPT,5e57dfe7-01d0-4401-b40f-a506f8775ee3,0x800,0x200000)/\EFI\BOOT\BOOTX64.EFI

# Reihenfolge auf UEFI OS zuerst stellen
$ sudo efibootmgr -o 0002,0000,0001

# Reboot
$ sudo reboot

Prüfung ob alles glatt lief

Der neue root / muss nun auf /dev/sde3 liegen, Swap und Boot entsprechend:

$ df -h /
Dateisystem    Größe Benutzt Verf. Verw% Eingehängt auf
/dev/sde3       228G     20G  196G   10% /

$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda      8:0    0 238,5G  0 disk
├─sda1   8:1    0     1G  0 part
├─sda2   8:2    0     8G  0 part
├─sda3   8:3    0    32G  0 part
└─sda4   8:4    0 195,1G  0 part
sdb      8:16   0   7,3T  0 disk
├─sdb1   8:17   0   7,3T  0 part
└─sdb9   8:25   0     8M  0 part
sdc      8:32   0   7,3T  0 disk
├─sdc1   8:33   0   7,3T  0 part
└─sdc9   8:41   0     8M  0 part
sdd      8:48   0   1,8T  0 disk
├─sdd1   8:49   0   1,8T  0 part
└─sdd9   8:57   0     8M  0 part
sde      8:64   0   2,7T  0 disk
├─sde1   8:65   0     1G  0 part /boot
├─sde2   8:66   0    16G  0 part [SWAP]
├─sde3   8:67   0   232G  0 part /
└─sde4   8:68   0   2,5T  0 part /aca300
sdf      8:80   0   7,3T  0 disk
├─sdf1   8:81   0   7,3T  0 part
└─sdf9   8:89   0     8M  0 part
sdg      8:96   0   1,8T  0 disk
├─sdg1   8:97   0   1,8T  0 part
└─sdg9   8:105  0     8M  0 part

ZFS-Pools wiederbeleben

# Suchen nach verfügbaren Pools
sudo zpool import

# Den Pool importieren (f steht für force, falls er noch als "in Benutzung" markiert ist)
sudo zpool import -f DEIN_POOLNAME

Damit sollte der Vorgang abgeschlossen sein. Viel Erfolg!
Kritisch ist hier im Grunde genommen gar nichts, solange noch von der Quellplatte gelesen werden kann.
Vielleicht muss man leider kurzfristig headless aufgeben und Tastatur und Monitor anschließen, aber auch das ist machbar.
:-)

31.01.2026 ~~marquisor