Разное

Установка linux по сети из linux – Как установить Linux из сети / Habr

Как установить Linux из сети / Habr

Буквально вчера хабраюзер Arceny поведал нам об установке дебиана с USB-flash. В статье он упомянул о возможности установки «С помощью загрузки по сети (PXE boot)», благодаря чему я решил наконец написать материал по созданию сервера pxe boot.

Повествование будет вестись на примере всё той же ОС — Debian (так что пути и команды у вас могут отличаться).
Для начала — поставим tftp-сервер. Смотрим доступные варианты (apt-cache search tftp | fgrep server):
  • atftpd
  • dnsmasq
  • tftpd
  • tftpd-hpa
Сначала я поставил tftpd-hpa, т.к. о нём рассказывалось в мануале, с которого я начинал создание сервера. Затем я перешёл на atftpd, т.к. мне потребовалось логирование. Рассмотрим оба варианта:
  • tftpd-hpa:
    Устанавливаем пакет, редактируем файл /etc/default/tftpd-hpa, дабы демон знал, что ему стоит жить:

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

    Создаём нужный каталог:

    mkdir /var/lib/tftpboot, и стартуем сервис invoke-rc.d tftpd-hpa start

  • atftpd:
    После установки обнаруживаем, что по-умолчанию этот сервис работает через inetd. Я, почему-то, не фанат этого метода, поэтому первым делом закомментировал соответствующую строку в /etc/inetd.conf. Затем редактируем /etc/default/atftpd:

    USE_INETD=false
    OPTIONS="--daemon --tftpd-timeout 1500 --no-multicast --retry-timeout 20 --logfile /var/log/atftpd.log --maxthread 100 --verbose=5 /var/lib/tftpboot"

    --tftpd-timeout — время жизни потока, при отсутствии запросов
    --retry-timeout — таймаут отдачи файла
    у меня установлены большие таймауты, т.к. сервис транслируется в городскую локальную сеть, которая периодически прогибается от обилия абонентов, и не справляется с потоком запросов.
    Ну и, как и в предыдущем пункте, — создаём нужный каталог: mkdir /var/lib/tftpboot, и стартуем сервис invoke-rc.d atftpd start

Теперь у нас есть tftp-сервер. Один шаг мы сделали 🙂
Далее — настройка dhcp:
  • dhcp3:
    В конфигурационный файл /etc/dhcp3/dhcpd.conf
    добавляем информацию о загрузке:

    filename "pxelinux.0";
    next-server <tftp-server-ip>;

    Если tftpd установлен на том же сервере, что и dhcpd — директиву next-server можно опустить. И перезапускаем dhcp3-server: invoke-rc.d dhcp3-server restart

  • dnsmasq:
    В конфиг /etc/dnsmasq.conf дописываем:

    dhcp-boot=pxelinux.0,<tftp-server-hostname>,<tftp-server-ip>

    Опять же, если сервера tftp и dhcp совпадают — последние 2 атрибута можно не заполнять. Перезапускаем: invoke-rc.d dnsmasq restart

Шаг второй пройден. Дальше — непосредственно настройка pxe-boot.
Идём на ftp.debian.org, выбираем каталог installer-*, соответствующий необходимой архитектуре. Затем переходим в директорию current/images/netboot внутри мы найдём файлы netboot.tar.gz и gtk/netboot.tar.gz — это файлы текстовой и графической установки соответственно. Выбираем понравившийся, качаем и распаковываем в /var/lib/tftpboot.
Осталось убедиться, что зазрешён доступ на 69 UDP порт, и можно пользоваться прелестями сетевой установки.

В качестве бонуса прилагаю меню, которое получилось у меня в результате нескольких дней издевательств:

В текущей конфигурации возможна установка нескольких ОС (установка Debian возможна как в текстовом, так и в графическом режиме), загрузка xUbuntu (через nfs), SystemRescueCD (через http-boot), memtest86 (через tftp). Установка всех ОС возможна для 2 архитектур — x86 и x64. Т.к. у меня лежит внутрисетевое зеркало репозиториев Ubuntu 8.10 и Debian 5.0, то установщики не предлают выбор репозитория, а автоматически сливают всё с него.
Скриншоты:
стартовый экран, после нажатия кнопки, меню выбора дистрибутива, вторая часть меню выбора дистрибутива, выбрана установка Ubuntu, Debian, Fedora, SuSE.
Архив /var/lib/tftpboot (без малого 200мб), а так же — файлы конфигурации для установщиков Ubuntu и Debian: в них указаны репозитории + Ubuntu разбивается на Ubuntu, kUbuntu, xUbuntu, edUbuntu.
В этой конфигурации есть один большой минус, который мне лень исправить: при открытии меню подгружается порядка 70 файлов, бОльшая часть из которых не нужна пользователю. Что бы избавиться от этого — отображение подменю нужно перевести из подключения меню инклудами в их вызов через ядро
vesamenu.c32
, которое идёт с pxeboot. Так же — не помешает очистить каталоги меню от дубликатов — большая часть конфигов для меню x64 и x86 совпадает.

habr.com

Установка Ubuntu по сети | Русскоязычная документация по Ubuntu

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

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

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

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

Для загрузки по сети потребуется установить на сервер TFTP, HTTP

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

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

sudo apt-get install aptitude

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

sudo aptitude -R install apache2 atftpd tftpd-hpa dhcp3-server

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

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

TFTP сервер

Демон, использующий эти файлы - /etc/hosts.allow и /etc/hosts.deny для ограничения доступа.

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

sudo nano /etc/default/atftpd

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

USE_INETD=true

на

USE_INETD=false

Кроме этого запомните каталог, который находится в конце строчки

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

sudo nano /etc/default/tftpd-hpa

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

TFTP_DIRECTORY="/srv/tftp"

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

sudo /etc/init.d/atftpd start

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

mkdir /srv/tftp/ubuntu

После этого необходимо смонтировать ваш ISO образ во вновь созданный каталог. Сделать это можно примерно такой командой:

sudo mount -o loop /home/tux/ubuntu-11.04-alternate-i386.iso /srv/tftp/ubuntu/
Если у Вас нет ISO образа диска, но есть записанный Alternate диск, то просто вставьте его в CD/DVD привод. Диск автоматически монтируется в /media/cdrom. Дальше просто нужно создать симлинк для TFTP сервера:
sudo ln -s /media/cdrom /srv/tftp/ubuntu

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

Веб-сервер Apache

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

sudo ln -s /srv/tftp/ubuntu /var/www/ubuntu
Если вы используете не ISO образ, а записанный диск, то выполните
sudo ln -s /media/cdrom /var/www/ubuntu

DHCP сервер

Всё, что осталось - это настроить правильным образом DHCP сервер. Откройте в любом текстовом редакторе с правами суперпользователя файл /etc/dhcp3/dhcpd.conf, например, командой

sudo nano /etc/dhcp3/dhcpd.conf

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

# Имя вашего внутреннего домена. Если вам это ни о чём не говорит - просто не меняйте.
option domain-name "domain.ru";
# Ваш DNS сервер, который должен использоваться на подключаемом компьютере. Чаще всего тут стоит IP адрес роутера.
option domain-name-servers 192.168.0.1;
# Просто раскомментируйте эту строчку
authoritative;
 
# Теперь надо определить сеть для DHCP сервера:
# Сначала желаемая подсеть и маска подсети.
subnet 192.168.0.0 netmask 255.255.255.0 {
  # Диапазон выдачи сервером адресов
  range 192.168.0.100 192.168.0.199;
  # Роутер для доступа к интернету
  option routers 192.168.0.1;
  # Какой файл загружать при сетевой загрузке - укажите именно в таком виде.
  filename = "ubuntu/install/netboot/pxelinux.0";
} 

После этого нужно сказать нашему DHCP серверу слушать один из интерфейсов. Для этого откройте файл /etc/default/dhcp3-server и добавьте в параметр INTERFACES имя нужного интерфейса. Например, вот так:

INTERFACES="eth0"

Теперь нужно запустить DHCP сервер и можно будет приступать к установке. Однако перед запуском убедитесь, что в вашей сети нету ещё каких-нибудь работающих DHCP серверов. Чаще всего

DHCP бывает запущен на роутерах, в этом случае надо зайти на роутер и остановить на нём этот сервис.

Итак, для запуска DHCP сервера достаточно выполнить команду

sudo /etc/init.d/dhcp3-server start

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

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

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

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

