Fehler beim Booten nach dem Klonen der Festplatte

2

Ich hatte die folgende Konfiguration von Partitionen auf alten 160-GB-Festplatten:

/sda
  /sda1 - 100MB  - NTFS - System Recovery (hidden Windows partition)
  /sda2 - 75GB   - NTFS - Windows
  /sda3 - extended partition
    /sda5 - 75GB - EXT4 - Debian
    /sda6 - 8GB  - swap - swap partition

Ich habe GPart verwendet, um eine neue 500-GB-Festplatte mit identischer Reihenfolge der entsprechenden Partitionen, aber unterschiedlicher Größe (und einer zusätzlichen Partition am und) vorzubereiten. Ich wollte sie nacheinander mit Clonezilla klonen:

/sda
  /sda1 - 100MB   - NTFS - System Recovery (hidden Windows partition)
  /sda2 - 160GB   - NTFS - Windows
  /sda3 - extended partition
    /sda5 - 160GB - EXT4 - Debian
    /sda6 - 32GB  - swap - swap partition
    /sda7 - 110GB - NTFS - additional partition

Bisher hat alles wie erwartet funktioniert. Ich habe Alt sda1in Neu geklont sda1, Alt sda2in Neu sda2und Alt sda5in Neu sda5. Es wurde nicht gebootet geklont und ich musste es manuell mit einer Live-CD wiederherstellen:

mount /devsda5 /mnt
--bind /dev /mnt/dev
--bind /proc /mnt/proc
--bind /sys /mnt/sys
chroot /mnt
grub-install /dev/sda5
update-grub

Es hat die von mir installierten Kernel sowie die Windows-Partition korrekt erkannt.

Das Problem trat auf, als ich versuchte, Debian zu starten. Das Booten mit dem neuesten Kernel blieb auf dem Loading please wait...Bildschirm hängen. Das Booten im Problemlösungsmodus blieb hängen Running /script/local-premount. In ähnlicher Weise endet der Versuch, Windows zu starten, mit einer Meldung über eine beschädigte Installation.

Überraschenderweise bin ich in der Lage, Debian mit einem älteren Kernel zu booten (derzeit auf Jessies vorherigem Kernel von Wheezy). In diesem Fall kann jedoch keine andere Partition eingehängt werden, auch nicht die, die auf einem anderen physischen Laufwerk gespeichert sind, das von dem Vorgang nicht betroffen sein konnte, da es gleichzeitig vom Computer entfernt wurde.

Was könnte die Ursache des Problems sein? Welche Informationen könnte ich zur Verfügung stellen, um es herauszufinden?

BEARBEITEN:

Ich habe gelernt, dass der Start des neuesten Kernels ohne quietOption dieselben Ergebnisse wie der Wiederherstellungsmodus zeigt. Nach einiger Wartezeit (einige Minuten) erhalte ich eine weitere Nachricht:

Begin: Running /scripts/local-premount ... resume: Could not stat the resume device file: '/dev/disk/by-uuid/[uuid]'
        Please type in the full path name to try again
        or press ENTER to boot the system:

Nachdem ich die Eingabetaste gedrückt hatte, wurde das System endlich gebootet. Es stellt sich jedoch heraus, dass es sich bei der fehlenden Partition um die Swap-Partition handelt:

$cat /proc/meminfo | grep Mem # I have 8GBs of RAM
MemTotal:        8154632 kB
MemFree:         1367032 kB
MemAvailable:    4750344 kB
$ cat /proc/swaps
Filename                Type        Size    Used    Priority
/dev/sda6                               partition   33554428    0   -1

Wo kann ich sicherstellen, dass die Partition tatsächlich verwendet wird?

Mateusz Kubuszok
quelle
Vielen Dank für das Teilen, +1. Sie sollten jedoch die Windows-Version angeben.
Dmitry Grigoryev
Ich verwende Windows 7 Professional N, aber ein Problem mit Windows würde höchstwahrscheinlich bei allen NT-Nachkommen auftreten. Die einzige Lösung ist 7-spezifisch, obwohl ich glaube, dass die Lösung für andere Versionen fast identisch wäre.
Mateusz Kubuszok

Antworten:

2

Nachdem ich Partitionen geklont hatte, gab es einige Fehler, von denen mir keiner bewusst war.

  1. Unter Linux verwenden mehrere Programme die Geräte-UUID anstelle der /dev/sdXNotation. Tatsache ist zB, dass /etc/fstabdies der empfohlene Weg ist. In meinem Fall handelte es sich um Einträge zu Swap-Partitionen. Infolgedessen blieb das Initialisierungsskript eine Weile hängen, bevor es aufgab und weiterging.

    Mit habe grep -r [UUID] /ich alle Orte gefunden, an denen alte Swap-Partitionen verwendet wurden. Ich habe den Wert durch einen übereinstimmenden Wert sudo blkidin den Dateien ersetzt:

    /etc/blkid.tab                # swap partition
    /etc/uswsusp.conf             # hibernation device
    /var/cache/debconf/config.dat
    /etc/initramfs-tools/conf.d/resume
    

    Dann musste ich sicherstellen, dass diese Werte in initrc-Skripten landeten. Dies kann durch manuellen Aufruf oder (in meinem Fall) durch Deinstallieren und erneutes Installieren erfolgen uswsusp(Swap-Partition wird auch zum Speichern von Ruhezustandsdaten verwendet).

    Danach wurde die Swap-Partition korrekt geladen und der Bootvorgang war schnell.

  2. auf der Windows- System RestorePartition wurde geklont, aber nicht als aktiv markiert - infolgedessen konnten die System Repair Tools dies nicht erkennen und das MBR-Setup reparieren. Ich musste:

    • offene Kommandozeile (für unbekanntes System),
    • laufen diskpart,
    • finde die rechte Scheibe mit heraus list diskund wähle sie mit aus select disk [NUMBER],
    • finde die rechte Partition mit heraus list partitionund wähle sie mit aus select partition [NUMBER],
    • aktuelle Partition als aktiv markieren mit active,
    • Starten Sie das System neu, laden Sie die System Repair Tools erneut und lassen Sie sie alles reparieren ( bootrec /fixmbrund bootrec /fixbootkönnten sich als nützlich erweisen).
  3. Natürlich musste ich in der Zwischenzeit Grub wiederherstellen, weil ich es nicht geklont habe:

    mount /dev/sda5 /mnt
    mount --bind /dev /mnt/dev
    mount --bind /proc /mnt/proc
    mount --bind /sys /mnt/sys
    chroot /mnt
    grup-install /dev/sda5
    update-grub 
    
Mateusz Kubuszok
quelle