Меню Рубрики

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

admin_d

Заметки сисадмина

В серверных всё чаще попадаются сервера без CD/DVD-приводов. Время от времени на них нужно ставить операционную систему, и в этом может сильно помочь установка по сети. Вы просто включаете сервер и начинаете установку. Сетевая карта должна поддерживать технологию PXE. PXE – Pre-Boot Execution Environment – позволяет осуществлять загрузку по сети.

Но PXE недостаточно для полного счастья, технология, которая позволит полностью автоматизировать установку – kickstart (разработчиком которой является компания Red Hat). Суть её проста – мы заранее составляем файл, содержащий значения всех опций, которые могут понадобиться в ходе установки. Более того, мы можем выполнять свои скрипты до установки и после, тем самым задавая настройки будущей ОС.

Установка с помощью kickstart типового комплекта Linux занимает 5-7 минут.

Для Install-сервера нужно 3 службы и 1 пакет.

  • DHCP предоставляет клиентам сетевые реквизиты
  • TFTP – простой способ предоставить доступ к файлам по сети
  • Syslinux содержит загрузчик pxelinux.0 и некоторые другие файлы
  • NFS предоставляет доступ к файловой системе по сети

Процесс установки можно разбить на этапы:

  1. pxe – прошивка pxe начинает свою работу, когда мы в BIOS выставляем установку по сети, или когда на HDD не найдена MBR.
  2. DHCP фаза 1 – клиент получает сетевые реквизиты и адрес tftp-сервера, а также название файла-загрузчика (pxelinux.0). По умолчанию TFTP-сервер – это DHCP-сервер.
  3. TFTP – загрузчик pxelinux.0 обращается к TFTP-серверу и запрашивает у него initrd.img (Initial RAM disk, временная файловая система), ядро Linux.
  4. Kernel – передача управления ядру Linux.
  5. DHCP фаза 2 – ядро Linux делает запрос к DHCP-серверу, чтобы получить сетевые реквизиты и в дальнейшем адрес NFS-сервера.
  6. NFS – этап, когда монтируется NFS-раздел
  7. init – происходит запуск /sbin/init, и управление передаётся ему. Init – это главный процесс в системе, другие процессы являются дочерними процессами init.

В свободном изложении:

DHCP-сервер ожидает bootp-запросы в своей сети; после того, как он получает запрос, он смотрит MAC-адрес источника, и если о таком MAC-адресе у него имеется соответствующая запись, он начинает с ним работать. DHCP-сервер выдаёт клиенту сетевые реквизиты (IP-адрес, gateway, DNS-сервера. ) и по протоколу TFTP, с помощью TFTP-сервера, отправляет загрузочный образ pxelinux.0. Этого образа хватает, чтобы вывести меню выбора ОС.

Выбрав ОС, мы начинаем загрузку ядра и начинаем инсталляцию, в процессе выбрав источник установки — NFS-сервер. На NFS-сервер нужно выложить подготовленный контент будущей операционной системы и убедиться, что соответствующие каталоги экспортированы.

Устанавливаем DHCPD и добавляем его в автозагрузку:
# yum -y install dhcp
# chkconfig dhcpd on

Файл /etc/dhcpd.conf делаем такой:

ddns-update-style interim;
ignore client-updates;
subnet 192.168.146.0 netmask 255.255.255.0 <
option routers 192.168.146.1;
option subnet-mask 255.255.255.0;
option domain-name «domain.local»;
option domain-name-servers 192.168.146.1;
default-lease-time 21600;
max-lease-time 43200;
Allow bootp;
Allow booting;
host unixbox <
hardware ethernet 00:0c:29:77:9c:9c;
fixed-address 192.168.146.128;
filename «pxelinux.0»;
option host-name «unixbox»;
next-server 192.168.146.1;
>
>

Запускаем DHCPD или перезагружаем, если он был запущен:
# service dhcpd restart

Отключаем файрвол, включённый по умолчанию (иначе на целевом компьютере при загрузке будет ошибка "ICMP Destination unreachable (Host administratively prohibited)"):
# service iptables stop
# chkconfig iptables off

Устанавливаем пакет tftp-server из репозитория:
# yum -y install tftp-server

