Clonen der Festplatte mit Win10 und Manjaro

Eine größere Festplatte muss her und die Betriebssysteme sollen geclont werden. Wofür ist Manjaro denn eine Rolling-Release?

Damit das nicht zu einfach wird, möchte ich von BIOS/MBR auf UEFI/GPT umsteigen.

Die bisherige Festplatte ist wie folgt formatiert:

sudo fdisk -l
...
Gerät      Boot    Anfang      Ende  Sektoren  Größe Kn Typ
/dev/sda1  *         2048 327792632 327790585 156,3G  7 HPFS/NTFS/exFAT
/dev/sda2       974972928 976766975   1794048   876M 27 Verst. NTFS WinRE
/dev/sda3       327792634 958177279 630384646 300,6G 83 Linux
/dev/sda4       958177280 974972927  16795648     8G 82 Linux Swap / Solaris

Partitionstabelleneinträge sind nicht in Festplatten-Reihenfolge.

Da gibt es schon die ersten Probleme:

  1. /dev/sda2 liegt laut gparted am Ende der Festplatte.
  2. Diese Partition ist ja die Recovery-Partition. Braucht WIN10 die unbedingt? Ich würde gerne darauf verzichten.

Die neue Festplatte soll so eingeteilt werden:

/dev/sda1 gpt-boot
/dev/sda2 windows
/dev/sda3 manjaro /
/dev/sda4 manjaro /home
/dev/sda5 manjaro swap

Unter Manjaro ist das Clonen kein Problem. Aber Windows traue ich nicht so recht. Daher habe ich diese Fragen:

  • Weil ich die Windowspartition verkleinern möchte, fällt dd aus. Schon zu win98-Zeiten funktionierte cp -axv quelle ziel hervorragend. Geht das noch unter win10?
  • Starten soll win10 über grub. Reicht hier grub-install /dev/sda1 auch unter UEFI/GPT?

Über Hilfe würde ich mich freuen.

Dann musst du Windows neu installieren. Anders wird es dir nicht booten.

Weiß ich nicht, würde es aber mal annehmen. Das musst du denke ich selbst recherchieren oder in einem Windows-Forum nachfragen. Wir sind ein Linux-Forum.

Für UEFI fehlt dir da definitiv noch die EFI-Systempartition.

Weiß ich nicht. Ich habs mit Win10 noch nie probiert.

Nö das ist anders. Zum einen brauchst du eine EFI-Systempartition, wo ein Eintrag erstellt werden muss. Lies dir mal das durch:
https://wiki.manjaro.org/index.php?title=UEFI_-_Install_Guide#Switching_from_BIOS_to_UEFI
https://wiki.manjaro.org/index.php?title=Some_basics_of_MBR_v/s_GPT_and_BIOS_v/s_UEFI

Brauchst du nicht. Ich hatte auf meinem Laptop Win 7 mit einer Recovery-Partition, die habe ich gelöscht und die Redmonder Malware hat trotzdem funktioniert. Wenn du Win 10 von der MS-Hompage nimmst, wir diese Partition gar nicht erst angelegt. Du Benötigst nur den Aktivierungscode, hast dann aber ein reines Windows ohne Bloatware.

Danke für die Antwort, firefighttux!

Das war die alte (Bios-)Festplatte. Die neue hat m.E. eine EFI-Systempartition:

/dev/sda1 gpt-boot
/dev/sda2 windows
/dev/sda3 manjaro /
/dev/sda4 manjaro /home
/dev/sda5 manjaro swap

Ok, ich hätte sie UEFI-boot nennen sollen.

Das habe ich gelesen und daraus meine Ideen entwickelt. Eben auch die, dass grub Windows startet.

Auch dir vielen Dank, Josef!

Das ist neu. Das Windows stammt von der MS-Seite und hat die Recovery-Partion angelegt und haufenweise unnötige Programme und Werbung für MS-Software.

Ich benutze Windows nur um Geräte, deren Software nicht unter wine läuft, upzudaten. Das ist so selten, dass Windows jedes mal nicht herunter fährt, weil es unbedingt noch die fehlenden Updates installieren muss. Deshalb möchte ich eine Neuinstallation nach Möglichkeit vermeiden.

Dann solltest du auch gesehen haben wie grub bei UEFI installiert wird:

sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=manjaro --recheck

Nein. Die korrekte Bezeichnung wäre ESP oder EFI system partition. Unter einer Boot-Partition versteht man i.d.R. eine eigene Parttion für /boot.

Und wenn /dev/sda1 die ESP ist musst du sie unter /boot/efi mounten. Die muss gemountet sein bevor du Grub installierst. Das ist der 3. Punkt im Wiki.

Ist bei MBR und Legacy-Boot auch möglich.
Wenn du aber ein mit Legacy-Boot installiertes Windows hast kannst du es mit einem UEFI-Grub nicht booten. Mische Legacy-Boot und UEFI nicht. Das war schon häufiger das Problem wenn eines der OS nicht booten wollte z.B.:

Messed up MBR and Dual Boot

Darum habe ich dir schon gesagt, dass du Windows neu installieren musst wenn du auf UEFI umstellen möchtest.

Warum willst du überhaupt umstellen wenn Legacy-Boot alles tut was es soll?

Achja, ich würde dir definitiv noch empfehlen vorher ein Backup der Festplatte zu machen.

  • Wegen der eingeschränkten Anzahl der Partitionen: Bei 5 Partitionen muss ich mit einer erweiterten Partition arbeiten.

  • Mit UEFI arbeitet der am Laptop angeschlossene Bildschirm schon beim Boot.

  • Ich hoffe, dass der Laptop schneller bootet.

Das habe ich nicht vor.

Ich werde berichten, wie es funktioniert hat.

Ich habe mir vor einiger Zeit mit der .iso von dieser Seite Win 10 in der VBox installiert und es war ein reines Windows, ohne irgend welche Treiber oder einer Recovery-Partition.
Ich kenne diese Art des Windows nur von Geräten mit vorinstalliertem OS. Da wird vom Erzeuger nicht nur die erforderlichen Treiber, sondern auch eine Menge Müll dazu gepackt um unbedarfte Kunden zu beieindrucken.

Das alte Linux läuft auf der neuen Festplatte.
Hier sind die Arbeitsschritte, die ich ausgeführt habe:

Die neue Platte wurde über ein USB-3.0-Interface an den Laptop angeschlossen. Daher wurden alle Partitionseinträge in Dateien als UUID angegeben. So waren beim späteren Einbau der Platte keine Änderungen notwendig.

Natürlich war ich als Benutzer root angemeldet.

Neue Platte bootfähig machen

  • Von Stick über UEFI gebootet
  • An USB-3.0 angeschlossen -> /dev/sdc
  • Mit Gparted gpt formatiert
  • Partitionen mounten
mkdir /mnt/alt
mkdir /mnt/neu
mount /dev/sda3 /mnt/alt/
mount /dev/sdc3 /mnt/neu/
  • Daten kopieren
    rsync -Pa --exclude /home/ /mnt/alt/ /mnt/neu/

  • Homeverzeichnis erstellen

mkdir /mnt/neu/home
chmod 755 /mnt/neu/home/
  • mhwd-chroot-shell -> /mnt-neu
  • Voraussetzungen für EFI-Boot schaffen
pacman -Syyuu efibootmgr dosfstools grub
mount /dev/sdc1 /boot/efi
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=manjaro --recheck
x86_64-efi wird für Ihre Plattform installiert.
EFI variables are not supported on this system.
EFI variables are not supported on this system.
grub-install: Fehler: efibootmgr schlug beim Registrieren des Boot-Eintrags fehl: Datei oder Verzeichnis nicht gefunden.
  • Außerhalb der Chroot-Umgebung: modprobe efivarfs
    mount -t efivarfs efivarfs /sys/firmware/efi/efivars

  • Im chroot

grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=manjaro --recheck
x86_64-efi wird für Ihre Plattform installiert.
installation beendet. Keine Fehler aufgetreten.
update-grub

Rechner startet unter UEFI

Verschlüsseltes /home mounten

  • Altes System starten
  • mhwd-chroot-shell
  • Partition verschlüsseln
