Меню Рубрики

Установка grub на md0

Не могу установить Grub на программный ra > centos, grub, mdadm, raid, кривые руки

Доброго времени суток. Пытаюсь поставить grub на програмный Ra >

Гугл по ошибке подсказал что такое бывает: 1)Если раздел был отформатирован с 256-битными inode. Исправил, не помогло:

В общем идеи кончились, прошу помощи! заранее спасибо)

Как ни странно, проблема не в руках. Если не хочешь проблем, то в RHEL 6 лучше не толкать /boot на RAID. Либо использовать GRUB2. GRUB 0.9x в принципе не сможет понять том массива с суперблоком в начале (1.2).

Это зеркальный рейд. Для /boot делается отдельный раздел и grub ставится на каждый диск отдельно. Зачем буту зеркало?

Начинается загрузка, вываливает

Вы указали в параметрах, передаваемых ядру и в /etc/fstab новый корень ?

grub загружает initramfs? md-устройства собираются?

Там среди сообщений перед

И из boot-строки ядра нужно убрать параметры «rhgb» и «quiet», чтобы видеть текстовые сообщения от ядра, а не красивую картинку.

Как ни странно, проблема не в руках. Если не хочешь проблем, то в RHEL 6 лучше не толкать /boot на RAID.

Отлично работает. На домашней тачке так юзаю, правда не rhel, a centos. Даже больше скажу — поверх RAID накатил LVM. Единственный нюанс — в LVM не должен быть /boot

при загрузке приглашение GRUB появляется?

Да паника сразу, ничего не вижу

Я, например, когда дома ставился, у меня тоже не взлетело — неправильно автоматом был сконфигурен grub. я редактировал в загрузчике диск (hdX,Y), на котором находилось ядро. Надо было вроде вписать (hd2,1), только у меня разметка чуть не такая как у тебя. В общем я с цифрами поигрался 10 минут и заработало. Исправил конфиг grub и все. initramfs не трогал. в ядро ничего не добавлял — свежая установка.

Попробуйте добавить к строке параметров ядра rootwait, вроде как это должно отложить панику и позволить прокручивать экран с сообщениями ядра.

Делал по руководству из centos wiki? Тогда попробуй удалить из массива один диск — в 6.3 после этого ломалась загрузка. И официально такая конфигурация не поддерживается.

Попробуй grub2. Я теперь не имею проблем с grubом2 на любом диске зеркала. На Debiane подсказал бы.

Делал по руководству из centos wiki?

Нет, у меня своя конфигурация. Литературой пользуюсь на access.redhat.com

Тогда попробуй удалить из массива один диск — в 6.3 после этого ломалась загрузка.

Пробовал, комп загружался (если конечно разрешена загрузка с деградировавшего raid). Такую вещь и на серваках делал. Просто загрузчик на оба винта ставишь. Принципиально загрузиться можно и с другого носителя если случилась беда, а загрузчик был установлен лишь на один диск.

И официально такая конфигурация не поддерживается.

Если все еще актуально, то при создании ra >

mdadm —create —metadata=0.90 —level=1 —ra >

так же в grube необходимо указать следующее

title CentOS (2.6.32-358.23.2.el6.x86_64) hd1 root (hd0,0) kernel /boot/vmlinuz-2.6.32-358.23.2.el6.x86_64 ro root=/dev/md0 nomodeset rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_NO_LVM rd_NO_DM rhgb quiet initrd /boot/initramfs-2.6.32-358.23.2.el6.x86_64.img

Попробуй размер бута меньше 500 метров — хоть 499

источник

Установка загрузчика Grub

Для инициализации ядра и запуска операционной системы Linux используется загрузчик. Это программа, которая запускается после завершения проверки оборудования BIOS, подготавливает оборудование к работе, задает нужные параметры ядра и позволяет выбрать операционную систему. Основная задача загрузчика дать пользователю выбрать операционную систему для загрузки.

Раньше для загрузки Linux использовалось несколько загрузчиков, это isolinux, lilo, grub. Но сейчас чаще всего применяется Grub или полное его название GRand Unified Bootloader. В этой статье будет рассмотрена установка загрузчика Grub через терминал. Также мы поговорим как установить grub на компьютер с UEFI, тоже вручную.