Теперь необходимо включить tftp в конфигурацию xinetd, для этого в файле /etc/xinetd.d/tftp меняем “disable = yes” на “disable = no” и включаем xinetd:
# service xinetd start

Проверяем, что порт tftp-сервера прослушивается (tftp работает на порту 69):
# netstat -nlp | grep :69
udp 0 0 0.0.0.0:69 0.0.0.0:* 3105/xinetd

Syslinux

Пакет содержит набор файлов для загрузки по сети. Нам нужны pxelinux.0, который как загрузочный образ мы будем отдавать через DHCP, и menu.c32, с помощью которого будет рисоваться более привлекательное меню пользователя. (Для CentOS 4 обновлённый syslinux с зависимостями надо скачать с rpmfind.net.)

# cp $(rpm -ql syslinux | grep menu.c32) /tftpboot/
# cp $(rpm -ql syslinux | grep pxelinux.0) /tftpboot/

По умолчанию в системе, скорее всего, есть NFS, если нет, то поставьте с помощью yum.
# chkconfig nfs on

В файл /etc/exports добавляем запись:
echo “/var/install-server/ *(ro,no_root_squash)” >> /etc/exports

Запускаем nfs-сервер:
# service nfs start

Проверяем, что каталог экспортирован:
# exportfs
/var/install-server

Создаём структуру tftp-сервера, добавляем контент на сервер:
# mkdir -p /tftpboot/# mkdir -p /var/install-server/centos5_x86

Монтируем наш DVD с CentOS 5 и закачиваем содержимое в /var/install-server/centos5_x86:
# mount /dev/cdrom /mnt/
# cp -r /mnt/* /var/install-server/centos5_x86/
# cp /var/install-server/centos5_x86/images/p xeboot/* /tftpboot/centos5_x86/

В каталоге /tftpboot/pxelinux.cfg создаём файл default и заполняем его как показано ниже:
default menu.c32
menu title Linux Install Server. Please choose OS to install.
prompt 0
timeout 100
label CentOS 5 x86 Custom install
kernel /centos5_x86/vmlinuz
append initrd=/centos52_x86/initrd.img
label Quit
localboot 0

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

Устанавливаем ОС по сети

После всех манипуляций, описанных выше, можем приступить к установке ОС. Стартуем нашу машину с MAC-адресом 00:0c:29:77:9c:9c, включив в BIOS загрузку по сети. Когда начнётся установка, всё делаем стандартным образом, кроме того, что в списке, откуда ставить ОС, нужно выбрать NFS, и далее, когда попросят, указать:
NFS server name : 192.168.146.1
CentOS directory: /var/install-server/centos5_x86

Дальше устанавливаем ОС и пользуемся на здоровье.

Автоматизация установки с помощью Kickstart

Для автоматизации нужно создать файл, содержащий всю нужную информацию, которая может потребоваться в процессе установки. Такой файл создаётся программой system-config-kickstart (GUI tool) в любой CentOS с X Window:
# yum -y install system-config-kickstart
# system-config-kickstart

После того, как мы создали файл с помощью system-config-kickstart, его нужно перенести на Install-сервер и сделать доступным по одному из протоколов HTTP, NFS или FTP. Поскольку в работе Install-сервера активно используется NFS, то и будем использовать её.

В моём случае kickstart-файл лежит в /var/install-server/centos5_x86/centos5_ x86_ks.cfg.

В файл /tftpboot/pxelinux.cfg/default нужно всего лишь добавить директиву ks с указанием местоположения kickstart-файла. Пример с kickstart-файлом:
default menu.c32
menu title Linux Install Server. Please choose OS to install.
prompt 0
timeout 100
label CentOS 5 x86 Custom install
kernel /centos5_x86/vmlinuz
append initrd=/centos5_x86/initrd.img
label CentOS 5 x86 Kickstart Install
kernel /centos52_x86/vmlinuz
append initrd=/centos5_x86/initrd.img ks=nfs:192.168.146.1:/var/install-server/c entos5_x86/centos5_x86_ks.cfg
label Quit
localboot 0

Теперь, выбрав «CentOS 5 x86 Kickstart Install» в меню выбора ОС, нам останется только подождать сервера с установленной на нём ОС.

