Автор Тема: Ошибка "Данный LDM не содержит встраиваемого раздела"  (Прочитано 3022 раз)

Оффлайн grumbler

  • alt linux team
  • ***
  • Сообщений: 126
Устанавливаю Altlinux 7.0.1 на NAS. У устройства есть внутрення флешка (USB-HDD) и два жёстких диска. На флешке я разместил /boot, на дисках создал массивы RAID-1 (md)
В итоге размещение томов следующее:
sda1 (usb-hdd) /boot
md0 (/dev/sdc1, /dev/sdd1) /
md1 (/dev/sdc2, /dev/sdd2) /var

Во время установки загрузчика alterator предлагает установить его только на md0 или не устанавливать вообще. При выборе md0 после "раздумий" появляется ошибка:
Цитировать
Невозможно установить загрузчик на /dev/sdd : Установка завершена. Ошибок нет.
/usr/sbin/grub-bios-setup: предупреждение: Данный LDM не содержит встраиваемого раздела, встраивание невозможно.
/usr/sbin/grub-bios-setup: ошибка: Встраивание невозможно, но оно необходимо для междисковой установки.

Во-первых, почему это графический установщик не позволяет установить загрузчик на встроенный flash (USB-HDD)? В NAS это загрузка по умолчанию (после сброса в заводские установки).
Во-вторых, раз уж такая байда, почему grub2 не желает устанавливаться на mdraid level 1 ? С первым grub такой проблемы не было. Как лечить?

Оффлайн grumbler

  • alt linux team
  • ***
  • Сообщений: 126
Поскольку ответ я нигде не нашёл, пришлось экспериментировать.
1. Ещё во время установки я переключился на вторую консоль и выполнил команду
grub-install /dev/sda2. Программа сообщида, что всё OK. Теперь grub2 установлен на внутреннюю флешку.
3. Переключился на 7-ю консоль (графическую), выбрал "не устанавливать загрузчик", далее провёл остальную часть установки.
4. По окончании установки перезагружаю - получаю командную строку grub2. Поскольку его команды я не знаю, потыкался немного (help очень длинный и проскакивает так, что не поймать) и загрузил Live Altlinux.

Посмотрел, что к чему и обнаружил, что grub.cfg отсутствует. Пришлось создавать его самому.
В Live-системе запустил "Терминал Mate", запустил su, создал каталог /mnt/root и смонтировал все нужные тома в него (соответственно иерархии установленной системы), выставил переменную окружения PATH (дополнил каталогами /sbin и /usr/sbin), смонтировал devfs в /mnt/root/dev, выполнил chroot в /mnt/root, выполнил grub-mkconfig, проанализировал его вывод - убедился, что всё в порядке, затем сохранил его вывод в /boot/grub/grub.cfg.
Штатно перезагрузил - grub2 нашёл конфиг, я выбрал загрузку систему и altlinux загрузился.

Хорррррроший бубен!

Вот команды в терминале Live-системы:
su -
mkdir /mnt/root
mount /dev/md127 /mnt/root
mount /dev/md125 /mnt/root/var
mount /dev/sdc1 /mnt/root/boot
mount -t udevfs devtmpfs /mnt/root/dev
PATH=$PATH:/sbin:/usr/sbin
export PATH
chroot /mnt/root
grub-mkconfig -o /boot/grub/grub.cfg

grub-mkconfig "поругался" на отсутствие /sys, но на результат это не влияет.

Это было обходное решение. Вопрос в шапке не решён.
« Последнее редактирование: 05.01.2014 14:12:45 от grumbler »

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 360
  • Учиться .... Телепатами не рождаются, ими ....
Одно мелкоё замечание. Используйте su -, а не просто su.

Оффлайн gvy

  • alt linux team
  • ***
  • Сообщений: 1 010
    • Альт на Эльбрусе
Это ошмётки Windows LDM гадят:

It is actually the backup copy at the end of the disk that appears to be the problem. Zeroing out the last sector of the disk should fix it. To do this, you want to follow steps similar to this:

fdisk -lu /dev/sda

Disk /dev/sda: 250.1 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders, total 488397168 sectors

Note the sector count. Subtract one and that leaves 488397167, which you can then use with dd to dump that sector:

dd if=/dev/sda bs=512 count=1 skip=488397167 | hd

At this point you should see somewhere on the screen the string "PRIVHEAD". If you do, that is the LDM label sector. You can then zero it out with:

dd if=/dev/zero of=/dev/sda bs=512 seek=488397167 count=1

It is vital that the command be executed correctly or you can trash your whole disk, so triple check your typing and math before hitting enter.

Вообще-то это баг grub2.
--
Michael Shigorin | ALT Linux Team | ANNA-News | Сделано у нас | altlinux.org/эльбрус

Оффлайн grumbler

  • alt linux team
  • ***
  • Сообщений: 126
Дополнение.

Получил аналогичную ситуацию, хотя сообщение об ошибке и не содержало аббревиатуру "LDM".
Очистил у обоих винчестеров первые и последние 2 килобайта (4 логических сектора), после чего загрузчик установился без каких либо проблем.
Итак, инструкция для случая непустых дисков, на которых не нужно ничего сохранять.
При установке в любой момент до переразбивки дисков.
1. Нажмите Ctrl-Alt-F2. Это сочетание клавиш переключает консоль на вторую виртуальную.
2. Введите команду:
dmesg | grep "512-byte"
Найдите размер каждого диска в 512-байтных блоках, вычтите 4, запишите получившееся число для каждого диска.
3. Для каждого диска выполните две команды:
dd if=/dev/zero of=/dev/диск seek=число
dd if=/dev/zero of=/dev/диск count=4

Пример (лишний вывод команд убран)
# dmesg | grep "512-byte"
[    0.685162] sd 0:0:0:0: [sda] 488395055 512-byte logical blocks: (250 GB/232 GiB)
[    0.685192] sd 4:0:0:0: [sdb] 488397168 512-byte logical blocks: (250 GB/232 GiB)
# dd if=/dev/zero of=/dev/sda seek=488395051
# dd if=/dev/zero of=/dev/sda count=4
# dd if=/dev/zero of=/dev/sda seek=488397164
# dd if=/dev/zero of=/dev/sda count=4
« Последнее редактирование: 22.03.2015 08:26:00 от grumbler »