Немного теории

Как я уже сказал, основная задача загрузчика — предоставить возможность выбора операционной системы перед загрузкой. Не думайте, что в Windows загрузчик не используется, там он тоже есть и работает, подобно тому, как работает Grub.

Загрузчик может быть установлен в различные таблицы разделов диска. Сейчас самые используемые это GPT и MBR. Установка загрузчика Grub немного отличается для каждой из этих таблиц, учитывая их особенности. Подробнее об отличиях MBR vs GPT можно почитать в отдельной статье. Тут же я скажу, что GPT — более новая и функциональная таблица разделов, MBR — уже устаревшая, но до сих пор часто используемая.

В MBR вариантов немного, Grub записывается в область MBR на диске. Размер сектора MBR занимает первых 512 байт и этого вполне достаточно для того, чтобы установить туда загрузчик.

Читайте также:  Установка атрибутов файла командная строка

GPT предоставляет более широкие возможности. Во-первых, для совместимости в GPT эмулируется сектор MBR, и мы можем установить GRUB туда, но такой вариант очень ненадежный и не рекомендуемый. Во-вторых, теперь появилась возможность устанавливать Grub на раздел диска. Мы просто создаем раздел на диске размером 1 Мб и записываем туда то, что раньше записывалось в MBR, это делает установку загрузчика более надежной и защищенной от сбоев.

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

Для установки Grub будет использоваться команда grub-install, во всех случаях. Давайте кратко рассмотрим ее синтаксис и параметры. Синтаксис:

$ grub-install опции диск

Параметров здесь достаточно много, но нам будут нужны только некоторые:

  • —compress — сжать файлы загрузчика;
  • —install-modules=модули — установить только эти модули;
  • —modules — записать эти модули в MBR;
  • —boot-directory — использовать другой каталог для файлов Grub;
  • —bootloader-id — имя загрузчика в меню EFI;
  • —core-compress — сжимать образ, загружаемый в MBR;
  • —efi-directory — использовать системный раздел EFI;
  • —force — установить несмотря на ошибки;
  • —recheck — удалить существующую карту устройств, помогает если возникают ошибки;
  • —removable — установка grub на флешку (только EFI);

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

Установка загрузчика Grub в MBR для BIOS

Начнем с самого просто и привычного. Данная инструкция как установить загрузчик Grub подойдет для любого дистрибутива, поскольку команды везде почти одинаковые. Здесь не нужно устанавливать никаких дополнительных пакетов или создавать разделов. Установка Grub на жесткий диск выполняется командой:

Утилиты grub в разных дистрибутивах могут включать двойку, а могут и не включать. Здесь /dev/sda — ваш жесткий диск. Теперь генерируем конфигурационный файл, чтобы автоматически определились установленные операционные системы:

sudo grub-mkconfig -o /boot/grub/grub.cfg

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

Готово. По поводу двойки здесь такое же замечание. Если вы хотите установить Grub на флешку в MBR, то тут тоже нет проблем просто примонтируйте флешку и выполните такую команду:

sudo grub-install —root-directory=/mnt/USB/ /dev/sdb

Здесь /mnt/USB — папка, куда была смотирована ваша флешка, а /seb/sdb — сама флешка. Только здесь есть одна проблема, конфигурационный файл придется делать вручную.

Установка загрузчика Grub в GPT для BIOS

Во-первых, мы можем ничего не менять и установить Grub так, как описано в предыдущем способе. Но тогда он будет установлен в область совместимости с MBR, а это не надежно. Поэтому рекомендуется установить grub так, как описано ниже, на отдельный раздел.

Нужный нам раздел можно создать в установщике любого дистрибутива, если вы выполняете установку в графическом интерфейсе или с помощью gparted. Нам нужен раздел размером 1 Мегабайт без файловой системы и с меткой grub_bios:

Дальше примените изменения, нажмите на разделе правой кнопкой, выберите manage flags и добавьте флаг grub_bios:

