Чому б розділ використовувався системою, якщо він не встановлений?


12

Я мігрував свою систему з btrfs в ext4 після того, як зіткнувся з проблемами продуктивності з VM. У мене є два жорстких диска в моєму ноутбуці для роботи. Я успішно перемістив свій домашній розділ, але ті самі кроки, які я використав, не працюють для root.

Прогрес поки що:

Я буду ddсвоїм кореневим розділом /dev/sda3зсередини /dev/sdb3. Я змінив /etc/fstabнаступне:

$ 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

і біжи sudo mkinitcpio -p linux. Здається, працює. Я можу завантажитися, встановивши розділ на другому диску. dfпоказує:

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

Тож, очевидно, sdb3монтується, ні sda3. Ось проблематичний крок: Коли я намагаюся форматувати sda3, який нібито не використовується, я отримую наступне:

$ 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використовується. Як і чому він може бути використаний?

Відповідно до коментаря casey, вихід монтажу:

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)

Відповідно до коментаря Warwick, відключення:

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

Монтаж та налаштування sda3 в іншому місці працює успішно, але нічого не змінює.

Оновлення: Більш рибна поведінка:

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

Після монтажу sda3, sdb3 вже не є монтувальником. Дивно, так?

Відповідно до mikeserv:

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

Це дуже очікувано, оскільки sdb3 є btrfs і повинен бути змонтований до root. З мого файлу mkinitcpio.conf:

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

Спробуйте встановити та відключити його. Можливо, десь встановлений прапор, який змушує його думати, що він встановлений, коли його немає. Якщо він помиляється під час монтажу, сподіваємось, він повідомляє вам точку монтажу, яку він вважає встановленою.
Warwick

вийміть модулі / гачки ядра btrfs з initramfs. арка має декілька з них. ще чорний список це або wipefsна диску, щоб видалити суперблоки ... rmmod.... Є багато способів, якими ви могли б піти, але вони, ймовірно, всі зберуться до вас, не завантажуючи і не вивантажуючи модуль.
mikeserv

1
можливо, якась інша програма відкрила / dev / sda3
programmerjake

1
Ви дійсно повинні робити це з живого середовища ...
jasonwryan

@case Done. / dev / sdb3 чітко встановлений
stewSquared

Відповіді:


5

Я зрозумів це. Мій завантажувач неправильно налаштований. Звучить очевидно, правда? Змінення fstab не зовсім кваліфікується як налаштування завантажувача. Мені довелося змінити рядок, /boot/syslinux/syslinux.cgfщоб послатися на правильний розділ завантаження.

Це означає, що не потрібно було завантажувати другий диск в першу чергу. Я міг би уникнути цієї проблеми, завершивши весь процес у живій обстановці та набравши на роботу mkinitcpio.


2
Таким чином, ви завантажили sda3, потім встановили sdb3 на / над ним, який перезаписав запис mtab, отже, вихід команди команди mount не відображає ознак sda3.
Кайл Джонс

@KyleJones Yup Це підсумовує це.
stewSquared
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.