Назад | Перейти на главную страницу

MKINITRD LVM Slackware

Пытаюсь установить Slackware 13.1 на Dell 2950. У меня есть RAID-карта Perc5, и мое ядро ​​видит ее как / dev / sda для необработанного устройства.

Я создал 3 раздела:

/dev/sda1 -- /boot partition type=82
/dev/sda2 -- swap partition  type=83
/dev/sda3 -- my LVM partition type=82

Вот шаги, которые я использовал:

1.  pvcreate /dev/sda3 (is this necessary since the partition already exists from fdisk?)
2.  vgcreate vg00 /dev/sda3
3.  lvcreate -L 20G -n root vg00
4.  vgscan --mknodes
5.  vgchange -ay

Затем я устанавливаю Slackware 13.1 как обычно, выбирая / dev / vg00 / root для root (/) и / dev / sda1 для (/ boot) и / dev / sda2 для свопа ... Все идет хорошо.

После установки я запускаю эти команды, чтобы создать образ initrd.

chroot /mnt

mkinitrd -c -k 2.6.33.4 \
-m jfs:uhci_hcd:ehci_hcd:usbhid:hid:megaraid_sas:bnx2 \
-f jfs \
-r /dev/vg00/root \ (also tried /dev/mapper/vg00-root)
-L

Эта команда выполняется без ошибок, и я получаю initrd.gz и initrd-tree в / boot.

Соответствующие части моего /etc/lilo.conf выглядят следующим образом:

boot=/dev/sda

image = /boot/vmlinuz-generic-2.6.33.4
  initrd = /boot/vg00/root
  label = linux
  read-only

Когда я перезагружаю компьютер, я получаю диспетчер загрузки LILO. Ядро загружается, но кажется, что LVM никогда не запускаются. Я получаю сообщение об ошибке, что нет раздела / root и что устройство / dev / vg00 / root не найдено.

Я использую Linux много лет, но никогда не имел дела с mkinitrd, поэтому я немного не знаком с процессом и тем, как извлекаются драйверы. Я вижу двоичные файлы lvm в каталоге / boot / initrd-tree / sbin. (dmsetup, lvm, vgchange, vgscan; последние два символьны связаны с lvm)

Я также попытался разархивировать и смонтировать initrd, чтобы посмотреть, но не смог понять этого, используя mount -o loop -t ramfs / dev / boot / initrd / tmp

любая помощь или предложения приветствуются.

кстати .. чтобы посмотреть на файл initrd.img, созданный mkinitrd, вот шаги.

mkdir myrd
cd myrd
cp /mnt/boot/initrd.gz .
gunzip initrd.gz
cpio -i -d < initrd

Эти шаги я нашел на сайте IBM. http://www.ibm.com/developerworks/linux/library/l-initrd.html

РЕШЕНО ...

Проблема была связана с PROC ... Когда я запускал mkinitrd, у меня не было действительного представления моих разделов / proc / после выполнения chroot mnt. Вот шаги, которые я использовал, чтобы наконец заставить его работать ...

Загрузитесь со Slackware DVD (с использованием 64-битного ядра 13.1)

1.  vgscan --mknodes
2.  vgchange -ay

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

Две приведенные выше команды делают мои логические тома активными и отображают их в / proc / partitions.

3.  mount /dev/vg00/root /mnt
4.  mount /dev/sda1 /boot
5.  mount -t proc proc /mnt/proc (this was the magic step)
6.  chroot mnt (note, don't chroot /mnt just mnt)

повторно запустил тот же сценарий mkinitrd, как показано в моем исходном сообщении. На этот раз у меня возникли проблемы с переименованием / dev / vg00 / root в / dev / dm-0.

Ran lilo, та же конфигурация, что и в исходном посте

Перезагрузка и альт заработало.

Одно предостережение заключается в том, что моему сетевому драйверу (bnx2) требуется внешняя прошивка, которую я не включил в свой initrd, и это вызвало длительный процесс загрузки, поскольку драйвер bnx искал эту прошивку ...

Надеюсь, это поможет кому-то другому.

Значения разделов неверны:

/dev/sda1 -- /boot partition type=82<BR>
/dev/sda2 -- swap partition  type=83<BR>
/dev/sda3 -- my LVM partition type=82<BR>

Должно быть:

/dev/sda1 -- /boot partition type=83<BR>
/dev/sda2 -- swap partition  type=82<BR>
/dev/sda3 -- my LVM partition type=8e<BR>


82 = Linux swap<BR>
83 = Linux Partition<BR>
8e = LVM partition<BR>

http://www.win.tue.nl/~aeb/partitions/partition_types-1.html