Готово. Если у вас нет под рукой доступа к графическому интерфейсу, вы можете создать такой раздел через терминал. Утилита fdisk не поддерживает работу с gpt, поэтому будем использовать gfdisk. Сначала запустите утилиту:

Чтобы создать новый раздел нажмите n и выберите номер раздела:

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

Выбираем конечный сектор раздела. По умолчанию будет использоваться максимальный. Нам нужен раздел размером 1 Мб. Размер одного сектора GPT — 512 байт, поэтому нам нужен раздел размеров 2048 секторов. Таким образом, конечный сектор будет 24000 с чем-то.

HEX Code — это тот код, который скажет системе, что этот раздел нужно использовать для Grub, нужно установить ef02:

Готово, осталось нажать w для записи изменений на диск:

Установка grub на жесткий диск дальше выполняется точно так же, как и в предыдущем способе:

Осталось создать конфигурационный файл grub:

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

Теперь переходим к самому сложному, как установить grub efi.

Установка GRUB UEFI GPT

Установка Grub UEFI чем-то похожа на установку в GPT, тут у нас тоже будет отдельный раздел, только на этот раз не для загрузчика, а раздел EFI. Если у вас уже установлена Windows, то, скорее всего, он уже существует. Этот раздел обычно занимает 100 Мб, имеет файловую систему fat32 и флаг ESP. Вот так он будет выглядеть:

Если же такого раздела нет, мы можем его создать с помощью gparted. Для этого создаем раздел с такими параметрами:

Читайте также:  Установка зажигания трактора т 130

Размер 100 Мегабайт, имя раздела ESP, файловая система fat32. Дальше примените изменения и установите для раздела флаг ESP:

То же самое вы можете сделать в Gdisk, только на этот раз нужно устанавливать HEX Code раздела ef00. После того как раздел был создан, подключаем его к нашей файловой системе:

sudo mkdir /boot/efi
$ sudo mount /dev/sda2 /boot/efi

Здесь /dev/sda2 — это наш EFI раздел. Далее необходимо установить нужные пакеты, если они еще не установлены. В Ubuntu это будет выглядеть вот так:

sudo apt install grub-efi efibootmgr

Дальше останется только установка grub efi. Система сама определит нужный раздел и скопирует туда все файлы:

Установка Grub efi на MBR все выглядит точно так же, только тут есть несколько ограничений. Раздел ESP нужно создавать только в начале диска. В режиме EFI тоже можно установить GRUB на флешку, и это не очень сложно. Для этого используется команда:

grub-install —boot-directory=/mnt/sdb2/boot —efi-directory=/mnt/sdb1 —target=x86_64-efi —removable

Рассмотрим опции: —boot-directory — задает папку с файлами загрузчика на флешке, —efi-directory — папка куда смонтирован раздел efi, —target — архитектура целевой системы и —removable говорит, что это установка на съемный носитель. С UEFI все. После перезагрузки и выбора в меню EFI пункта связанного с Grub, вы получите доступ к привычному меню grub и сможете выбрать нужный параметр.

Выводы

Теперь установка Grub не вызовет у вас проблем. Мы разобрали не только как установить Grub2 в MBR но и в EFI. Кроме того, всю приведенную здесь информацию вы можете использовать для восстановления Grub. Так вы будете лучше понимать что происходит во время восстановления. А настройку параметров и ручное создание конфигурационного файла мы рассмотрим в одной из следующих статей.

источник

Установка grub на md0

Вывод на экран должен выглядеть следующим образом:

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]

Для создания нашего RAID1 массива на уже работающей системе, мы должны подготовить жесткий диск /dev/sdb для RAID1, а затем скопировать содержимое нашего жесткого диска /dev/sda на него, и, наконец, добавить /dev/sda в RAID1 массив .

Во-первых, мы копируем таблицы разделов /dev/sda на /dev/sdb так, что оба диска имели точно такой же макет:

sfdisk -d /dev/sda | sfdisk —force /dev/sdb

Вывод на экран должен быть следующим:

# sfdisk -d /dev/sda | sfdisk —force /dev/sdb

Checking that no-one is using this disk right now .

