Perché una partizione dovrebbe essere utilizzata dal sistema se non è montata?


12

Ho migrato il mio sistema da btrfs a ext4 dopo aver riscontrato problemi di prestazioni con le macchine virtuali. Ho due dischi rigidi nel mio laptop con cui lavorare. Ho spostato correttamente la mia partizione home, ma gli stessi passaggi che ho usato non funzionano per root.

Progressi finora:

Avevo la ddmia partizione di root da /dev/sda3dentro /dev/sdb3. Ho modificato /etc/fstabil seguente:

$ 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 corri sudo mkinitcpio -p linux. Sembra funzionare Sono in grado di avviare montando la partizione sul secondo disco. dfSpettacoli:

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

Quindi, chiaramente, sdb3è montato, no sda3. Ecco il passaggio problematico: quando provo a formattare sda3, che è presumibilmente inutilizzato, ottengo quanto segue:

$ 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è in uso. Come e perché potrebbe essere in uso?

Secondo il commento di Casey, l'output di 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)

Secondo il commento di Warwick, smontando:

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

Montare e smontare sda3 altrove funziona correttamente, ma non cambia nulla.

Aggiornamento: comportamento più sospetto:

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

Dopo aver montato sda3, sdb3 non è più mounter. Strano, eh?

Secondo mikeserv:

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

Questo è molto atteso, poiché sdb3 è btrfs e dovrebbe essere montato su root. Dal mio file mkinitcpio.conf:

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

Prova a montarlo, quindi smontalo. Forse una bandiera è posizionata da qualche parte che fa pensare che sia montata quando non lo è. Se si verifica un errore durante il montaggio, si spera che ti dica il punto di montaggio in cui pensa di essere montato.
Warwick,

estrarre i moduli / hook del kernel btrfs da initramfs. arch ne ha alcuni. altrimenti inseriscilo nella blacklist o wipefssul disco per rimuovere i superblocchi ... rmmod.... Ci sono molti modi in cui potresti andare, ma probabilmente verranno tutti da te non caricando o scaricando il modulo.
Mikeserv,

1
forse qualche altro programma ha aperto / dev / sda3
programmerjake il

1
Dovresti davvero farlo da un ambiente vivo ...
Jasonwryan,

@case Fatto. / dev / sdb3 è chiaramente montato
stewSquared

Risposte:


5

L'avevo capito. Il mio bootloader non è stato configurato correttamente. Sembra ovvio, vero? La modifica di fstab non si qualifica come configurazione del bootloader. Ho dovuto cambiare una linea /boot/syslinux/syslinux.cgfper fare riferimento alla partizione di avvio corretta.

Detto questo, in primo luogo non è stato necessario avviare il secondo disco. Avrei potuto evitare questo problema completando l'intero processo in un ambiente live e eseguendo il chroot mkinitcpio.


2
Quindi hai avviato sda3 quindi montato sdb3 sopra / sopra di esso, che ha sovrascritto la voce mtab, quindi l'output del comando mount non mostra alcun segno di sda3.
Kyle Jones,

@KyleJones Yup. Questo lo riassume.
Stew
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.