Warum wird eine Partition vom System verwendet, wenn sie nicht gemountet ist?

12

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 ddmeine Root-Partition von /dev/sda3in /dev/sdb3. Ich /etc/fstabhabe 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. dfzeigt an:

$ df
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb3        28G   18G  9.8G  65% /

Also ist klar, sdb3montiert, 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!

sda3ist 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"
EintopfSquared
quelle
Versuchen Sie es zu montieren und dann abzunehmen. Vielleicht ist irgendwo ein Flag gesetzt, das den Eindruck erweckt, es sei montiert, wenn es nicht vorhanden ist. Wenn beim Mounten ein Fehler auftritt, wird hoffentlich der Mount-Punkt angegeben, an dem er gemountet sein soll.
Warwick
Holen Sie sich die btrfs-Kernel-Module / Hooks aus initramfs. Bogen hat ein paar von ihnen. Andernfalls können Sie es wipefsauf eine schwarze Liste setzen oder die Superblöcke auf der Festplatte entfernen rmmod. Es gibt viele Möglichkeiten, die Sie nutzen können, aber wahrscheinlich müssen Sie das Modul nicht laden oder entladen.
Mikeserv
1
vielleicht hat ein anderes programm / dev / sda3 geöffnet
programmerjake
1
Sie sollten dies wirklich aus einer Live-Umgebung tun ...
jasonwryan
@case Fertig. / dev / sdb3 ist eindeutig montiert
StewSquared

Antworten:

5

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.

EintopfSquared
quelle
2
Sie haben also sda3 gebootet und dann sdb3 darauf / darüber gemountet, wodurch der mtab-Eintrag überschrieben wurde, weshalb die Ausgabe des Befehls mount kein Anzeichen von sda3 zeigt.
Kyle Jones
@KyleJones Yup. Das fasst es zusammen.
StewSquared