Я пытаюсь сделать массив рейдов на существующей установке linux ubuntu.
Я следую этому руководству ... http://howtoforge.org/software-raid1-grub-boot-fedora-8
Пройдя по списку миллион раз, я наконец понимаю, что происходит. Вы делаете рейд-устройство на своем новом пустом диске, копируете на него старый / диск, настраиваете grub menu.lst, fstab, mtab initrd и grub MBR так, чтобы все они указывали на рейд-устройство (которое я определил и работает ), а затем перезагружаетесь. После загрузки вы запускаете устройство raid (/ dev / md0). Затем вы просто подключаете исходный диск к массиву raid, он синхронизируется и готово.
Поэтому я настроил свой menu.lst так, чтобы в первую очередь загружать ядро и initrd с устройства raid и переключаться на исходный (все еще неповрежденный) старый диск. И при перезагрузке всегда происходит сбой. Я загружаю машину, запускаю новую запись grub и получаю сообщение «файл ошибки 15 не найден». В сети много всего об этом, но, похоже, ничего не помогает.
Единственное, что странно, это когда я перехожу к настройке MBR с помощью grub, вы говорите «root (hd0,0)», и я наконец понимаю, что это значит, и предполагается, что тип файловой системы - ext2fs, тип раздела 0xfd или что-то вроде этого. который. Мой ничего не говорит. Но когда я запускаю setup (hd0) и setup (hd2), он говорит, что делает правильные вещи с правильным диском. Так что я предполагаю, что это работает. но он не может загрузить initrd / ядро с устройства md0.
Единственное, о чем я думаю, это то, как grub узнает, что такое рейд-устройство. Ядро не загружено, программные модули raid не загружены, как может глупая маленькая личинка вообще иметь представление, откуда загружать initrd? Итак, я думаю, хорошо, что где-то есть сопоставление от / dev / md0 до / dev / sdc1 (новый raid-диск), но я не вижу, где это может происходить. И для удовольствия (я делал это ТАК много раз в различных комбинациях) я попытался установить grub menu.lst, чтобы попытаться загрузить initrd и ядро из root = / dev / sdc1 (мой новый диск), и он все еще говорит, что файл не найден . Итак, либо настройка grub mbr не работает, либо мне не хватает чего-то действительно простого.
Любые идеи?
Here's some more info... root@io:~# cat /proc/mdstat Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid1 sdc1[1] 18771840 blocks [2/1] [_U] root@io:~# fdisk -l Disk /dev/sda: 20.8 GB, 20847697920 bytes 255 heads, 63 sectors/track, 2534 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x9d949d94 Device Boot Start End Blocks Id System /dev/sda1 * 1 2337 18771921 83 Linux /dev/sda2 2338 2434 779152+ 5 Extended /dev/sda5 2338 2434 779121 82 Linux swap / Solaris Disk /dev/sdb: 320.0 GB, 320072933376 bytes 16 heads, 63 sectors/track, 620181 cylinders Units = cylinders of 1008 * 512 = 516096 bytes Disk identifier: 0x00000000 Device Boot Start End Blocks Id System /dev/sdb1 * 1 4064 2048224+ 83 Linux /dev/sdb2 4065 620181 310522968 83 Linux Disk /dev/sdc: 20.0 GB, 20020396032 bytes 255 heads, 63 sectors/track, 2434 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x00000080 Device Boot Start End Blocks Id System /dev/sdc1 * 1 2337 18771921 fd Linux raid autodetect /dev/sdc2 2338 2434 779152+ 5 Extended /dev/sdc5 2338 2434 779121 82 Linux swap / Solaris Disk /dev/md0: 19.2 GB, 19222364160 bytes 2 heads, 4 sectors/track, 4692960 cylinders Units = cylinders of 8 * 512 = 4096 bytes Disk identifier: 0x00000000 Disk /dev/md0 doesn't contain a valid partition table root@io:~# mdadm -E mdadm: No devices to examine root@io:~# cat /etc/mdadm.conf ARRAY /dev/md0 level=raid1 num-devices=2 UUID=5248ed76:cba39cc2:3082255a:649c0d18 root@io:~# root@io:~# cat /boot/grub/menu.lst default 0 # 8/14/09 added this fallback 1 ## timeout sec # Set a timeout, in SEC seconds, before automatically booting the default entry # (normally the first entry defined). timeout 3 ## hiddenmenu # Hides the menu by default (press ESC to see the menu) hiddenmenu # added this 8/14/09 for raid boot, note this will get blown away on next kernel update # if it's after the magic marker # this means we will have to manually update this when there's a kernel upgrade :-( # in grub land hd0 = /dev/sda and hd1 = /dev/sdb and hd2 = /dev/sdc I hope # we're putting sdc first for now title Ubuntu 8.04.3 LTS, kernel 2.6.24-24-generic (raid) root (hd2,0) #kernel /boot/vmlinuz-2.6.24-24-generic root=UUID=b11d6b08-fdfe-4b0d-adec-4e263455be23 ro kernel /boot/vmlinuz-2.6.24-24-generic root=/dev/md0 ro initrd /boot/initrd.img-2.6.24-24-generic quiet title Ubuntu 8.04.3 LTS, kernel 2.6.24-24-generic root (hd0,0) kernel /boot/vmlinuz-2.6.24-24-generic root=UUID=d8c402cc-7445-4878-b3aa-c9568b740b51 ro initrd /boot/initrd.img-2.6.24-24-generic quiet title Ubuntu 8.04.3 LTS, kernel 2.6.24-24-generic (recovery mode) root (hd0,0) kernel /boot/vmlinuz-2.6.24-24-generic root=UUID=d8c402cc-7445-4878-b3aa-c9568b740b51 ro single initrd /boot/initrd.img-2.6.24-24-generic root@io:~# blkid /dev/sda1: UUID="d8c402cc-7445-4878-b3aa-c9568b740b51" SEC_TYPE="ext2" TYPE="ext3" /dev/sda5: TYPE="swap" UUID="e0509276-30eb-4dcb-8e17-20f8244f5403" /dev/sdb1: LABEL="alt" UUID="ea1789eb-9d6f-47a9-a074-18121792b30a" SEC_TYPE="ext2" TYPE="ext3" /dev/sdb2: LABEL="sp" UUID="3b6d1173-f9fd-4a3e-8e5d-249fc682355b" SEC_TYPE="ext2" TYPE="ext3" /dev/sdc1: UUID="76ed4852-c29c-a3cb-5a25-8230180d9c64" TYPE="mdraid" /dev/md0: UUID="b11d6b08-fdfe-4b0d-adec-4e263455be23" SEC_TYPE="ext2" TYPE="ext3"
Для всех, кто в конечном итоге страдает от ошибки 15, которую я сделал, оказывается, что схема именования устройств в grub (hd0, hd1, hd2 ...) в конечном итоге различалась между тем, когда grub загружается и когда grub запускается после система запущена и работает. Я провел неделю с root (hd2,0), потому что grub сказал мне, что диск, который я хотел, называется. Но когда я перешел к оболочке grub при загрузке, я был удивлен, обнаружив, что то, что было hd2, когда машина работает, является hd1 при загрузке. Поэтому я изменил menu.lst на использование root (hd1,0), и он начал работать. Я надеюсь спасти кого-нибудь еще с этим.
Дело в том, что Grub вызывается перед остальная часть системы Linux есть (очевидно), поэтому она ничего не знает о вашем программном рейде. Он видит только голые жесткие диски.
Поэтому очень важно установить grub на оба диска вашего массива RAID1. BIOS выберет один для загрузки, и если на этом диске не установлен grub, он не загрузится. (Я обнаружил это на собственном горьком опыте, когда отказал один из моих дисков в конфигурации sw RAID1 - система отказалась загружаться, заявив, что у нее нет загрузочного раздела .. диск, на котором был установлен grub, вышел из строя, и я остался без загрузочный HDD. Установка Grub на него исправила)
Итак, откройте grub в командной строке (вы можете сделать это с запущенным Linux) и введите:
grub
чтобы получить подсказку grub.
root(hd0,0)
setup(hd0)
root(hd1,0)
setup(hd1)
который устанавливает grub для каждого из первых разделов на ваших дисках (*** если ваш загрузочный раздел находится в другом месте на диске, измените этот 0, чтобы отразить правильный раздел), затем программа установки устанавливает загрузочные файлы grub.
Это должно быть все, что вам нужно сделать. Если он работает некорректно, уверены ли вы, что у вас правильный загрузочный раздел, и что ваши диски расположены одинаково?
Жратва не знать о своем RAID-устройстве; он просто читает непосредственно с диска, что (в настройке RAID-1) все еще в порядке, потому что вся копия диска находится прямо там (не разбита на биты, как это было бы на RAID-5 или RAID-10 конфигурация).
Вы действительно не предоставили достаточно информации, чтобы определить, что происходит; что бы пригодилось: