Archive for grub

Установка Debian Squeeze на Dell 1950

// Декабрь 18th, 2014 // No Comments » // Debian, Dell, grub, md, RAID

В процессе установки вылезло сразу две проблемы:
1) это сетевой адаптер «Ethernet controller: Broadcom Corporation NetXtreme II BCM5708 Gigabit Ethernet», по логике маинтейнеров драйвера не попадают в дистрибутив из-за закрытого кода, и действительно зачем серверу нужна сеть
2) сочетание встроенного рейд-контроллера и использование софтрейда md вызывает глюк — не устанавливается GRUB, т.е. после перезагрузки получаем большой кирпич.

Для начала скачиваем последний netinstall, но т.к. он уже в архиве — ищем его здесь >> и нарезаем на cd-r диск.

Первая проблема решается легко, идем на страничку http://wiki.debian.org/Firmware, находим ссылку на нужный файл, для Сквизи это будет firmware.tar.gz, скачиваем и распаковываем в корень(!) флешки. Тогда при инсталляции драйвер подгрузится автоматически.

Флешку подключаем к серверу, всталяем диск и начинаем установку. Нужно выбрать режим «Expert install». И выполняем все по пунктам, как при обычной инсталляции.

После выполнения пункта установки загрузчика GRUB нужно не завершить установку, а выбрать «Start shell».

Теперь решаем проблему установки GRUB. Суть проблемы: то ли скрипт кривой, то ли факт наличие флешки сбивает скрипт и на жесткий диск он так и не попадает, поэтому сделаем все ручками.
Должна быть примерно такая картина:

# df -h
Filesystem Size Used Available Use% Mounted on
tmpfs 15.7G 120.0K 15.7G 0% /dev
/dev/md0 938.0M 155.4M 734.9M 17% /target
/dev/md3 9.2G 148.9M 8.6G 2% /target/home
/dev/md2 3.7G 71.8M 3.4G 2% /target/tmp
/dev/md1 3.7G 286.1M 3.2G 8% /target/usr
/dev/md4 253.9G 356.4M 240.7G 0% /target/var
tmpfs 15.7G 120.0K 15.7G 0% /target/dev
/dev/md0 938.0M 155.4M 734.9M 17% /dev/.static/dev
/dev/sr0 168.0M 168.0M 0 100% /cdrom

если нет — тогда нужно руками смонтировать недостающее:

for d in dev proc sys; do mount --bind /$d /target/$d; done

! Обязательно должна быть строка:

tmpfs 15.7G 120.0K 15.7G 0% /target/dev

если нет, тогда еще раз смонтировать:

umount /target/dev/ && mount --bind /dev/ /target/dev/

Запускаем chroot в уже установленную систему и запускаем там шелл, мне приятнее работать в bash:

chroot /target /bin/bash

Теперь приглашение сменится на [root@debian] #, проверяем, видно ли диски:

# ls -a /dev | grep sd
sda
sda4
sdb
sdb1
...
sdb9
sdc
sdc1
...
sdc9

Осталось только установить GRUB, есть два варианта:

grub-install /dev/sdb
grub-install /dev/sdc
update-grub

или

dpkg-reconfigure grub-pc

и в графическом меню отметить нужные диски.

Проверить установлен ли GRUB можно командой (предварительно нужно установить утилиту file, обычным способом apt-get install file):

# file -s /dev/sdb
/dev/sdb: x86 boot sector; partition 1: ID=0xfd, active, starthead 32, startsector 2048, 1951744 sectors; partition 2: ID=0x5, starthead 190, startsector 1955838, 583981058 sectors, code offset 0x63

Дальше нужно вернутся в шелл установщика и вернутся в сам установщик и окончить процесс, для этого достаточно два раза выполнить exit.

Linux: Установка загрузчика GRUB на программный RAID

// Январь 23rd, 2013 // 1 Comment » // boot-loader, grub, linux, md, RAID, recovery

Имеем два диска собранные в зеркало, через dm:
/dev/sda1 + /dev/sdb1 => /dev/md0
/dev/sda5 + /dev/sdb5 => /dev/md1

Проверяем есть ли активный раздел:

# file -s /dev/sda
/dev/sda: x86 boot sector; partition 1: ID=0xfd, starthead 32, startsector 2048, 1169408 sectors; partition 2: ID=0x5, starthead 12, startsector 1173502, 76949506 sectors
# file -s /dev/sdb
/dev/sdb: x86 boot sector; partition 1: ID=0xfd, active, starthead 32, startsector 2048, 1169408 sectors; partition 2: ID=0x5, starthead 12, startsector 1173502, 76949506 sectors, code offset 0x63

как видно, на диске sda не указан активный раздел и не установлен загрузчик.
Что бы указать раздел активным, например первый:

# fdisk /dev/sda
...
Command (m for help): m
Command action
   a   toggle a bootable flag
...
   w   write table to disk and exit

Command (m for help): a
Partition number (1-9): 1

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

Установка GRUB2:
В Debian и прочих Ubuntu достаточно ввести:

# dpkg-reconfigure grub-pc

два раза нажать OK и выбрать звездочками оба диска и еще раз ОК
или:

# grub-install /dev/sda
# grub-install /dev/sdb

если еще выполнить:

# update-grub

изменится меню (конфигурационный файл), появится возможность выбора диска для загрузки ОС.

Старый GRUB:

# grub
grub> root (hd0,0)
grub> setup (hd0)
grub> root (hd1,0)
grub> setup (hd1)

Результат работы будет такой:

   grub> root (hd1,0)
   root (hd1,0)
    Filesystem type is ext2fs, partition type 0xfd
   grub> setup (hd1)
   setup (hd1)
    Checking if "/boot/grub/stage1" exists... no
    Checking if "/grub/stage1" exists... yes
    Checking if "/grub/stage2" exists... yes
    Checking if "/grub/e2fs_stage1_5" exists... yes
    Running "embed /grub/e2fs_stage1_5 (hd1)"...  15 sectors are embedded.
   succeeded
    Running "install /grub/stage1 (hd1) (hd1)1+15 p (hd1,0)/grub/stage2 /grub/grub.conf"... succeeded
   Done.
   grub> quit
   quit

Проверим результат:

# file -s /dev/sda
/dev/sda: x86 boot sector; partition 1: ID=0xfd, active, starthead 32, startsector 2048, 1169408 sectors; partition 2: ID=0x5, starthead 12, startsector 1173502, 76949506 sectors, code offset 0x63
# file -s /dev/sdb
/dev/sdb: x86 boot sector; partition 1: ID=0xfd, active, starthead 32, startsector 2048, 1169408 sectors; partition 2: ID=0x5, starthead 12, startsector 1173502, 76949506 sectors, code offset 0x63