Ниже пример моего Kickstart-файла. Мне захотелось, чтобы в установленной ОС в настройках sshd была опция «PermitRootLogin yes». Kickstart-файл позволяет не только задавать параметры установки ОС, но и выполнять скрипты, до инсталляции (%pre) и после (%post). Таким образом можно написать массу скриптов по тюнингу и за 5-10 минут инсталляции получить полностью готовую ОС.

#platform=x86, AMD64, or Intel EM64T
# System authorization information
auth --useshadow --enablemd5
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Use text mode install
text
# Firewall configuration
firewall --disabled
# Run the Setup Agent on first boot
firstboot --disable
# System keyboard
keyboard us
# System language
lang en_US
# Installation logging level
logging --level=info
# Use NFS installation media
nfs --server=192.168.146.1 --dir=/var/install-server/centos5_x86
# Network information
network --bootproto=dhcp --device=eth0 --onboot=on
#Root password
rootpw --iscrypted $1$Bz09jb2I$hfzh2vApqMjG0sEPsAwNr/
# SELinux configuration
selinux --disabled
# Do not configure the X Window System
skipx
# System timezone
timezone Europe/Moscow
# Install OS instead of upgrade
install
# Disk partitioning information
part swap --bytes-per-inode=4096 --fstype=”swap” --size=512
part / --bytes-per-inode=4096 --fstype=”ext3” --grow --size=1

%post --interp /bin/bash
PATH=/somework
/bin/mkdir $PATH
/bin/sed -e ‘s/#PermitRootLogin yes/PermitRootLogin yes/g’ /etc/ssh/sshd_config > $PATH/sshd_config_edited
/bin/cp $PATH/sshd_config_edited /etc/ssh/sshd_config
/bin/rm -rf $PATH

источник

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

Содержание

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

Настройка сервера для установки

Прежде всего вам потребуется компьютер с Ubuntu или с другим дистрибутивом Linux (данная инструкция написана для Ubuntu), с которого вы будете устанавливать систему (сервер загрузки по сети), и ISO образ Alternate диска с необходимой версией Ubuntu.

Настройка сервера сетевой загрузки

Для установки всего необходимого лучше использовать aptitude, которая не входит в стандартную поставку Ubuntu начиная с версии 10.10. Поэтому сначала ставим aptitude через любую программу установки пакетов или командой

Далее ставим всё необходимое:

Ключ -R нужен для того, чтобы atftpd поставился без inetd сервера, который вам совершенно не нужен.

Теперь пора настроить все компоненты.

TFTP сервер

Откройте файл /etc/default/atftpd в любом текстовом редакторе с правами суперпользователя, например, так:

Измените первую строчку с

Кроме этого запомните каталог, который находится в конце строчки OPTIONS . Скорее всего это будет /srv/tftp , но в старых Ubuntu может быть и /var/lib/tftpboot . Редактируем файл /etc/default/tftpd-hpa:

вписываем, запомненный каталог

Теперь просто запустите atftpd :

Теперь создайте в каталоге из OPTIONS папку ubuntu. Далее везде будем считать, что используется каталог /srv/tftp :

На этом настройка TFTP закончена.

Веб-сервер Apache

Что-либо менять в настройках Apache не требуется, достаточно сделать созданный в предыдущем разделе каталог ubuntu доступным через HTTP . Для этого создайте на него симлинк из рабочей папки Apache:

DHCP сервер

В этом файле необходимо изменить следующие настройки:

Теперь необходимо перевести второй компьютер в режим загрузки по сети. После этого Вы должны увидеть экран установки Ubuntu.

Читайте также:  Установка кассовых аппаратов при енвд

Установка по при помощи Minimal CD

Если вы по каким-то причинам не можете использовать полноценный диск с Ubuntu, но всё же в вашем компьютере есть CD привод и подключение к интернету, то вы можете поставить систему по сети, загрузившись с маленького диска Minimal CD.

В этом случае система поставится целиком из интернет-репозитория, а диск нужен будет только для запуска процесса установки.

источник

Записки IT специалиста

Технический блог специалистов ООО»Интерфейс»

Усовершенствованный сервер сетевой установки для Ubuntu.

