Я перенес свою систему с btrfs на ext4 после того, как столкнулся с проблемами производительности виртуальных машин. У меня в ноутбуке два жестких диска для работы. Я успешно переместил свой домашний раздел, но те же шаги, которые я использовал, не работают для 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
используется Как и почему это может быть использовано?
Согласно комментарию Кейси, вывод 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)
Согласно комментарию Уорика, размонтирование:
$ 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 больше не монтируется. Странно, а?
Согласно миксерву:
$ rmmod btrfs
rmmod: ERROR: Module btrfs is in use
Это очень ожидаемо, так как sdb3 является btrfs и должен быть смонтирован в root. Из моего файла mkinitcpio.conf:
MODULES=""
HOOKS="base udev autodetect modconf block filesystems keyboard fsck"
источник
wipefs
на диск, чтобы удалить суперблоки ...rmmod
.... Вы можете пойти разными путями, но, вероятно, все они сводятся к тому, что вы не загружаете или не выгружаете модуль.Ответы:
Я понял. Мой загрузчик не был настроен должным образом. Звучит очевидно, верно? Изменение fstab не совсем подходит для настройки загрузчика. Мне пришлось изменить строку,
/boot/syslinux/syslinux.cgf
чтобы сослаться на правильный загрузочный раздел.Тем не менее, не было необходимости загружаться со второго диска в первую очередь. Я мог бы избежать этой проблемы, выполнив весь процесс в живом окружении и запустив программу
mkinitcpio
.источник