Disk /dev/sdb: 652 cylinders, 255 heads, 63 sectors/track

sfdisk: ERROR: sector 0 does not have an msdos signature

/dev/sdb: unrecognized partition table type

Units = sectors of 512 bytes, counting from 0

Device Boot Start End #sectors Id System

/dev/sdb1 * 2048 999423 997376 83 Linux

/dev/sdb2 999424 1998847 999424 82 Linux swap / Solaris

/dev/sdb3 1998848 10483711 8484864 83 Linux

Warning: partition 1 does not end at a cylinder boundary

Successfully wrote the new partition table

Re-reading the partition table .

If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)

to zero the first 512 bytes: dd if=/dev/zero of=/dev/foo7 bs=512 count=1

теперь должна показать, что жесткие диски имеют одинаковые макеты:

Disk /dev/sda: 5368 MB, 5368709120 bytes

255 heads, 63 sectors/track, 652 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x000246b7

Device Boot Start End Blocks Id System

/dev/sda1 * 1 63 498688 83 Linux

Partition 1 does not end on cylinder boundary.

/dev/sda2 63 125 499712 82 Linux swap / Solaris

Partition 2 does not end on cylinder boundary.

/dev/sda3 125 653 4242432 83 Linux

Partition 3 does not end on cylinder boundary.

Disk /dev/sdb: 5368 MB, 5368709120 bytes

255 heads, 63 sectors/track, 652 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x00000000

Device Boot Start End Blocks Id System

/dev/sdb1 * 1 63 498688 83 Linux

Partition 1 does not end on cylinder boundary.

/dev/sdb2 63 125 499712 82 Linux swap / Solaris

Partition 2 does not end on cylinder boundary.

/dev/sdb3 125 653 4242432 83 Linux

Partition 3 does not end on cylinder boundary.

Далее мы должны изменить тип раздела из наших трех дисков /dev/sdb в автоопределение Linux RAID

WARNING: DOS-compatible mode is deprecated. It’s strongly recommended to

switch off the mode (command ‘c’) and change display units to

Читайте также:  Установка гнб колодезного типа

mdadm —create /dev/md1 —level=1 —ra >

mdadm —create /dev/md2 —level=1 —ra >

теперь должна показать, что у вас есть три неправильных массивов RAID ([_U] или [U_] Это означает, что массивы не полные, в то время как [UU] означает, что массив в нормальном состоянии):

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]

Далее мы создадим файловые системы на наших массивах RAID (ext4 на /dev/md0 и /dev/md2 и swap на / dev/md1):

Далее мы должны внести изменения в файл /etc/mdadm/mdadm.conf в данный момент времени которые не содержат никакой информации о наших новых массивах RAID.

cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf_orig

mdadm —examine —scan >> /etc/mdadm/mdadm.conf

Вот что должно получится при выводе файла:

В нижней части файла, вы должны увидеть подробную информацию о наших трех массивах RAID:

# automatically tag new arrays as belonging to the local system

# instruct the monitoring daemon where to send mail alerts

# definitions of existing MD arrays

# This file was auto-generated on Mon, 21 Jun 2010 13:21:00 +0200

5. Настройка системы для RAID1

Теперь примонтируем /dev/md0 и /dev/md2 (нам не нужно монтировать swap массив /dev/md1):

Теперь мы должны увидеть их как массивы на выходе:

/dev/sda3 on / type ext4 (rw,errors=remount-ro)

proc on /proc type proc (rw,noexec,nosuid,nodev)

none on /sys type sysfs (rw,noexec,nosuid,nodev)

none on /sys/fs/fuse/connections type fusectl (rw)

none on /sys/kernel/debug type debugfs (rw)

none on /sys/kernel/security type securityfs (rw)

none on /dev type devtmpfs (rw,mode=0755)

