Pourquoi une partition serait-elle utilisée par le système si elle n'était pas montée?


12

J'ai migré mon système de btrfs vers ext4 après avoir rencontré des problèmes de performances avec les machines virtuelles. J'ai deux disques durs dans mon ordinateur portable avec lesquels travailler. J'ai réussi à déplacer ma partition domestique, mais les mêmes étapes que celles que j'ai utilisées ne fonctionnent pas pour root.

Progrès à ce jour:

J'ai dd« d ma partition racine de /dev/sda3dans /dev/sdb3. J'ai modifié /etc/fstabce qui suit:

$ 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

et courir sudo mkinitcpio -p linux. Cela semble fonctionner. Je peux démarrer en montant la partition sur le deuxième disque. dfspectacles:

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

Donc, clairement, sdb3est monté, non sda3. Voici l'étape problématique: lorsque j'essaie de formater sda3, qui est censé être inutilisé, j'obtiens ce qui suit:

$ 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!

sda3est en cours d'utilisation. Comment et pourquoi pourrait-il éventuellement être utilisé?

Selon le commentaire de casey, la sortie de 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)

Selon le commentaire de Warwick, démontage:

$ sudo umount /dev/sda3
umount: /dev/sda3: not mounted

Le montage et le démontage de sda3 ailleurs fonctionnent correctement, mais ne changent rien.

Mise à jour: comportement plus louche:

$ 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)

Après avoir monté sda3, sdb3 n'est plus monteur. Bizarre, hein?

Selon mikeserv:

$ rmmod btrfs
rmmod: ERROR: Module btrfs is in use

Ceci est très attendu, car sdb3 est btrfs et censé être monté sur root. Depuis mon fichier mkinitcpio.conf:

MODULES=""
HOOKS="base udev autodetect modconf block filesystems keyboard fsck"

Essayez de le monter, puis de le démonter. Peut-être qu'un indicateur est placé quelque part qui lui fait penser qu'il est monté lorsqu'il ne l'est pas. En cas d'erreur lors du montage, nous espérons qu'il vous indiquera le point de montage auquel il pense qu'il est monté.
Warwick

extraire les modules / hooks du noyau btrfs d'initramfs. arch en a quelques-uns. Sinon, wipefsmettez-le sur la liste noire ou sur le disque pour supprimer les superblocs ... rmmod.... Il y a beaucoup de façons de procéder, mais ils se résumeront probablement tous à ne pas charger ou décharger le module.
mikeserv

1
peut-être qu'un autre programme a ouvert / dev / sda3
programmerjake

1
Vous devriez vraiment le faire à partir d'un environnement en direct ...
jasonwryan

@case Terminé. / dev / sdb3 est clairement monté
stewSquared

Réponses:


5

Je l'ai compris. Mon chargeur de démarrage n'a pas été configuré correctement. Cela semble évident, non? La modification de fstab ne correspond pas tout à fait à la configuration du chargeur de démarrage. J'ai dû changer une ligne /boot/syslinux/syslinux.cgfpour me référer à la partition de démarrage correcte.

Cela dit, il n'était pas nécessaire de démarrer à partir du deuxième disque en premier lieu. J'aurais pu éviter ce problème en complétant l'ensemble du processus dans un environnement en direct et en chrootant pour s'exécuter mkinitcpio.


2
Vous avez donc démarré sda3 puis monté sdb3 sur / par-dessus, ce qui a écrasé l'entrée mtab, d'où la sortie de la commande mount ne montrant aucun signe de sda3.
Kyle Jones

@KyleJones Yup. Cela résume.
stewSquared
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.