Estive migrando meu sistema do btrfs para o ext4 após encontrar problemas de desempenho com as VMs. Eu tenho dois discos rígidos no meu laptop para trabalhar. Mudei minha partição pessoal com sucesso, mas as mesmas etapas que eu usei não estão funcionando como root.
Progresso até agora:
Eu tenho dd
a minha partição raiz de /dev/sda3
dentro /dev/sdb3
. Eu modifiquei /etc/fstab
para o seguinte:
$ 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
e corra sudo mkinitcpio -p linux
. Parece funcionar. Eu consigo inicializar montando a partição no segundo disco. df
mostra:
$ df
Filesystem Size Used Avail Use% Mounted on
/dev/sdb3 28G 18G 9.8G 65% /
Então, claramente, sdb3
está montado, não sda3
. Aqui está a etapa problemática: Quando tento formatar sda3
, que supostamente não é usado, recebo o seguinte:
$ 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á em uso. Como e por que poderia estar em uso?
Conforme o comentário de Casey, a saída do 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)
Conforme o comentário de Warwick, desmontando:
$ sudo umount /dev/sda3
umount: /dev/sda3: not mounted
Montar e desmontar o sda3 em outro local funciona com êxito, mas nada muda.
Atualização: Comportamento mais suspeito:
$ 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)
Depois de montar o sda3, o sdb3 não é mais o montador. Estranho, né?
Conforme mikeserv:
$ rmmod btrfs
rmmod: ERROR: Module btrfs is in use
Isso é muito esperado, já que o sdb3 é btrfs e deve ser montado no root. Do meu arquivo mkinitcpio.conf:
MODULES=""
HOOKS="base udev autodetect modconf block filesystems keyboard fsck"
fonte
wipefs
coloque-o na lista negra ou no disco para remover os superblocos ...rmmod
... Existem várias maneiras pelas quais você pode seguir, mas provavelmente tudo se resume a você não carregar ou descarregar o módulo.Respostas:
Eu descobri. Meu carregador de inicialização não foi configurado corretamente. Parece óbvio, certo? A modificação do fstab não se enquadra na configuração do gerenciador de inicialização. Eu tive que mudar uma linha
/boot/syslinux/syslinux.cgf
para me referir à partição de inicialização correta.Dito isto, não havia necessidade de inicializar o segundo disco em primeiro lugar. Eu poderia ter evitado esse problema concluindo todo o processo em um ambiente ativo e correndo para executar
mkinitcpio
.fonte