none on /dev/pts type devpts (rw,noexec,nosu >

none on /dev/shm type tmpfs (rw,nosuid,nodev)

none on /var/run type tmpfs (rw,nosu >

none on /var/lock type tmpfs (rw,noexec,nosuid,nodev)

none on /lib/init/rw type tmpfs (rw,nosu >

none on /var/lib/ureadahead/debugfs type debugfs (rw,relatime)

/dev/sda1 on /boot type ext4 (rw)

/dev/md0 on /mnt/md0 type ext4 (rw)

/dev/md2 on /mnt/md2 type ext4 (rw)

Далее мы изменим /etc/fstab. Комментируем наши текущие /boot и swap раздел и добавляем новые строчки для них, где заменим UUID /dev/md0 для /boot раздела, /dev/md1 для swap раздела, а также /dev/md2 для раздела «/» таким образом, чтобы файл выглядел следующим образом:

# /etc/fstab: static file system information.

# Use ‘blkid -o value -s UUID’ to print the universally unique identifier

# for a device; this may be used with UU >

# devices that works even if disks are added and removed. See fstab(5).

proc /proc proc nodev,noexec,nosuid 0 0

# / was on /dev/sda3 during installation

/dev/md2 / ext4 errors=remount-ro 0 1

# /boot was on /dev/sda1 during installation

/dev/md0 /boot ext4 defaults 0 2

# swap was on /dev/sda2 during installation

/dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0

Далее заменим /dev/sda1 с /dev/md0 и /dev/sda3 с /dev/md2 в /etc/mtab:

/dev/md2 / ext4 rw,errors=remount-ro 0 0

proc /proc proc rw,noexec,nosuid,nodev 0 0

none /sys sysfs rw,noexec,nosuid,nodev 0 0

none /sys/fs/fuse/connections fusectl rw 0 0

none /sys/kernel/debug debugfs rw 0 0

none /sys/kernel/security securityfs rw 0 0

none /dev devtmpfs rw,mode=0755 0 0

none /dev/pts devpts rw,noexec,nosu >

none /dev/shm tmpfs rw,nosuid,nodev 0 0

none /var/lock tmpfs rw,noexec,nosuid,nodev 0 0

none /lib/init/rw tmpfs rw,nosu >

none /var/lib/ureadahead/debugfs debugfs rw,relatime 0 0

/dev/md0 /mnt/md0 ext4 rw 0 0

/dev/md2 /mnt/md2 ext4 rw 0 0

Теперь возьмемся за загрузчик GRUB2. Создадим файл /etc/grub.d/09_swraid1_setup следующим образом:

cp /etc/grub.d/40_custom /etc/grub.d/09_swraid1_setup

# This file provides an easy way to add custom menu entries. Simply type the

# menu entries you want to add after this comment. Be careful not to change

menuentry ‘Ubuntu, with Linux 2.6.32-21-server’ —class ubuntu —class gnu-linux —class gnu —class os <

linux /vmlinuz-2.6.32-21-server root=/dev/md2 ro quiet

Убедимся, что мы используем правильную версию ядра в menuentry строки (в Linux и Initrd строке). Выполним:

или посмотрим на текущее строку menuentry в # # # BEGIN /etc/grub.d/10_linux ### в разделе /boot/grub/grub.cfg. Также убедимся, что мы используем root=/dev/md2 в Linux.

Важную роль в нашей новой строке menuentry является линия множества root='(md0)’ – мы будем производить загрузку с нашего RAID1 массива /dev/md0 (который будет производится с /boot раздела) вместо /dev/sda или /dev/sdb, что важно, если один из наших жестких дисков выйдет из строя, то система будет по-прежнему работоспособна и сможет загрузится.

для записи наших новых изменений в ядро с /etc/grub.d/09_swraid1_setup в /boot/grub/grub.cfg

Далее корректируем наши RamDisk к новому состоянию:

Теперь мы копируем содержимое /dev/sda1 и /dev/sda3 на /dev/md0 и /dev/md2 (которые, смонтированны в /mnt/md0 и /mnt/md2):

6. Подготовка GRUB2 Часть 1

Мы должны убедится, что загрузчик GRUB2 установлен на обоих жестких дисках /dev/sda и /dev/sdb:

Теперь перезагрузим нашу систему и будем надеятся что она нормально загрузится с наших RAID массивов:

источник

Добавить комментарий

Adblock
detector