Почему мой сервер не загружается после перемещения корневой файловой системы из LVM в raid?

Я пытаюсь переместить свой корневой раздел на физические тома, основанные на рейде, и Кажется, у меня что-то не получается.

Процедура, которую я использую, несколько сложна, но это потому, что мои у хостинг-провайдера очень ограниченные возможности установки, поэтому я не могу начнем с корневой файловой системы, созданной с использованием lvm на томах raid.

Чтобы проверить свой случай, я создал виртуальный экземпляр в VirtualBox с 4 дисками:

  • / dev / sda - 8GB
  • / dev / sdb - 8GB
  • ] / dev / sdc - 20GB
  • / dev / sdd - 20GB

И установил туда Linux (Debian 8.5). Изначально после установки макет:

  • / dev / sd [bcd] - не разбит на разделы, не используется
  • / dev / sda - имеет 1 раздел (/ dev / sda1), маленький (4 ГБ), используется как PV для LVM
  • на этом PV, я создал VG и LV, который теперь используется как /:

Вот как это выглядит:

=# mount /
mount: /dev/mapper/vg-root is already mounted or / busy
=# lvs
LV   VG   Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
root vg   -wi-ao---- 3.72g
=# vgs
VG   #PV #LV #SN Attr   VSize VFree
vg     1   1   0 wz--n- 3.72g    0
=# pvs
PV         VG   Fmt  Attr PSize PFree
/dev/sda1  vg   lvm2 a--  3.72g    0

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

Итак, сначала я создаю разделы. Поскольку мне нужно будет переразбить / dev / sda, это промежуточный макет, и он выглядит так:

=# for a in /dev/sd[abcd]; do fdisk -l $a; done | grep ^/
/dev/sda1  *     2048 7813119 7811072  3.7G 8e Linux LVM
/dev/sdb1        2048 16777215 16775168   8G fd Linux raid autodetect
/dev/sdc1           2048 16777215 16775168   8G fd Linux raid autodetect
/dev/sdc2       16777216 41943039 25165824  12G fd Linux raid autodetect
/dev/sdd1           2048 16777215 16775168   8G fd Linux raid autodetect
/dev/sdd2       16777216 41943039 25165824  12G fd Linux raid autodetect

Затем я делаю raid1 на разделах / dev / sd [cd] 2:

= # mdadm -C / dev / md0 -l 1 --raid-devices 2 / dev / sd [cd] 2

Это сделало меня / dev / md0, которое я буду использовать как временное место для / filesystem:

=# pvcreate /dev/md0
=# vgextend vg /dev/md0
=# pvmove /dev/sda1 /dev/md0
=# vgreduce vg /dev/sda1
=# pvremove /dev/sda1

На данный момент, / dev / sda бесплатен, поэтому я могу переразбить его в соответствии с точной спецификацией / dev / sdb. (этот шаг не имеет значения, но он нужен только для полноты картины).

Теперь, когда все это готово, я обновляю mdadm.conf:

=# mdadm --detail /dev/md0 --brief >> /etc/mdadm/mdadm.conf && update-initramfs -u

Эта добавленная строка:

ARRAY /dev/md0 metadata=1.2 name=debian:0 UUID=55692d54:b0beedae:9d85bc20:324d7f9f

После этого я перезагружаю систему , чтобы убедиться, что он работает нормально. И сразу же происходит сбой на GRUB с сообщением:

error: disk `lvmid/F9eO8I-PB9F-Dsli-ZOSY-rVA1-7a37-Faos46/1N3Ah7-wIjT-HFxc-MS9U-lAcw-tYZw-N7sRO8' not found.
Entering rescue mode...
grub rescue>

ls в командной строке показывает:

(hd0) (hd0,msdos1) (hd1) (hd1,msdos1) (hd2) (hd2,msdos2) (hs2,msdos1) (hd3) (hd3,msdos2) (hd3,msdos1)

Что я сделал не так? Что я забыл?

0
задан 1 July 2016 в 15:25
1 ответ

Вам необходимо обновить GRUB и установить загрузочное ядро.

  1. update-initramfs -u

Эта команда обновляет конфигурацию загрузочного ядра в соответствии с текущим состоянием вашей системы.

  1. mdadm --detail - -scan> /tmp/mdadm.conf[1210 impressionКопировать /tmp/mdadm.conf содержимое в /etc/mdadm/mdadm.conf , заменив все предыдущие записи. Таким образом, информация о конфигурации устройства MD будет верной.

    1. update-grub

    Это обновит конфигурацию GRUB, чтобы он знал о новых устройствах.

    1. dpkg-reconfigure grub-pc

    Это установит GRUB на жесткие диски на сервере.

1
ответ дан 4 December 2019 в 16:34

Теги

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