Чтобы проверить стабильность Btrfs-RAID1, я хотел установить Ubuntu на две USB-флешки из Virtualbox.

Чего бы я хотел достичь:

  • Наличие RAID1-системы на базе btrfs, которая загружается на любой из USB-накопителей. Я использую 15.04 amd64-образ.

Где я застрял сейчас:

  • Я могу установить и загрузить его на одной флешке просто отлично. Всякий раз, когда я пытаюсь добавить вторую флешку USB, добавив ее в Ubuntu в пул btrfs и изменив уровни избыточности на RAID1, система перезагружается, показывая «BTRFS: open_ctree fail» и впоследствии «mount: mount /dev /disk /» / uuid / UUID в / root не удалось: неверный аргумент '.

Я попытался по крайней мере дюжину раз, чтобы настроить его правильно, но безрезультатно. Вещи, которые я пытался

  • Передача флешек как таковых через USB-контроллер
  • Передача необработанных USB-дисков в виде виртуальных vmdks на контроллер SATA или IDE
  • Использование всего диска в качестве одного раздела Btrfs с таблицей разделов и без нее
  • Настройка раздела biosgrub и / или раздела '/ boot'-ext4 перед разделом btrfs
  • Разбиение только одной флешки с «одиночным» режимом резервирования и последующее добавление другой

1 ответ1

0

Какие команды вы использовали именно?

Обычно, если на вашей виртуальной машине имеется два USB-накопителя (одинакового размера), система устанавливается на первом, вот что вы можете сделать:

Загрузите живую систему, например установочный диск Ubuntu. Первый usb-диск, на котором установлена Ubuntu, может быть /dev /sda, второй, который еще пуст, может быть /dev /sdb. Я предполагаю, что есть отдельный раздел /boot (sda1) и ваша файловая система btrfs находится на sda2, поэтому вы хотите создать такой же sdb2, что и зеркало RAID1.

Скопируйте таблицу разделов на новый USB-диск: dd if=/dev/sda of=/dev/sdb bs=512 count=1
Новый диск теперь содержит пустые разделы, поэтому у вас есть /dev /sdb2.

sda (FIRST USB DRIVE)  <- your Ubuntu installation
  sda1 /boot           <- your Ubuntu boot partition
  sda2 /               <- your Ubuntu root partition
sdb (SECOND USB DRIVE) <- new usb drive, to be used for mirror
  sdb1                 <- empty fake copy of boot partition
  sdb2 (btrfs...)      <- will be second device in sda2 mirror

Создайте новую файловую систему btrfs : mkfs.btrfs /dev/sdb2
(При необходимости используйте -f .)

Смонтируйте вашу старую файловую систему btrfs (которую нужно превратить в зеркало), используя mount /dev/sda2 /mnt или перезагрузите работающую систему и запустите реальную систему Ubuntu (точка монтирования будет / вместо /mnt).

Добавьте новый раздел как второе устройство в вашу файловую систему btrfs : btrfs device add /dev/sdb2 /mnt
Замените /mnt если вы смонтировали его в другом месте (или уже перезагрузили).
Дважды проверьте (вы должны получить список из 2 разделов, sda2 и sdb2, который по-прежнему пуст): btrfs filesystem show /mnt

Превратите файловую систему btrfs с двумя дисками в зеркало: btrfs balance start -dconvert=raid1 -mconvert=raid1 /mnt

Теперь перезагрузите компьютер и посмотрите, что произойдет. Запустите btrfs fi show раз, чтобы подтвердить, что используются sda2 и sdb2.

Обратите внимание, что /dev /sdb1 - это пустой раздел того же размера, что и /dev /sda1 (ваш загрузочный раздел), но если вы все еще можете загружаться с sda, вам не нужно его копировать. Для полной копии, если ваш второй USB-накопитель должен заменить первый USB-накопитель, вам также следует скопировать sda1 в sdb1 (команда dd, см. Выше).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .