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/sda3
dans /dev/sdb3
. J'ai modifié /etc/fstab
ce 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. df
spectacles:
$ df
Filesystem Size Used Avail Use% Mounted on
/dev/sdb3 28G 18G 9.8G 65% /
Donc, clairement, sdb3
est 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!
sda3
est 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"
la source
wipefs
mettez-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.Réponses:
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.cgf
pour 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
.la source