Ссылки

help.ubuntu.ru

Инсталляция Linux по сети с Windows-машины. Грабли и сложности

Немножко философских размышлений

Понятие "инсталляционный диск" постепенно уходит в прошлое. Действительно, зачем нужен инсталляционный диск, если есть скоростной безлимитный Интернет, позволяющий, не сходя с места, скачать самую последнюю версию программы и тут же ее установить? А поскольку скоростной Интернет потихоньку становится явлением уже почти повсеместным, то и онлайн-дистрибутивы набирают все бо́льшую и бо́льшую популярность, вытесняя диски в коробочках.

Немножко особняком здесь стоят операционные системы. Действительно, скачать и установить обычную программу несложно: компьютер с работающей операционной системой и сайт покажет, и инсталлятор скачает, и установит. Пользователю нужно только кнопочки Yes да Next нажимать время от времени. А вот как установить саму операционку, да еще и на чистый компьютер? Раньше без специальной загрузочной дискеты было не обойтись. Причем даже когда операционки стали распространяться на компакт-дисках, все равно нужна была работающая операционка, которая могла бы создать загрузочную дискетку с образа, расположенного на компакт-диске. Потом появились загрузочные компакт-диски, и процесс установки стал значительно легче: всунул диск, включил компьютер, инсталлятор сам запустился, нашел все диски, спросил, куда будем ставиться - и понеслась...

Но диски тоже потихоньку сходят с арены, уступая более компактным и надежным (а в последнее время еще и более объемным) USB-флешкам.
И хотя сейчас CD/DVD-привод пока еще есть практически в каждом компьютере, многие ноутбуки (а в особенности - нетбуки) уже жертвуют этой громоздкой железякой для экономии места. Действительно, а зачем он нужен, если все необходимое можно скачать через Интернет, в крайнем случае - передать через флешку?

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

На самом деле, технология запуска рабочей станции по программе, загружаемой из локальной сети, не так уж и нова - ей уже лет тридцать, но до сих пор она использовалась преимущественно коммуникационными железками вроде маршрутизаторов или мини-АТС. Видимо, как раз нетбуки и стали тем спусковым крючком, который породил спрос на включение в материнские платы возможность установки операционной системы путем скачивания инсталлятора с сервера. А что - удобно: подключил к специальному загрузочному серверу несколько десятков ноутбуков (на сколько портов хватило), сервер раздал каждому по загрузчику, операционка сама поставилась, ноутбуки готовы к продаже, подключаем следующую партию. Вот оно, массовое производство.

Эволюция материнских плат

А раз уж такая функция появилась на ноутбучных материнках, то почему бы ей не появиться и на обычных - чипсеты-то везде одинаковые. Вообще, эволюция материнских плат - прелюбопытнейшая вещь. Первые материнки, которые я застал, без дополнительных устройств могли подключать разве что только клавиатуру и мышь. Даже жесткий диск к ним подключать напрямую было нельзя - нужно было ставить специальную плату с дисковыми контроллерами, называемую "мультипортовой платой". Но это было настолько давно, что неудивительно, что нынешний пятнадцатилетний мальчик, перерыв весь Интернет, так и не смог найти внятное объяснение, что же такое "мультяшка - байты растеряшка" - еще бы, явление прекратило существовать примерно в первый год его жизни, поскольку к этому времени практически все материнки содержали встроенный контроллер дисков.

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

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

От теории к практике

Недавно мне довелось попробовать это все на личном опыте. Я устанавливал Debian Linux на свой домашний сервер. И, поскольку материнка поддерживает старт через сеть, я решил, что этим грех не воспользоваться. В теории все выглядит очень заманчиво: при включении компьютера крохотный инсталлятор скачивается с соседнего компьютера, после чего инсталлятор выходит в Интернет и скачивает последнюю-распоследнюю версию операционки (т.е. не надо никаких сервиспаков, обновлений, драйверов и прочей фигни). Пользователю остается только выбрать режим установки, указать, куда поставить систему, какие компоненты ставить - в общем, стандартный набор простейших действий.

В конечном итоге у меня все получилось, хотя грабли я собрал, кажется, все, какие только возможно - в процессе даже возникала крамольная мысль: "а не проще ли скачать образ DVD и поставить с него?". Но в итоге все трудности были успешно преодолены, а о встреченных граблях мне хотелось бы рассказать - вдруг кому будет полезно.