cryptsetup luksFormat /dev/sdb4 --cipher aes-xts-plain64 -y -s 512 
cryptsetup luksOpen /dev/sdb4 home
mkfs.ext4 -j /dev/mapper/home
/dev/mapper/home -> /etc/fstab
mount /dev/mapper/home /home
mkdir /home/user
chown user.user /home/user
  • chroot verlassen
mount /dev/sda3 /mnt/alt
mount /dev/mapper/home /mnt/neu
rsync -aP /home/user/ /mnt/neu/user/

Nun läuft das System, wenn /home manuell gemountet wird.

Mount /home durch pam
Anleitung: https://wiki.archlinux.org/index.php/Dm-crypt/Mounting_at_login

  • auth optional pam_exec.so expose_authtok /etc/pam_cryptsetup.sh -> /etc/pam.d/system-login
  • Erstellen von /etc/pam_cryptsetup.sh mit folgendem Inhalt
#!/bin/sh
CRYPT_USER="USERNAME"
MAPPER="/dev/mapper/home"
if [ "$PAM_USER" == "$CRYPT_USER" ] && [ ! -e $MAPPER ]
then
      tr '\0' '\n' | /usr/bin/cryptsetup open UUID=***** home
fi
  • Zum Mountpunkt von /home in /etc/fstab noauto hinzufügen

Ich weiß, dass das nicht ganz sauber ist. Es funktioniert nur, weil ich der einzige eingerichtete user bin.

Probleme

  • Ich hatte ein Manjaro auf dem USB-Stick, dessen Kernel keine vfat unterstützte. Habe lange die Ursache gesucht und dann ein neues Image heruntergeladen.
  • Das System startete nach einem reboot immer wieder, doch am nächsten Tag lief es nach dem Abschalten nicht mehr hoch. Hierzu gibt es bei ubunuusers einen Abschnitt https://wiki.ubuntuusers.de/efibootmgr/#Bekannte-Probleme.
    Nach einem erneuten grub-install im chroot verflüchtigte es sich.

Windows

  • Windows musste neu installiert werden. Jedenfalls habe ich es nicht mit vertretbarem Aufwand geschafft, das alte Windows zu kopieren.
  • Der Stick musste mit WoeUSB erstellt werden. Etwas anderes funktionierte nicht
  • Windows installiert -> Natürlich startet nur noch Windows
  • Im UEFI-Bootmanager Manjaro gestartet
  • Fix:
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=manjaro --recheck
update-grub

Ich hätte Linux Mint im Livemodus gestartet, das Programm "Disks" (oder "Laufwerke") ausgewählt.

Danach hätte ich eine Disk Image der gesamten Festplatte erstellt. Nach Anklicken der entsprechenden Festplatte links hätte ich oben in der Menüleiste (3 Balken) "Create Disk Image" ausgewählt.

Die Imagedatei wird auf einer größeren externen Festplatte angelegt. Vorher den entsprechenden Pfad auswählen.

Dann hätte ich alles geschlossen und den PC heruntergefahren.
Die neue, etwas größere Festplatte hätte ich angeschlossen und die alte entkoppelt.

Dann wieder im Linux Mint "Disks" ausgewählt, das neue Laufwerk angeklickt. Dann oben in der Menüleiste die Option "Restore from Disk Image" ausgewählt.
Ein kleines Fenster wird angezeigt, in welchem gefragt wird, von welcher Imagedatei eine Kopie erstellt werden sollte.

Dann kann der Inhalt der alten Festplatte mitsamt aller Bootparameter auf die neue Festplatte transferiert werden.

Später können die einzelnen Partitionen mit GParted vergrößert werden, das geht unter Beibehaltung des alten Systems.

Also insgesamt sind hier 3 Festplatten im Spiel:
1.) Alte Festplatte mit Windows
2.) Externe Festplatte als Zwischenspeicher
3.) Neue, größere Festplatte

Wenn der Umstieg auf GPT erforderlich ist, dann kann immer noch auf der neuen Festplatte experimentiert werden. Aber die kompletten Daten mitsamt Bootoption und Betriebssystem-Umgebung sind alle gesichert und vorhanden.

Mit den besten Grüßen

Forum kindly sponsored by