Тема сетевой установки Ubuntu уже поднималась на наших страницах. Сегодня мы поговорим о том, как создать универсальный сервер сетевой установки, позволяющий устанавливать различные варианты ОС и, при необходимости, быстро изменять набор доступных систем.

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

Для реализации данного решения мы использовали Ubuntu Server 10.04.3 LTS 64-бита, на котором установлен mc и ssh, а также настроена сеть и доступ в интернет через наш роутер. Также подразумевается, что читатель умеет создавать папки, файлы, редактировать и сохранять их, а также владеет навыком монтирования CD дисков в среде командной строки Ubuntu.

Прежде всего установим необходимые пакеты, это tftpd-hpa для создания TFTP сервера и apt-cacher-ng для организации локального кэша пакетов, чтобы их не приходилось каждый раз скачивать из сети.

Оба пакета не требуют настройки и начинают работать сразу, тонкая настройка apt-cacher-ng рассматривалась в статье М. Пинаева.

Теперь настроим DHCP сервер, чтобы он сообщал клиентам параметры сетевой загрузки, для этого на роутере в /etc/dnsmasq.conf добавим строку:

где ubuntu-tftp сетевое имя PXE сервера, а 10.0.0.124 его IP-адрес. Перезапустим DHCP сервер:

Вернемся к нашему PXE серверу. Допустим, мы хотим иметь возможность сетевой установки любой версии Ubuntu 11.10 как 32-х так и 64-х битной архитектуры. Что нам для этого понадобится? Специальные образы для сетевой установки, их можно взять с alternate дисков (в каталоге install/netboot) или скачать отдельно (i386 и amd64).

Перейдем в каталог /var/lib/tftpboot в котором будут размещаться наши файлы для сетевой загрузки. В его корне разместим файл pxelinux.0, его можно взять из любого дистрибутива, он везде одинаков.

Будьте внимательны, не перепутайте файл с одноименной символической ссылкой, имеющей нулевой размер. Затем создайте две папки, скажем i386 и amd64, где будут размещаться загрузочные образы для разных архитектур. В каждый из них скопируйте файлы linux и initrd.gz с дисков соответствующих архитектур.

Следующим шагом будет создание загрузочного меню, создайте в /var/lib/tftpboot каталог pxelinux.cfg а в нем файл default, в котором поместите следующее содержимое:

Все пути в данном файле указываются от корня TFTP сервера, т.е. от /var/lib/tftpboot. Файл содержит две основные секции LABEL, в которых указываются пути к загрузочным образам разных архитектур. Названия секций лучше выбирать цифровыми, так как их придется вводить вручную при загрузке. Коротко рассмотрим основные параметры:

  • DEFAULT — секция выбираемая по умолчанию, если пользователь не выбрал никакого варианта или просто нажал Enter.
  • TIMEOUT — время в секундах, в течении которого показывается загрузочное меню.
  • PROMPT — отображает строку для ввода варианта загрузки (1 — отображать, 0 — скрыть)
  • DISPLAY — содержимое файла для вывода на экран.

Выйдем на уровень выше (в корень TFTP) и создадим там файл boot.menu следующего содержания:

В принципе здесь можно написать все, что вы хотите, главное дать пользователю понять, что для выбора нужного варианта он должен ввести номер нужного пункта и нажать Enter.

Если все сделано правильно, то вы должны получить следующую структуру каталогов:

Теперь попробуем загрузиться с нашего сервера, для этого сетевая карта вашего компьютера должна поддерживать загрузку по сети и эта опция должна быть активирована в BIOS. Вначале компьютер получает с DHCP сервера необходимые параметры загрузки, скачивает и запускает загрузчик pxelinux, который выводит на экран наше меню и ждет дальнейших действий.

В зависимости от нашего выбора будет загружен образ для соответствующей архитектуры и начнется процесс установки, который ничем не отличается от установки с alternate диска. Но на некоторых моментах мы остановимся.

После того как вы выберете зеркало для загрузки файлов, система предложит вам указать прокси. Здесь мы вводим http://10.0.0.124:3142 — адрес и порт на которых работает apt-cacher-ng, это позволит не скачивать второй раз одни и те же пакеты и избавит от необходимости прописывать службу кэширования пакетов в /etc/apt/apt.conf на рабочих станциях.

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