Итак, топология сети проста и незатейлива, как и в большинстве домов, где больше одного компьютера: роутер, раздающий интернет, к нему подключены два компа (мой и Юлькин), и туда же был воткнут сервер. Теперь задача: один из компов (очевидно, мой) должен стать устройством, с которого сервер получит инсталлятор Линукса.

Почитав мануалы, я узнал, что загрузка осуществляется по протоколу TFTP. TFTP - это упрощенный FTP, там нет авторизации и есть только две команды: get и put. Гугл мне подсказал, что в винде встроенного TFTP-сервера нет, но его можно установить в виде отдельной приблуды под названием Tftpd32. Скачал, установил. Убедился, что команда tftp localhost put aaa.txt действительно заливает файлик aaa.txt из текущего каталога в рабочий каталог Tftp32. "Полдела сделано", - подумал я оптимистично и распаковал в рабочий каталог файлы инсталлятора Debian.

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

DHCP....(/)

после чего добавил:

PXE-E53: No boot filename received.

На этом загрузка по сети закончилась.

Ну, логично, подумал я. В настройках Tftp32 есть вкладка DHCP, и там есть поле Boot File - куда, очевидно, надо вписать pxelinux.0 (это имя загрузчика, я узнал об этом из мануала по установке Debian). Но вот что меня смущало: то, что это поле находится во вкладке DHCP означает, что Tftpd32 должен выступать еще и в роли DHCP-сервера? Так у меня уже есть один, на роутере, зачем мне еще один?

Но поскольку поле Boot File попросту не прописывалось без прочих настроек, очевидно было, что Tftpd32 все-таки придется сделать DHCP-сервером. Получается, "кто девушку ужинает, тот ее и танцует" - т.е. кто айпишник выдал, тот и инструкции по загрузке выдает, иначе никак.

Мне очень не хотелось отключать DHCP на роутере, поэтому я попробовал прямо так - а вдруг не подерутся? Но они, естественно, подрались. Ладно, выставил на всех компах статические адреса, отключил DHCP на роутере, попробовал заново. Включаю опять сервер - кажется, дело сдвинулось с мертвой точки. Tftp32 даже написал, что у него запросили файлик pxelinux.0, и показал прогресс-бар загрузки... который замер на нуле и больше не двигался.

Еще поползал по Интернету, покурил различные мануалы. Осознал, что старт происходит не просто по протоколу TFTP, а по некоей его модификации под названием PXE. Нашел в настройках Tftpd32 неприметную галочку PXE Compatibility. Поставил. Еще раз стартовал сервер. Опять ничего не грузится: No boot filename received.

Оказывается, Tftpd32 после каждого изменения настроек сбрасывает рабочий каталог на каталог по умолчанию (тот, куда он сам установился). Я выругался, вернул каталог на место и снова стартовал сервер. Помогло. Пискнув, сервер гордо отобразил экран инсталлятора Debian Linux.

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

Mirror does not support the specified release (squeeze)

Squeeze - это кодовое название версии Debian 6.0 - самой актуальной на данный момент. Ну не может такого быть, чтобы она нигде не поддерживалась! Более того, слазив по адресу ftp://ftp.us.debian.org/debian/dists/squeeze, я убедился, что этот каталог вполне себе существует и доступен. Явно это у меня где-то очередной косяк.

Самое странное, что в Интернете я не нашел четкого описания причин этой проблемы, но, чуть-чуть подумав, допер сам. Ошибка возникает при попытке инсталлятора исполнить команду wget -q http://ftp.uk.debian.org/debian//dists/squeeze/Release -O - | grep -E '^(Suite|Codename):'. Причина ошибки не анализируется, поэтому отсутствие конкретного файла и недоступность всего зеркала целиком трактуются одинаково - т.е. даже если зеркало недоступно целиком, пользователь получит вводящее в заблуждение сообщение, мол, "на данном зеркале твоя версия не поддерживается".

А причиной недоступности, очевидно, было то, что я в настройках DHCP в Tftpd32 забыл указать адрес DNS-сервера - поэтому загрузчик не мог разрешить ни одного доменного имени, и, как следствие, не мог достучаться ни до одного зеркала. После того, как я эту проблему исправил, инсталляция прошла успешно.

