Ich habe Linux Mint und Manjaro Linux auf meinem Computer installiert. Ich habe nur die Linux Mint auf dem MBR installiert. Für Manjaro habe ich eine /boot/efi
Partition erstellt, die Installation auf MBR wurde jedoch nicht aktiviert.
Also kontrolliere ich grub
von Minze. Wenn ich jetzt versuche, Manjaro zu booten, zeigt es:
ERROR: resume: no device specified for hibernation: performing fsck on
dev/sda11 /dev/sda11: clean 1727/915712 files, .... blocks
WARNING: The root device is not configured to be mounted read-write!It
may be fsck'd again later
:mounting /dev/sda11 on real boot running cleanup hook [udev]
ERROR: Root device mounted successfully, but /sbin/init does not exist.
sh:can't access tty; job control turned off
[rootfs /]#
Nach der Shell-Eingabeaufforderung kann ich nichts schreiben. Es hängt oder manchmal zeigt es mir ständig Nachrichten wie:
usb 3-3: device not accepting address 2, error -62
und so weiter...
Ich habe versucht, init=/usr/lib/systemd/systemd
Grub hinzuzufügen , wie ich in Google gesehen habe, aber immer noch das gleiche.
Ich muss beachten, dass ich für die Manjaro-Installation eine separate Partition für /
und für /usr
und für verwende /var
. Das hat vielleicht einen Einfluss? Wie ich hier gesehen habe .
Aber das Problem ist, dass ich nichts schreiben kann, es hängt.
Ich habe hier auch einen Kommentar zu einem Blog-Beitrag gefunden , der besagt:
„Wenn Sie / usr als separate Partition behalten, müssen Sie die folgenden Anforderungen erfüllen:“ - Fügen Sie den Shutdown-Hook hinzu. Beim Herunterfahren wird auf eine gespeicherte Kopie des initramfs umgeschaltet, und / usr (und root) können ordnungsgemäß vom VFS abgemeldet werden.
“- Fügen Sie den fsck-Hook hinzu und markieren Sie / usr mit einem Kennwort von 0 in / etc / fstab. Obwohl dies für alle empfohlen wird, ist es obligatorisch, wenn Ihre / usr-Partition beim Booten überprüft werden soll. Ohne diesen Hook wird / usr niemals gefickt.
“- Fügen Sie den usr-Haken hinzu. Dadurch wird die Partition / usr nach dem Mounten von root gemountet. Vor 0.9.0 würde das Mounten von / usr automatisch erfolgen, wenn es in der Datei / etc / fstab des echten Roots gefunden würde. “
Und vergessen Sie niemals, mkinitcpio -p linux jedes Mal auszuführen, nachdem Sie Änderungen an mkinitcpio.conf vorgenommen haben, um die neuen Bilder tatsächlich zu erstellen und sie an den richtigen Ort zu bringen.
Das klingt vielversprechend, da sich meine /usr
tatsächlich auf einer separaten Partition befindet. Was sind diese "Haken" und wie füge ich sie hinzu?
parted -l
::
Model: ATA TOSHIBA MQ01ABD0 (scsi)
Disk /dev/sda: 750GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 1049kB 1075MB 1074MB ntfs Basic data partition hidden, diag
2 1075MB 1347MB 273MB fat32 Basic data partition boot
3 1347MB 1482MB 134MB ntfs Basic data partition msftres
4 1482MB 80,1GB 78,6GB ntfs Basic data partition msftdata
5 80,1GB 80,4GB 262MB ext4
6 80,4GB 90,4GB 10,0GB ext4 msftdata
7 93,0GB 102GB 9000MB ext4 msftdata
9 102GB 106GB 3999MB linux-swap(v1)
10 106GB 106GB 250MB fat32 boot
11 106GB 121GB 15,0GB ext4 msftdata
12 121GB 151GB 30,0GB ext4 msftdata
13 151GB 165GB 14,0GB ext4 msftdata
14 165GB 206GB 40,9GB ext4 msftdata
8 206GB 743GB 537GB ext4 msftdata
15 743GB 747GB 4000MB linux-swap(v1) msftdata
grub
::
menuentry 'Linux Mint 17 Cinnamon 64-bit, 3.13.0-24-generic (/dev/sda5)' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
gfxmode $linux_gfx_mode
insmod gzio
insmod part_gpt
insmod ext2
set root='hd0,gpt5'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt5 --hint-efi=hd0,gpt5 --hint-baremetal=ahci0,gpt5 19af2e09-8946-4ca2-9655-75921f3609a5
else
search --no-floppy --fs-uuid --set=root 19af2e09-8946-4ca2-9655-75921f3609a5
fi
linux /vmlinuz-3.13.0-24-generic root=UUID=9356f543-f391-4ba5-9dcc-e8484d6935e0 ro quiet splash $vt_handoff
initrd /initrd.img-3.13.0-24-generic
}
menuentry 'Linux Mint 17 Cinnamon 64-bit, 3.13.0-24-generic (/dev/sda5) -- recovery mode' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod gzio
insmod part_gpt
insmod ext2
set root='hd0,gpt5'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt5 --hint-efi=hd0,gpt5 --hint-baremetal=ahci0,gpt5 19af2e09-8946-4ca2-9655-75921f3609a5
else
search --no-floppy --fs-uuid --set=root 19af2e09-8946-4ca2-9655-75921f3609a5
fi
echo 'Loading Linux 3.13.0-24-generic ...'
linux /vmlinuz-3.13.0-24-generic root=UUID=9356f543-f391-4ba5-9dcc-e8484d6935e0 ro recovery nomodeset
echo 'Loading initial ramdisk ...'
initrd /initrd.img-3.13.0-24-generic
}
menuentry 'Manjaro Linux (0.8.10) (on /dev/sda11)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-simple-95ed019d-9269-4869-9f99-a03f002a53c6' {
insmod part_gpt
insmod ext2
set root='hd0,gpt11'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt11 --hint-efi=hd0,gpt11 --hint-baremetal=ahci0,gpt11 95ed019d-9269-4869-9f99-a03f002a53c6
else
search --no-floppy --fs-uuid --set=root 95ed019d-9269-4869-9f99-a03f002a53c6
fi
linux /boot/vmlinuz-312-x86_64 root=/dev/sda11
initrd /boot/initramfs-312-x86_64.img
}
submenu 'Advanced options for Manjaro Linux (0.8.10) (on /dev/sda11)' $menuentry_id_option 'osprober-gnulinux-advanced-95ed019d-9269-4869-9f99-a03f002a53c6' {
menuentry 'Manjaro Linux (0.8.10) (on /dev/sda11)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-312-x86_64--95ed019d-9269-4869-9f99-a03f002a53c6' {
insmod part_gpt
insmod ext2
set root='hd0,gpt11'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt11 --hint-efi=hd0,gpt11 --hint-baremetal=ahci0,gpt11 95ed019d-9269-4869-9f99-a03f002a53c6
else
search --no-floppy --fs-uuid --set=root 95ed019d-9269-4869-9f99-a03f002a53c6
fi
linux /boot/vmlinuz-312-x86_64 root=/dev/sda11
initrd /boot/initramfs-312-x86_64.img
}
}
sudo parted -l
und den Inhalt Ihrer/boot/grub/grub.cfg
Datei (oder zumindest den Manjaro-Eintrag) hinzu./dev/sda11
tatsächlich das Root-Dateisystem von Manjaro enthält? Haben Sie/etc/fstab
das Manjaro-System richtig eingerichtet , um die anderen benötigten Partitionen zu mounten? Können Sie bestätigen , dass es eine/sbin/init
auf/dev/sda11
?mkdir foo && sudo mount /dev/sda11 foo
von Mint. Überprüfen Sie dann, ob der Inhalt von~/foo
wie ein/
Verzeichnis aussieht , stellen Sie sicher, dass es ein Verzeichnis gibt,~/foo/sbin/init
und überprüfen Sie ~ / foo / etc / fstab`, um sicherzustellen, dass die Partitionen in Manjaro korrekt geladen sind./sbin
ist jetzt ein Symlink zu/usr/bin
. @ George Dieser Blog-Kommentar verweist auf diesen Teil des Wikis . In Ihrem Fall kann das Problem der letzte Aufzählungspunkt sein. Sie müssen/usr
von der Init-Ramdisk gemountet werden.Antworten:
Wie @Leiaz in den Kommentaren sehr richtig hervorhob, ist
/sbin
Arch (und im weiteren Sinne Manjaro) nun ein Symlink zu/usr/bin
. Dies bedeutet, dass es nicht existiert , wenn/usr
es nicht gemountet ist/usr/sbin/init
. Sie müssen daher sicherstellen, dass diese/usr
von der ursprünglichen Ramdisk gemountet wird. Das bedeutet das Arch-Wiki-Zitat in Ihrem OP:Sie müssen also eine neue Init-Datei mit den richtigen Hooks 1 generieren . Diese werden durch Ändern der
HOOKS=""
Zeile in hinzugefügt/etc/mkinitcpio.conf
. DamitStarten Sie Mint und hängen Sie das Manjaro-
/
Verzeichnis ein:Jetzt wird Manjaros Wurzel bei montiert
~/manjaro_root
.Bearbeiten Sie die
mkinitcpio.conf
Datei mit Ihrem Lieblingseditor (ich verwendenano
als Beispiel nicht mehr):Suchen Sie die
HOOKS
Linie und stellen Sie sicher, dass sie die entsprechenden Haken enthältWichtig ": Entfernen Sie keine der bereits vorhandenen Haken. Fügen Sie einfach die oben genannten zu den dort vorhandenen hinzu. Beispielsweise könnte das Endergebnis so aussehen
Markieren Sie
/usr
mit einem passno von 0 in/etc/fstab
. Öffnenmanjaro_root/etc/fstab
Sie dazu die/usr
Zeile und suchen Sie sie . In diesem Beispiel/dev/sda12
gehe ich davon aus, dass es sich um das handelt , das sich auf Ihrem System befindet. Die "Pass" -Nummer ist das letzte Feld eines/etc/fstab
Eintrags. Sie müssen also sicherstellen, dass die Linie so aussiehtErstellen Sie das neue Init-Image. Dazu müssen Sie auch das Manjaro-
/usr
Verzeichnis mounten .Ich habe nicht viel Erfahrung mit Arch, daher wird dies möglicherweise nicht benötigt (Sie können möglicherweise
mkinitcpio
ohne a laufenchroot
), aber um auf der sicheren Seite zu sein, richten Sie einechroot
Umgebung ein:Sie befinden sich jetzt in einer Chroot-Umgebung, die denkt, dass dies
~/manjaro_root/
tatsächlich der Fall ist/
. Sie können jetzt Ihr neues Init-Image erstellenVerlasse die
chroot
Aktualisieren Sie Ihre
grub.cfg
(erneut, dies wird möglicherweise nicht benötigt):Starten Sie nun neu und versuchen Sie erneut, Manjaro zu starten.
1 "Hooks" sind kleine Skripte, die angeben,
mkinitcpio
was dem von ihm generierten Init-Image hinzugefügt werden soll.quelle
/etc/mkinitcpio.d/
?linux
ist die Standardeinstellung unter Archlinux, vielleicht gibt Manjaro ihm einen anderen Namen./sbin
war, dass es sich nicht auf derselben Partition wie befinden musste/usr
. Ich frage mich, warum Arch beschlossen hat, sie zusammenzuführen.In Mint können Sie root in Ihre Manjaro-Installation ändern , um initramfs neu zu generieren.
Hängen Sie Ihr Manjaro-Stammverzeichnis in das Verzeichnis Ihrer Wahl ein (
~/foo
). Mounten Sie Ihre/usr
Partition unter~/foo/usr
, mounten Sie auch boot, wenn es separat ist. Mount proc sys dev:Und Wurzel wechseln:
chroot ~/foo /bin/bash
Wie im Wiki erklärt : "Hooks sind kleine Skripte, die beschreiben, was dem Bild hinzugefügt wird". Bearbeiten
/etc/mkinitcpio.conf
, fügen Sie dieusr
fsck
undshutdown
Hooks zumHOOK
Eintrag hinzu, wie im Wiki und in den Kommentaren angegeben. Initramfs neu generieren:mkinitcpio -p linux
(wird geschrieben in/boot
)Beenden Sie die Partitionen chroot, unmount proc, sys, dev und Manjaro und versuchen Sie einen Neustart.
quelle
Es wurde nur ungefähr 6 Stunden damit verschwendet, ein USB-Startgerät für Linux Mint zu erstellen, alle meine Daten von 2 Partitionen zu sichern und verschiedene Rettungsversuche zu versuchen, nachdem die gefürchtete Meldung sbin / init nicht gefunden wurde ...
Dies geschah nach einem kleinen Update - das System wurde nicht neu gestartet. Es scheint, dass der gesamte sbin-Ordner auf mysteriöse Weise gelöscht wurde und nicht wiederhergestellt werden konnte. Der einzige sinnvolle Rat, den ich finden konnte, war "Neuinstallation".
Die Lösung (weniger als 5 Minuten !!) war wie folgt:
quelle