Habe /usr auf eine andere Festplatte verschoben, da es zu groß wurde, aber jetzt bootet mein System nicht mehr?

Habe /usr auf eine andere Festplatte verschoben, da es zu groß wurde, aber jetzt bootet mein System nicht mehr?

Derzeit habe ich meine Arch-Installation (reines Arch + Hyprland) installiert, sodass mein / (Root) auf meiner NVME-SSD liegt (die aufgrund des Windows-Dual-Boots wenig Platz hat), mein /home-Verzeichnis jedoch auf meiner SSHD (Hybrid aus SSD und HDD, aber man kann es getrost als HDD betrachten), da es viel mehr Speicherplatz hat. Da ich jedoch weitere Pakete, Treiber usw. installiert habe, wurde es zu groß, um auf meine SSD zu passen, also folgte ich einigen Anleitungen vonAbonnieren,Superuserund einige andere Seiten, die im Wesentlichen das Gleiche sagten. Nach ihnen habe ich eine Live-Diskette gebootet und beide Laufwerke gemountet. Hier sindalle Laufwerke und Partitionen auf meinem Systemals Referenz (Root ist nvme0n1p8, Home ist sda5, das Ziel für usr ist sda6) Habe es ausgeführt rsync -avh "/mnt/usr/" "sda6mnt/", etc/fstab bearbeitet und neugestartet. Nach dem Neustart bekam ich jedochdieser Bildschirm

Um dies zu beheben, ging ich zurück zur Live-Disk, aber dieses Mal mountete ich alle Laufwerkeso was(also wie sie sein sollten, wenn alles erledigt ist). Und ich habe genfstab -U /mnt >> /mnt/etc/fstab, vimed in die fstab ausgeführt und sie bearbeitet, um das Setup von vorher zu entfernen und endete mitDas. Es sah für mich gut aus, also habe ich einen Neustart durchgeführt, aber es traten die gleichen Fehler wie zuvor auf.

Also, ja, ich hoffe, dass mir jemand helfen kann, herauszufinden, was hier nicht stimmt oder ob ich beim Partitionieren oder Erstellen der fstab einen Fehler gemacht habe, und danke im Voraus!

P.S.: Das mit den Bildern tut mir leid, aber ich habe keine Capture-Karte und könnte in einer Arch-Recovery-Shell offensichtlich keinen Screenshot machen :)

Antwort1

Da /usr den Großteil des Hauptbetriebssystems enthält, kann es nicht wirklich gemountet werdenvondasselbe Betriebssystem (Sie haben beispielsweise /usr/bin/mount noch nicht), sondern es muss während des frühen Teils des Startvorgangs vom initramfs gemountet werden. Während Distributionen früher das späte Mounten von /usr über reguläres fstab unterstützten, ist dies bei Arch (oder Debian, Gentoo oder Fedora) nicht mehr der Fall.

Mit dem regulären Arch mkinitcpio bearbeiten Sie /etc/mkinitcpio.confden usrHook, um ihn zu aktivieren. Erstellen Sie dann Ihr initramfs mit neu mkinitcpio -P. SieheArtikel. (Da Sie jedoch Btrfs verwenden, möchten Sie das Initramfs möglicherweise stattdessen vollständig auf „systemd“ umstellen.)

(Realistisch betrachtet macht es meiner Meinung nach jedoch wenig Sinn, den Rest von / auf Ihrer SSD zu behalten. Ohne /usr sind auf Ihrer SSD nur /var und /etc übrig, die beide winzig sind und wenig genutzt werden – auf einem Desktop-PC scheint es Verschwendung zu sein, /var auf der schnellsten Festplatte zu speichern; im Grunde enthält es nur Protokolle. Ich würde lieber entweder in eine größere NVMe-SSD investieren – mittlerweile könnte man für denselben Preis fast eine mit 2 TB bekommen – oder die Windows-Installation verkleinern, um Platz für /usr zu schaffen.)

Bedenken Sie auch, dass rsync -anicht alle Metadaten kopiert werden. Sie müssen zusätzlich -HAXHardlinks, Datei-ACLs und erweiterte Attribute beibehalten. (Beispielsweise gibt es mehrere „setuid-ähnliche“ Binärdateien, denen Dateiberechtigungen zugewiesen sind.)

verwandte Informationen