Mengapa partisi digunakan oleh sistem jika tidak di-mount?

12

Saya telah memigrasi sistem saya dari btrfs ke ext4 setelah mengalami masalah kinerja dengan VM. Saya memiliki dua hard drive di laptop saya untuk bekerja dengannya. Saya telah berhasil memindahkan partisi rumah saya, tetapi langkah yang sama yang saya gunakan tidak berfungsi untuk root.

Kemajuan sejauh ini:

Saya sudah ddpartisi root saya dari /dev/sda3menjadi /dev/sdb3. Saya memodifikasi /etc/fstabsebagai berikut:

$ 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

dan lari sudo mkinitcpio -p linux. Sepertinya berhasil. Saya dapat mem-boot dengan memasang partisi pada disk kedua. dfmenunjukkan:

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

Jadi, jelas, sdb3sudah terpasang, tidak sda3. Inilah langkah yang bermasalah: Ketika saya mencoba memformat sda3, yang seharusnya tidak digunakan, saya mendapatkan yang berikut:

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

sda3sedang digunakan. Bagaimana dan mengapa itu bisa digunakan?

Sesuai komentar casey, output dari 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)

Sesuai komentar Warwick, tidak terpasang:

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

Mounting dan umounting sda3 di tempat lain berhasil, tetapi tidak mengubah apa pun.

Perbarui: Lebih banyak perilaku mencurigakan:

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

Setelah menginstal sda3, sdb3 tidak lagi mounter. Aneh, ya?

Sesuai mikeserv:

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

Ini sangat diharapkan, karena sdb3 adalah btrfs dan seharusnya di-mount ke root. Dari file mkinitcpio.conf saya:

MODULES=""
HOOKS="base udev autodetect modconf block filesystems keyboard fsck"
stququared
sumber
Coba pasang itu, lalu lepaskan pemasangannya. Mungkin bendera diatur di suatu tempat yang membuatnya berpikir itu dipasang ketika tidak. Jika kesalahan saat pemasangan, mudah-mudahan ini memberi tahu Anda titik pemasangan yang menurutnya sudah terpasang.
Warwick
dapatkan modul / kait kernel btrf dari initramfs. lengkungan memiliki beberapa dari mereka. kalau tidak, daftar hitam atau wipefspada disk untuk menghapus superblok ... rmmodAda banyak cara Anda bisa pergi, tetapi mereka mungkin semua akan turun kepada Anda untuk tidak memuat atau menurunkan modul.
mikeserv
1
mungkin beberapa program lain telah / dev / sda3 dibuka
programmerjake
1
Anda benar-benar harus melakukan ini dari lingkungan hidup ...
jasonwryan
@case Selesai. / dev / sdb3 jelas dipasang
stewSquared

Jawaban:

5

Saya menemukan jawabannya. Bootloader saya tidak dikonfigurasi dengan benar. Kedengarannya jelas, bukan? Memodifikasi fstab tidak cukup memenuhi syarat untuk mengkonfigurasi bootloader. Saya harus mengubah baris /boot/syslinux/syslinux.cgfuntuk merujuk ke partisi boot yang benar.

Yang mengatakan, tidak perlu boot dari disk kedua di tempat pertama. Saya bisa menghindari masalah ini dengan menyelesaikan seluruh proses dalam lingkungan hidup dan menjalankan proses chroot mkinitcpio.

stququared
sumber
2
Jadi Anda boot sda3 kemudian mount sdb3 pada / di atasnya, yang menimpa entri mtab, maka output perintah mount tidak menunjukkan tanda-tanda sda3.
Kyle Jones
@KyleJones Yup. Itu meringkasnya.
stewSquared