Следующий раз наше внимание понадобится при выборе устанавливаемого ПО. Здесь, кроме Ubuntu Desktop, рабочего стола по умолчанию (Unity), можно выбрать Kubuntu, Xubuntu, LXDE и т.п., получив на выходе установку соответствующей версии Ubuntu, или выбрать сразу несколько рабочих столов и выбирать их перед входом в систему. Также сразу можете выбрать иное необходимое ПО, хотя никто не мешает установить его позже.

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

источник

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

Доброго времени суток форумчане! Суть проблемы такова — имеется старый ноутбук (RoverBook Voyager H571 WH), на котором не работает dvd привод, и нет загрузки с USB. Имеется домашний комп с Windows 10, 1 сетевая карта, роутер, интернет smile Хочу установить на него Linux mint XFCE (сейчас на ноутбуке вообще нет OS), единственный вариант установки который мне доступен — установка по сети. Я сам с Linux знакомлюсь впервые, на данный момент устанавливал только на виртуальную машину, посмотрел что да как, сама OS понятна, приятно поучиться чему-то новому. Пошел в гугл, яндекс, искал по этому форуму — нигде не могу найти объяснений по процессу установки Linux mint (только убунты/дебианы и т.д.), а так же нет информации по подключению «физически» (полагаю что выглядит вопрос очень глупо, но правда нет опыта установки OS по сети). В связи с предоставленными выше вводными данными прошу вашей помощи, любой какую можете оказать в моей нелегкой проблеме.

P.S. Настройкой и установками win’подобных систем занимаюсь не первый день, увлекаюсь всем этим делом и сдаваться не привык, потому пожалуйста не советуйте ничего в духе «зачемтебеэто и установихрюшу», имею четкую цель — установить mint по сети, готов «курить» любые мануалы которые приведут меня к поставленной цели (просто не знаю, что именно нужно покурить) laugh

Cent OS is a not Linux Mint, thk

Чтобы устанавливать «совсем» по сети, надо чтобы биос умел PXE, и содержал драйвер для сетевухи ноута. На винде или роутере надо будет поднять dhcp и tftp серверы для загрузки PXE.

Если биос не умеет PXE или не имеет драйвера сетевухи, то выход только один — вынимать диск из ноута, подключать к компу, создавать загрузочный раздел аналогично загрузочной флешке, вставлять диск обратно в ноут и грузить программу установки с диска.

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

Если уже вытащил винт из ноута и подцепил к другому, то там сразу можно уже и установить всё что нужно(минт) с двд/флехи.

Если захотите Slackware, и ноутбук поддерживает загрузку PXE:

  • берете официальный ISO Slackware
  • делаете загрузочный носитель (флеш или DVD)
  • грузите «большого брата» с носителя, выполняете

Можете попробовать пройти таким путем:
http://help.ubuntu.ru/wiki/установка_ubuntu_по_сети
непосредственно с Mint-ом, или, установив Ubuntu и обновив ее до Mint-а.

Но кажется более простым поставить Slackware в мелком варианте (или Salix, они тут одинаковы, но мелкий Salix сделать проще), настроить сеть и сделать все остальное из нее.

> биос . содержал драйвер для сетевухи ноута

ТС’у: если у этого mint вообще нет сетевой установки (как тут отписали), то вариантов 2:

1) скачать установку, переколбасить её для установки по сети, собственно, установить по сети — всё это в находясь в windows;

2) как тут посоветовали, установить CentOS, если таки всё равно захочется mint — подготовить сетевую установку в CentOS, переписать её на систему с windows и установиться.

В любом случае на windows-системе потребуются DHCP- и tftp-серверы, ну и 99% (по tftp как-то устанавливать не принято) — http-сервер.

PS CentOS по сети устанавливается буквально с пол-пинка, конфиг для pxelinux простой, но если лень искать — могу выложить.

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

посоветую читать документацию в сети

Если уже вытащил винт из ноута и подцепил к другому, то там сразу можно уже и установить всё что нужно(минт) с двд/флехи.

Проще всего будет запустить plop по pxe и из него выбрать загрузку с usb.

источник

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