P.S. Включить обратно DHCP на роутере я, естественно, забыл - поэтому когда я через несколько дней привычно попытался подключиться к Wi-Fi с мобильника, я получил отлуп. Поскольку дело было как раз в ванной, пришлось подключение отложить - в телефоне статический айпишник прописывать некуда 🙂

myx.ostankin.net

Установка Ubuntu по сети (DHCP, PXE, boot-menu) / На примере Ubuntu 14.04 / Ubuntu / Howitmake.ru

Уже довольно давно, мной была написана статья о сетевой установке Ubuntu, по локальной сети, без использования различных носителей, только загрузка по PXE и все. В этот раз я решил обновить статью и сделать ее ближе к современным реалиям, а главное, расширить функционал. Все будет выполняться на примере Ubuntu 14.04!

Под разные требования, должны быть и разные решения, главная загвоздка в том, что зачастую, нам требуется не одна операционная система, а несколько. Вот я и решил написать на эту тему статью. С предыдущей статьей, можно ознакомиться по ссылке, Установка Ubuntu по сети.
Главная идея заключаться в том что у нас появится возможность, выбирать какую операционную систему мы будем устанавливать, а также ее разрядность, фактически, у нас появится меню загрузки, после загрузки системы по локальной сети.
Все это мы реализуем, на примере, только что вышедшей Ubuntu 14.04

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

Ubuntu_14.04x86
Ubuntu_14.04amd64

Для работы нам понадобится:
Обязательно!
1) Настроенный шлюз, для примера, воспользуйтесь статьей: Настройка шлюза локальной сети, на базе Ubuntu
2) DHCP сервер, для примера, можно воспользоваться статьёй: Настройка DHCP сервера под управлением Ubuntu
3) Настроенный TFTP сервер, загружающий PXE загрузчик, воспользоваться статьёй: Настройка PXE Boot меню с мемтестом и паролями

Опционально!
3) Дополнительным, но не обязательным моментом, может быть настроенный DNS сервер, пример есть в статье Настройка DNS сервера для локальной сети

Предполагается что у вас настроен шлюз, DHCP, TFTP севрер, а также добавлено меню загрузки PXE т.к. на этом моменте я останавливаться не буду.

Переходим к настройке инсталлируемой системы.
Для начала мы создадим пункт установки для Ubuntu 14.04x86, для чего нам понадобится установочный диск соответствующей разрядности. Нам его необходим скачать и примонтировать, для того чтобы извлечь файлы загрузчика инасталятора системы.
Т.к. файл сетевого загрузчика у нас лежат в директории директории /var/lib/tftpboot/ откуда они и подтягиваются TFTP сервером, то в ней нам нужно создать директорию Ubuntu, чтобы в нее сложить файлы с дисков установки, сделаем это:
mkdir /var/lib/tftpboot/ubuntu

В директории Uubntu мы создаем дополнительные директории для файлов загрузчика инсталлятора ОС для x86 разрядных систем и ADM64-соответсвенно.
mkdir /var/lib/tftpboot/ubuntu/x86
mkdir /var/lib/tftpboot/ubuntu/amd64

Теперь нам требуется скачать установочный диск посмотреть можно тут mirror.yandex.ru/ubuntu-releases/14.04/
Мы качнем версию х86 для сервера т.к. она меньше весит

wget http://mirror.yandex.ru/ubuntu-releases/14.04/ubuntu-14.04-server-i386.iso

После завершения закачки ISO образа, нам нужно его смонтировать, чтобы извлечь нужные нам файлы, а для этого, в директории /media мы создадим директорию iso, давайте сделаем это:
mkdir /media/iso

Монтируем образ диска в эту директорию:
sudo su
mount ubuntu-14.04-server-i386.iso /media/iso/

Система выдаст что диск смонтирован в режиме чтения:
mount: warning: /media/iso/ seems to be mounted read-only.
Идем забирать загрузчик и ядро инсталятора:
cd /media/iso/install/netboot/ubuntu-installer/i386/

Нас интересуют 2 файла linux и initrd.gz, которые нам нужно забрать и перенести в директорию /var/lib/tftpboot/ubuntu/x86
давайте скопируем их:

