Методы установки дистрибутивов Linux



 

Какие методы установки дистрибутивов linux вам известны? Должно быть что-то типа такого:

  • с CD или DVD
  • с USB накопителя
  • с жёсткого диска
  • по сети

Во время установки системы надо решить пару задач: загрузка программы установки и предоставления источника файлов для устанавливаемой системы.

В традиционном способе установки с CD или DVD уже всё готово и настроено: есть загружаемый диск, многие компы умеют загружаться с дисководов, установщик готов использовать пакеты или образ системы находящийся на диске. От пользователя требуется только выполнить несколько несложных шагов по предварительной настройке.

Установка с USB накопителя

LiveUSB из LiveCD

Должно быть уже достаточно много дистрибутивов, которые предоставляют какие-то готовые средства для создания загрузочных флешек. Например, в Ubuntu Desktop прямо на LiveCD есть графическая программа для создания LiveUSB.

В Fedora на LiveCD есть bash-скрипт, выполняющий всё тоже самое. С подробной инструкцией можете ознакомиться в официальной документации. Замечу только, что после выполнения скрипта, вручную ставил syslinux в качестве загрузчика. Все необходимые конфигурационные файлы уже есть не флешке и чтобы сделать это достаточно выполнить одну команду:

# syslinux /dev/sdb1

(вместо /dev/sdb1 укажите на файл, соответствующий вашей флешке)

В предыдущих примерах установочная программа расположена в SquashFS вместе с исходными для устанавливаемой системы файлами (см. рис. 1). Поэтому при успешной загрузке с LiveUSB очень вероятна и успешная установка.

Рис. 1. Установка из SquashFS

Рис. 2. Установка из пакетов

Установка из пакетов

Чуть сложнее организовать работу установщиков использующих пакеты. На рис. 2 видно, что установочная программа не привязана к пакетам, то есть они могут находиться на одном или разных носителях. Рассмотрим в качестве примеров установщики Debian-Installer и Fedora (Anaconda)

Debian-Installer используется в Ubuntu Alternate. При попытке создания загрузочной флешки из ubuntu-9.10-alternate-i386.iso, следуя гибкому методу из документации Debian по подготовке файлов для загрузки с карты памяти USB, столкнулся с тем, что вариант установщика Ubuntu Alternate наотрез отказывается искать пакеты где-либо кроме CD-диска. Не помогло даже монтирование iso-образа в /cdrom/.

На ubuntu.com спрятана небольшая инструкция Alternate Install (Ubuntu 9.10) в статье «USB Installation Media». Выяснилось, что надо использовать специальное ядро (vmlinuz) и образ ramdisk (initrd.gz) для архитектур i386 или amd64.

Напишем bash-скрипт и дадим ему имя, например, make-karmicinstall-flash.sh:

#!/bin/bash
# Секция настройки параметров скрипта.
# Для правильной работы скрипта вы должны изменить значения переменных.
# Путь до каталога, в который вы сохранили файлы vmlinuz и initrd.gz
HD_MEDIA=/path/to/dir/with/vmlinuz-and-initrd.gz/
# Точка монтирования флешки (этот каталог уже должен существовать)
USB_MNT=/mnt/flash
# Файл из каталога /dev/, указывающий на раздел
USB_DEV=/dev/sdb1
# Полный путь до iso-образа ubuntu-9.10-alternate
ISO_FILE=/path/to/ubuntu-9.10-alternate.iso
# Полный путь до точки монтирования iso-образа (этот каталог уже должен существовать)
ISO_MNT=/mnt/iso
# *****
mount $USB_DEV $USB_MNT -t vfat -o fmask=111,dmask=000
mount -o loop $ISO_FILE $ISO_MNT
cd $USB_MNT
cp -R $ISO_MNT/isolinux syslinux
cd syslinux
mv isolinux.cfg syslinux.cfg
cd ..
cp -R $ISO_MNT/install .
cp $HD_MEDIA/vmlinuz $HD_MEDIA/initrd.gz $USB_MNT/install
cp $ISO_FILE ubuntu.iso
umount $ISO_MNT
cd /
umount $USB_MNT
syslinux $USB_DEV

Выполним скрипт от root’а

# chmod a+x make-karmicinstall-flash.sh
# ./make-karmicinstall-flash.sh

Установка с жёсткого диска

Здесь должно быть много общего с флешками. Отличие заключается в том, что ваш жёсткий диск уже загрузочный. Вероятнее всего в MBR стоит GRUB. Подготавливать файлы можно также как и в предыдущем разделе, но вместо конфигурации и настройки syslinux, переносите параметры загрузки ядра и образа в конфиг GRUB’а.

Если установка не будет завершена нормально, то есть небольшой шанс остаться совсем без загрузчика. Подумайте заранее о других методах.

Подготовка Fedora LiveCD к установке с жёсткого диска

Следуйте той же инструкции, что и в случае с флешкой. После того как всё будет выполнено откройте файл syslinux/syslinux.cfg с раздела жёсткого диска, на который был скопирован Fedora LiveCD.

default vesamenu.c32
timeout 100
menu background splash.jpg
menu title Welcome to Fedora-12-i686-Live!
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color timeout_msg 0 #ffffffff #00000000
menu color timeout 0 #ffffffff #00000000
menu color cmdline 0 #ffffffff #00000000
menu hidden
menu hiddenrow 5
label linux0
menu label Boot
kernel vmlinuz0
append initrd=initrd0.img root=live:UUID=4B09-28C9 rootfstype=vfat ro liveimg quiet  rhgb rd_NO_LUKS rd_NO_MD noiswmd
menu default
label check0
menu label Verify and Boot
kernel vmlinuz0
append initrd=initrd0.img root=live:UUID=4B09-28C9 rootfstype=vfat ro liveimg quiet  rhgb check
label memtest
menu label Memory Test
kernel memtest
label local
menu label Boot from local drive
localboot 0xffff

На основании строчек 20 и 21 в menu.lst основного загрузчика прописываю такие строчки:

title Fedora 12 Live HDD (direct load)
root (hd1,5)
kernel /syslinux/vmlinuz0 root=live:UUID=4B09-28C9 rootfstype=vfat ro liveimg quiet rd_NO_LUKS rd_NO_MD noiswmd
initrd /syslinux/initrd0.img

Запуск установки по сети

Пакеты положить рядом с загружаемым по сети установщиком не получится. Программа установки должна уметь находить их где-либо ещё. Этот метод рассмотрим на примере Fedora.

Нам понадобится:

  1. Специальное ядро и загрузочный образ
  2. Установленные на сервере и настроенные tftp и dhcp
  3. Быстрый и стабильный доступ к какому-нибудь зеркалу дистрибутива

Ядро и загрузочный образ можно взять на любом зеркале, например с mirrors.se.eu.kernel.org:

Или ищите на другом зеркале папку «pxeboot» для вашей версии дистрибутива и архитектуры.

Например, в качестве сервера будет работать Ubuntu 9.10. Установим пакеты dhcp3-server и tftpd-hpa:

$ sudo apt-get install dhcp3-server tftpd-hpa

Пропишите корневой каталог tftp в конфигурационном файле /etc/init.d/tftpd-hpa:

#Defaults for tftpd-hpa
RUN_DAEMON="yes"
OPTIONS="-l -s /var/lib/tftpboot"

В этот каталог надо скопировать vmlinuz, initrd.img, загрузчик pxelinux (в моём случае это /usr/lib/syslinux/pxelinux.0 из пакета syslinux) и его конфиг в pxelinux.cfg/default с таким содержимым:

default linux
prompt 1
timeout 100
label linux
kernel vmlinuz
append initrd=initrd.img ramdisk_size=9216

В конфиг dhcp-сервера /etc/dhcp3/dhcpd.conf необходимо как-либо прописать строчки filename (используемый загрузчик, который ранее был скопирован в корневой каталог tftp) и next-server (указывает на адрес tftp-сервера, который может совпадать или не совпадать с dhcp-сервером). Пример для подсети:

subnet 192.168.56.0 netmask 255.255.255.0 {
filename "pxelinux.0";
next-server 192.168.56.1;
range 192.168.56.2 192.168.56.9;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.56.255;
option routers 192.168.56.1;
}

или для конкретного компа

host tftpclient {
filename "pxelinux.0";
next-server 192.168.56.1;
hardware ethernet 08:00:27:EB:DA:24;
fixed-address 192.168.56.2;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.56.255;
option routers 192.168.56.1;
}

Перезагружайте комп, на котором собираетесь устанавливать по сети систему. Установщик должен уметь находить пакеты в сети. Вы можете выбрать любое зеркало Fedora или создайте внутри сети своё.

Подробнее про установку по сети можете прочитать в статье «Создание мультиустановочного PXE сервера на основе Ubuntu Edgy Eft».

Запись опубликована автором в рубрике Без рубрики. Добавьте в закладки постоянную ссылку.

Методы установки дистрибутивов Linux: 2 комментария

  1. Небольшие дополнения:
    Все необходимые файлы можно скачать в одном архиве. Вообще, всё, что связано с сетевой установкой обычно лежит на сервере в каталоге /ubuntu/dists/имя_дистрибутива/main/installer-архитектура/rc/images/netboot/
    Для Ubuntu 10.04 названия файлов немного не совпадают с теми, что приведены в статье.
    Таким образом, pxelinux.cfg/default будет иметь вид:
    default linux
    prompt 1
    timeout 100
    label linux
    kernel linux
    append initrd=initrd.gz ramdisk_size=9216
    Также стоит отметить, что интернет не всегда доступен, а полного зеркала репозитория под рукой может не быть. В этом случае можно поднять свой репозиторий, используя используя каталоги dists и pool с диска с Ubuntu.

  2. Уведомление: Зеркало репозитория для сетевой установки Debian/Ubuntu | Linux в Новосибирске

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