Ich habe mein System von btrfs auf ext4 migriert, nachdem ich auf Leistungsprobleme mit VMs gestoßen bin. Ich habe zwei Festplatten in meinem Laptop, mit denen ich arbeiten kann. Ich habe meine Home-Partition erfolgreich verschoben, aber die gleichen Schritte, die ich verwendet habe, funktionieren nicht für root.
Bisherige Fortschritte:
Ich hätte dd
meine Root-Partition von /dev/sda3
in /dev/sdb3
. Ich /etc/fstab
habe Folgendes geändert :
$ cat /etc/fstab
#
# /etc/fstab: static file system information
#
# <file system> <dir> <type> <options> <dump> <pass>
# UUID=95f13c34-96ca-49e3-bcb2-ff594df31506
/dev/sdb3 / btrfs rw,noatime,ssd,space_cache,discard 0 0
# UUID=0fe04f59-599f-41e2-ac30-2ad0f17a9727
/dev/sda2 /boot ext2 rw,relatime 0 2
# UUID=44741e0f-924a-4841-80ef-2132bef84182
/dev/sda4 /home ext4 rw,noatime,discard 0 0
und renne sudo mkinitcpio -p linux
. Es scheint zu funktionieren. Ich kann durch Mounten der Partition auf der zweiten Festplatte booten. df
zeigt an:
$ df
Filesystem Size Used Avail Use% Mounted on
/dev/sdb3 28G 18G 9.8G 65% /
Also ist klar, sdb3
montiert, nicht sda3
. Hier ist der problematische Schritt: Wenn ich versuche sda3
, das angeblich nicht verwendete Format zu formatieren , erhalte ich Folgendes:
$ sudo mkfs.ext4 /dev/sda3
[sudo] password for stew:
mke2fs 1.42.11 (09-Jul-2014)
/dev/sda3 contains a btrfs file system
Proceed anyway? (y,n) y
/dev/sda3 is apparently in use by the system; will not make a filesystem here!
sda3
ist in Gebrauch. Wie und warum könnte es möglicherweise in Gebrauch sein?
Laut Caseys Kommentar ist die Ausgabe von mount:
mount | grep sd
/dev/sdb3 on / type btrfs (rw,noatime,ssd,discard,space_cache)
/dev/sda4 on /home type ext4 (rw,noatime,discard,data=ordered)
/dev/sda2 on /boot type ext2 (rw,relatime)
Nach dem Kommentar von Warwick:
$ sudo umount /dev/sda3
umount: /dev/sda3: not mounted
Das Mounten und Ummounten von sda3 an anderer Stelle funktioniert erfolgreich, ändert aber nichts.
Update: Mehr Fischverhalten:
$ mount | grep sd
/dev/sdb3 on / type btrfs (rw,noatime,ssd,discard,space_cache)
/dev/sda4 on /home type ext4 (rw,noatime,discard,data=ordered)
/dev/sda2 on /boot type ext2 (rw,relatime)
$ sudo mount /dev/sda3 mnt
[sudo] password for stew:
$ mount | grep sd
/dev/sda3 on / type btrfs (rw,noatime,ssd,discard,space_cache)
/dev/sda4 on /home type ext4 (rw,noatime,discard,data=ordered)
/dev/sda2 on /boot type ext2 (rw,relatime)
/dev/sda3 on /home/stew/mnt type btrfs (rw,relatime,ssd,discard,space_cache)
Nach dem Mounten von sda3 ist sdb3 nicht mehr mounter. Komisch, was?
Wie mikeserv:
$ rmmod btrfs
rmmod: ERROR: Module btrfs is in use
Dies wird sehr erwartet, da sdb3 btrfs ist und auf root gemountet werden soll. Aus meiner mkinitcpio.conf-Datei:
MODULES=""
HOOKS="base udev autodetect modconf block filesystems keyboard fsck"
quelle
wipefs
auf eine schwarze Liste setzen oder die Superblöcke auf der Festplatte entfernenrmmod
. Es gibt viele Möglichkeiten, die Sie nutzen können, aber wahrscheinlich müssen Sie das Modul nicht laden oder entladen.Antworten:
Ich habe es herausgefunden. Mein Bootloader war nicht richtig konfiguriert. Klingt offensichtlich, oder? Wenn Sie fstab ändern, wird dies nicht als Konfiguration des Bootloaders gewertet. Ich musste eine Zeile ändern
/boot/syslinux/syslinux.cgf
, um auf die richtige Startpartition zu verweisen.Das heißt, es war überhaupt nicht nötig, von der zweiten Festplatte zu booten. Ich hätte dieses Problem umgehen können, indem ich den gesamten Prozess in einer Live-Umgebung durchgeführt und mich zum Laufen gebracht hätte
mkinitcpio
.quelle