cp linux /var/lib/tftpboot/ubuntu/x86
cp initrd.gz /var/lib/tftpboot/ubuntu/x86

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

umount /media/iso/

После этого ISO-образ можно удалить.
Похожие действия проводим для образа установочного диска с разрядностью x64, я не буду расписывать что и куда, просто приведу листинг команд, действия все те же, только пути немного отличаются, там прописано amd64

wget http://mirror.yandex.ru/ubuntu-releases/14.04/ubuntu-14.04-server-amd64.iso
mount ubuntu-14.04-server-amd64.iso /media/iso/
cd /media/iso/install/netboot/ubuntu-installer/amd64/
cp linux /var/lib/tftpboot/ubuntu/amd64
cp initrd.gz /var/lib/tftpboot/ubuntu/amd64
umount /media/iso/

С файлами установки закончили, теперь настроим PXE меню загрузки.

Настройка меню загрузки PXE

Для начала добавим пункт меню с названием Linux Install, для этого нам нужно отредактировать файл:
nano /var/lib/tftpboot/pxelinux.cfg/default

В конец файла добавим запись:

LABEL Linux Install
      MENU LABEL ^Linux Install
      KERNEL vesamenu.c32
      APPEND pxelinux.cfg/linux.menu

Как видно из записи, у нас будет другая страница с выбором дисирибутивов для установки, создадим ее:

nano /var/lib/tftpboot/pxelinux.cfg/linux.menu

Добавим в нее названия пунктов для загрузки с возможностью выбора операционной системы для установки, пока это будет Ubuntu 14.04 x86 и amd64 архитектуры:


    LABEL Install Ubuntu 14.04x86
      MENU label ^Ubuntu 14.04x86
      KERNEL  ubuntu/x86/linux
      APPEND initrd=ubuntu/x86/initrd.gz

    LABEL Install Ubuntu 14.04amd64
      MENU label ^Ubuntu 14.04amd64
      KERNEL  ubuntu/amd64/linux
      APPEND initrd=ubuntu/amd64/initrd.gz

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

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

howitmake.ru

Установка Linux Mint по сети (TFTP+Samba)

Подробности
Просмотров: 7348

Каждому, кто хоть изредка промышляет администрированием хотя бы раз нужно было установить операционку на комп. И зачастую происходит всё так: скачивается образ, записывается на диск или флешку, грузимся и ставим. Но может оказаться что ни флешки ни диска под рукой нет, а установку нужно выполнить на вчера... Тогда можно загрузится по сети, и с линуксом в этом плане особо проблем нет. Типичная конфигурация - это связка DHCP, TFTP и NFS. Но у меня под рукой не было настроенного NFS, зато была Samba. Поэтому пришлось разобраться как использовать Samba вместо NFS.

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

Но я тут начну с самого начала. Итак для начала нужно обзавестись дистрибутивом. Так как ставим мы Linux Mint, ищем свежий образ здесь. Скачиваем дистрибутив, подходящий именно нам (я ставил тот, что с MATE, но очевидно это не имеет особого значения). Скачав образ, нужно получить доступ к файлам образа. В некоторых руководствах рекомендуют распаковать образ, но я не вижу в этом смыла, поэтому поддерживаю мнение, которое заключается в том, чтобы смонтировать образ как loop. Чтобы не вмешиваться в существующий порядок, просто создаём новый каталог, куда и монтируем образ:

# mkdir /mnt/mint
# mount -o loop /home/user/download/linuxmint-17-mate-64bit-v2.iso /mnt/mint

Далее нужно сделать файлы доступными по сети для чтения установщиком. Как я говорил выше, у меня для этого служит Samba. Поэтому открываем файл конфигурации и добавляем новую шару, добавив такую секцию:

[mint]
path = /mnt/mint
available = yes
browsable = yes
public = yes
writable = no

Должно работать поверх дефолтных настроек Samba. Если же не работает, то скорее всего вы что-то меняли сами, а значит найдёте как решить проблему. Итак мы добавили шару mint, через которую можно с сети получить файлы для установки. Не забудьте перезапустить Samba для принятия новых настроек.

Для Archlinux:

# systemctl restart smbd
# systemctl restart nmbd

Для Gentoo:

# /etc/init.d/samba restart

Далее нужно подготовить сетевой загрузчик. В этом нам поможет программа tftp-hpa. В Archlinux и в Gentoo пакет называется именно так. Нужно расположить файлы загрузчика в рабочем каталоге ftp-сервера (в арче /srv/tftp). Копируем туда ядро и initrd со смонтированного образа:

# cp /mnt/mint/casper/{vmlinux,initrd.lz} /srv/http

Далее нам нужен syslinux. С него нужно собственно PXE-загрузчик:

# cp /usr/lib/syslinux/bios/{pxelinux.0,menu.c32,ldlinux.c32,libutil.c32} /srv/http

Далее нужно подготовить файл конфигурации для загрузчика. Для этого создаём файл /srv/tftp/pxelinux.cfg/default. Туда пишем такое:

DEFAULT menu.c32
LABEL LinuxMint
KERNEL vmlinuz
APPEND showmounts toram root=/dev/cifs boot=casper netboot=cifs nfsroot=//192.168.0.1/mint NFSOPTS=-oguest,ro initrd=initrd.lz nosplash

Где 192.168.0.1 - наш IP-адрес относительно машины, на которую быдем ставить. Ах да, и про nfs там - это не опечатка, в режиме работы с cifs, нужно передавать опции типа как для nfs, не могу сказать почему. Особое внимание нужно обратить на опцию toram, поскольку без неё всё отваливается на полпути и загрузится мы не можем (может это особенности самбы). Но с этой опцией нужно помнить о том, что на целевой машине должно быть достаточно оперативки, чтобы скопировать туда установщик. TFTP-сервер нужно запустить. Для Archlinux:

# systemctl tftpd.socket start

Для Gentoo:

# /etc/init.d/in.tftpd start

Теперь нужно биосу целевой машины как-то сказать откуда грузится. В этом нам поможет dnsmasq (хотя не обязательно, можно использовать и другой DHCP сервер, здесь описываю то, что было под рукой). Настраиваем раздачу IP (опция dhcp-range) на своё усмотрение, под свою "сеть" между машинами. Для установки нам важны лишь три опции:

dhcp-boot=/pxelinux.0
dhcp-option=vendor:PXEClient,6,2b
pxe-service=x86PC, "Install Linux", pxelinux

Их нужно добавить к конфигурации dnsmasq, ну и естественно запустить его (или перезапустить).

Для Archlinux:

 # systemctl start dnsmasq

Для Gentoo:

# /etc/init.d/dnsmasq start 

Помните, чтобы всё заработало необходимо, чтобы порты на DHCP (UDP 67,68), TFTP (UDP 69), Samba (UDP 137,138, TCP 139,445) должны быть обязательно открыты, обязательно учтите это в конфигурации своего фаерволла. Если же фаерволла нет или полностью открыт интерфейс - ну и ладно, должно работать.

Вобщем далее подключаемся к сети (куда смотрят dnsmasq, tftp-hpa и samba), выбиарем Network boot и ставим систему. По завершении останавливаем серверы, размонтируем ISO.

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

  • < Назад
  • Вперёд >

adment.org.ua

Сетевая установка Ubuntu или другого GNU/Linux из-под Windows

Мне нравится сетевая установка (PXE) своей доступностью, когда CD/DVD/Blue-Ray дисководы становятся экзотикой, а флешку или внешний диск портить не хочется…

Я обычно ставлю что-то из-под Windows, но отличия только в настройке TFTP-сервера, если сравнивать с GNU/Linux. Так же мало отличий в дистрибутивах GNU/Linux.

Сервер — комп/ноут, на котором TFTP-сервер и с него будут передавать установочные файлы.

Клиент — комп/ноут, на который устанавливается Ubuntu.

Понадобится:

  • Соединить клиента с сервером по LAN.
  • На сервере нужной сетевой карте выдать статический IP (я выдал 192.168.8.1).
  • В BIOS на клиенте выставить загрузку по сети (PXE) или узнать из документации. Возможно F12 при включении активирует этот режим.
  • Скачать и распаковать Tftpd32 standard edition (zip) на сервер.

Скрины настроек Tftpd32:


7-zip 9.20 умеет распаковывать tar с ссылками, но не все.

Взял netboot.tar.gz на archive.ubuntu.com
Тут есть актуальная ссылка на netboot.tar.gz

Распаковать и заменить ссылки файлами, если 7-zip не справился.

Запустить Tftpd32 и выбрать папку с распакованным netboot.tar.gz и нужную сетевую карту.
Перезагрузить клиент и активировать загрузку по сети.

Понравилось это:

Нравится Загрузка...

Похожее

 

sexforgeeks.wordpress.com

Yellow Leaf - Статьи - Установка Ubuntu по сети через PXE

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

Некоторое время назад автору этих строк в руки попал старенький IBM ThinkCentre S51 8171 с неисправным CD-приводом. С загрузкой с флэшки, созданной с помощью UNetBootin, так же возникли проблемы и осталась последняя надежда: загрузка инсталлятора по PXE. Далее будет кратко описан полученный опыт.

IBM ThinkCentre S51 8171 имеет очень неплохую начинку для машины 2006-го года выпуска: Pentium 4 540, 2x512MB DDR, 30GB ATA HDD. Но в 2018-м она смотрится блекло, хотя и сейчас ей можно найти множество применений. Основная проблема: процессор не поддерживает EMT64 и потому операционная система должна быть обязательно 32-битной. К счастью Ubuntu 16.04 существует в редакции i386 и было решено ставить её.

В качестве сервера загрузки решено было использовать домашний сервер под управлением Ubuntu 16.04. Для раздачи адресов в локальной сети используется isc-dhcp-server. В остальном конфигурация сервера достаточно типична. Для создания PXE-окружения нам понадобится TFTP-сервер. Мы будем использовать пакет "tftpd-hpa". Установим его, а так же (на всякий случай) tftp-клиент:


apt-get install tftpd-hpa tftp-hpa

По умолчанию tftpd-hpa использует директорию "/var/lib/tftpboot". Если по какой-то причине необходимо это изменить то нужно соответствующим образом отредактировать файл "/etc/default/tftpd-hpa" и перезапустить сервис "tftpd-hpa". Но нас вполне устроит конфигурация по умолчанию.

Список доступным инсталляторов Ubuntu 16.04 для загрузки через PXE и сетевой установки можно найти на этой странице. Нас интересует архив под названием "netboot.tar.gz" для архитектуры i386. Скачиваем и распаковываем его в директорию tftp-сервера:


wget http://archive.ubuntu.com/ubuntu/dists/xenial-updates/main/installer-i386/current/images/netboot/netboot.tar.gz
mkdir -p /var/lib/tftpboot/ubuntu/
tar zxfv netboot.tar.gz -C /var/lib/tftpboot/ubuntu/

На этом подготовка TFTP-сервера заканчивается и остаётся настроить DHCP-сервер. Вся конфигурация сводится к добавлению строки:


    # Путь к файлу "pxelinux.0" относительно директории TFTP-сервера
    filename "ubuntu/pxelinux.0";

Эту строку можно добавить в описание подсети, группы хостов или даже конкретного хоста. Главное чтобы машина, ради которой это всё делается, получила нужную конфигурацию. После этого можно включить машину и выбрав загрузку по PXE приступить к установке системы. После загрузки инсталлятора установка будет происходить обычным образом, так, будто бы была произведена загрузка с "MinimalCD".

На этом можно было бы закончить, но есть ещё интересный момент: автоматическая установка. Инсталлятор Ubuntu частично поддерживает формат конфигурации kickstart от RedHat Linux. Подробнее можно прочитать тут. Если есть необходимость в использовании сценария автоматической установки то сначала необходимо создать файл сценария и разместить его на веб-сервере в локальной сети, затем надо немного модифицировать файл "/var/lib/tftpboot/ubuntu/ubuntu-installer/i386/boot-screens/txt.cfg":


        #append vga=788 initrd=ubuntu-installer/i386/initrd.gz --- quiet 
        append ks=http://192.168.2.1/ks.cfg vga=788 initrd=ubuntu-installer/i386/initrd.gz --- quiet 

Здесь параметр "ks=" указывает URL, по которому расположен сценарий настройки kickstart. Более детальное изучение этой темы оставим читателю.

На этом всё. Приятной работы!

www.ylsoftware.com

Отправить ответ

avatar
  Подписаться  
Уведомление о