Не может загрузить после преобразования lvm2 корень к lvm2 raid1

У меня есть Ubuntu 12.10 (никакие обновления, 3.5.0-17-универсальное ядро) на первом жестком диске (sda), который использует MBR и был разделен как "Использование целый диск для человечности" с включенным LVM2. Корневая файловая система находится на LVM2 (VG:ubuntu). Сегодня я добавил второй жесткий диск (sdb) с тем же размером, разделил его как первый HDD, созданный lvm2 PV и преобразовал корневой LV в raid1:

pvcreate /dev/sdb5
vgextend ubuntu /dev/sdb5
lvconvert --type raid1 -m1 /dev/ubuntu/root /dev/sdb5

После 100%-й пересинхронизации я перезагрузил, и initramfs не мог найти корневую фс:

Begin: Running /scripts/init-premount ... done.
Begin: Mounting root file system ... Begin: Running /scripts/local-top ... done.
... (kernel messages)
Gave up waiting for root device. Common problems:
 - Boot args (cat /proc/cmdline)
   - Check rootdelay= (did the system wait long enough?)
   - Check root= (did the system wait for the right device?)
 - Missing modules (cat /proc/modules; ls /dev)
ALERT!  /dev/mapper/ubuntu-root does not exist.  
Dropping to a shell!

Существует список модулей:

(initramfs) cat /proc/modules
hid_generic
usbhid
hid
e1000
raid10
raid456
async_pq
async_xor
xor
async_memcpy
async_raid6_recov
raid6_pq
async_tx
raid1
raid0
multipath
linear
(initramfs) cat /proc/cmdline
BOOT_IMAGE=/vmlinux-3.5.0-17-generic root=/dev/mapper/ubuntu-root ro
(initramfs) ls /dev/mapper
control     ubuntu-swap_1

Там производится от lvm утилита:

lvm> pvscan
  PV /dev/sda5    VG ubuntu   lvm2 [ 13.76 GiB / 408.00 MiB free]
  PV /dev/sdb5    VG ubuntu   lvm2 [ 13.76 GiB / 508.00 MiB free]
lvm> vgscan
  Reading all physical volumes. This may take a while...
  Found volume group "ubuntu" using metadata type lvm2
lvm> lvscan
  inactive        '/dev/ubuntu/root' [13.26 GiB] inherit
  ACTIVE          '/dev/ubuntu/swap_1' [100.00 MiB] inherit

lvm> lvdisplay ubuntu
  --- Logical volume ---
  LV Path                /dev/ubuntu/root
  LV Name                root
  VG Name                ubuntu
  LV UUID                xxxxxxxxxxxxxxx
  LV Write Access        read/write
  LV Creation host, time ubuntu, 2013-05-07
  LV Status              NOT available          <<<<< !!!!
  LV Size                13.26 GB
  Current LE             3394
  Mirrored volumes       2
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto

И lvchange -ay ubuntu сбои:

lvm>  lvchange -ay ubuntu
  /sbin/modprobe failed: 1
  Can't process LV root: raid1 target support missing from kernel?

Что отсутствует в initrd?

4
задан 17 February 2014 в 15:04

2 ответа

Я поразил эту ту же проблему в свою систему Debian; это повернулось, чтобы быть вызванным некоторыми необходимыми модулями, не устанавливаемыми в initramfs.

А именно, после добавления этих строк к/etc/initramfs-tools/modules:

dm_mirror
dm_raid
dm_region_hash

и выполнение

update-initramfs -u -k all

мои начальные загрузки системы правильно.

Обратите внимание, что я не проверил, что все эти строки на самом деле необходимы. Я думаю, что dm_raid модуль отсутствует по умолчанию, по крайней мере.

После дальнейшего поиска существует ошибка Debian, открытая против initramfs-инструментов по этой проблеме: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=699804

5
ответ дан 17 February 2014 в 15:04

Другой вариант - использовать тип mirror вместо raid1. Это должно работать по умолчанию, даже grub2 поддерживает это. Поэтому вместо

lvconvert --type raid1 -m1 /dev/ubuntu/root /dev/sdb5

сделайте следующее:

lvconvert --type mirror -m1 /dev/ubuntu/root /dev/sdb5

(В конце вам не нужно указывать sdb5, LVM выберет подходящий PV, чтобы поставить зеркало на .)

Тип зеркала имеет большой недостаток, он читает только с первого устройства, поэтому вы не получите ожидаемого повышения скорости чтения от RAID1.

0
ответ дан 17 February 2014 в 15:04

Другие вопросы по тегам:

Похожие вопросы: