Установка линукс по сети из 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.
Главный экран инсталлятора 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 с мобильника, я получил отлуп. Поскольку дело было как раз в ванной, пришлось подключение отложить — в телефоне статический айпишник прописывать некуда :)

netboot-xyz-000-0.pngМы все привыкли к онлайн-установщикам, действительно, зачем занимать место инсталляционными пакетами и образами, когда всегда можно получить все это из сети, причем самую последнюю версию. Практически все популярные Linux-дистрибутивы также предлагают образы для сетевой установки, но дистрибутивов может быть много, а еще нужно учитывать разрядности, архитектуры, версии релизов и как-то поддерживать это в актуальном состоянии. Но что, если всё заменить единственным образом размером менее 1 МБ?

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Что представляет из себя netboot.xyz? Это открытый проект, который позволяет выполнить сетевую загрузку практически любого дистрибутива с использованием iPXE — открытой реализации ПО для загрузки по сети. Все что вам нужно для начала работы проектом — это загрузить с официального сайта загрузочный образ размером около 1МБ.

netboot-xyz-001.pngДоступны два варианта загрузчика: Legacy (BIOS) и UEFI, что позволяет работать как с современными, так и устаревшими системами. Сам образ также доступен в нескольких вариантах: ISO, образ для флешки или флоппи-диска, либо для PXE-сервера.

При загрузке с него нас встречает следующее меню:

netboot-xyz-002.pngУже на этом этапе можно оценить все богатство возможностей. Утилита автоматически определяет оптимальную архитектуру, но в случае необходимости ее можно переключить на любую доступную используя одноименный пункт:

netboot-xyz-003-1.pngОсновная задача проекта — сетевая установка Linux и Unix-like систем, перейдем в пункт Linux Network Installs, где нас встретит обширный список поддерживаемых дистрибутивов:

netboot-xyz-004.pngНо это лишь та часть из них, которые имеют официальные образы для сетевой установки. Они же наиболее удобны в работе, позволяя максимально быстро установить систему с минимально возможным объемом скачиваемых данных.

Другая часть дистрибутивов доступна в пункте Live CDs, но в этом случае по сети будет скачан практически полный образ системы и на вашем ПК должно быть достаточное количество оперативной памяти для размещения образа и его запуска.

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

netboot-xyz-006.pngЧто важно — дистрибутивы скачиваются из официальных источников, и вы можете быть спокойны, это не чья-то самодеятельность, а полностью оригинальный дистрибутив.

netboot-xyz-007.pngНу а далее все просто и стандартно, как будто мы загрузились с обычного установочного образа:

netboot-xyz-008.pngНо это еще не все, как быть, если нам требуется что-то нестандартное, допустим достаточно старый дистрибутив. Не вопрос, переходим в пункт Older Releases — Set release codename…

netboot-xyz-009.png

И просто вписываем имя необходимого нам дистрибутива, допустим это будет Debian 5 — Lenny:

netboot-xyz-010.pngНемного подождем, пока будут скачаны необходимые компоненты и действительно перед нами Lenny:

netboot-xyz-011.pngНалицо значительная экономия сил и средств, вам не нужно искать, качать, размещать, записывать и т.д. и т.п. Можно просто выбрать нужный дистрибутив и сразу приступить к установке.

При этом поддерживается не только Linux и Unix-like системы, можно также выполнить сетевую установку Windows, но для этого вам потребуется собственная Служба развертывания Windows, адрес сервера которой вы должны явно указать.

netboot-xyz-012.pngТакже рекомендуем заглянуть в раздел Utilites, там собраны различные образы служебных и восстановительных дисков практически на все случаи жизни. А ситуации бывают разные, иногда возможность таким образом загрузить нужный образ может дорогого стоить.

netboot-xyz-013.pngСкажем можно спокойно проверить ОС на вирусы, особенно если в самой ОС явные признаки заражения и нет возможности даже запустить портативную антивирусную утилиту:

netboot-xyz-014.pngКому может быть интересен данный проект? Да практически любому IT-специалисту. В качестве применения мы видим несколько основных направлений. Одно из них — универсальная загрузочная флешка, причем можно использовать даже старую модель малой емкости. Второе — использование в системах виртуализации. В этом случае вы можете заменить коллекцию образов, занимающую место и требующую поддержания в актуальном состоянии на один единственный образ. Но возможные применения этим не исчерпываются, и вы без труда найдете собственные варианты для использования netboot.xyz.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Мне нравится сетевая установка (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:
Tftpd32 GLOBAL
Tftpd32 TFTP
Tftpd32 DHCP

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

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

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

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

Жыл был сервер без сиди-рома и ни как на него не хотел устанавливаться Linux ни с флешки ни с ilo. Пришлось испытать последний вариант, установить операционку по сети. И так, что нам потребуется:

3. роутер, ну или прямое соединение с интернетом

1. Запускаем и настраиваем tftpd на windows машине, включаем DHCP и TFTP сервера. В параметрах TFTPD указываем папку со скаченым дистрибутивом Debian (см. выше пункт 2) и включаем PXE. В настройках DHCP указываем бут-файл pxelinux.0

2. Подключаем кросовером или через свич или обычным пачкордом (современным сетевухам не нужен кросовер кабель) сетевую windows компа и сервер.

3. Подключаем интернет или роутер ко второй сетевухе на сервере.

4. Запускаем сервак, выбираем при загрузке network boot. 

Далее если все настроено правильно, путь до папки с дистрибутива указан правильно, файрволы отключены, то при загрузки сервера он получет IP от виндовой машинки, на которой запущен  tftpd, подгрузит файлик pxelinux.0, а затем и остальные файлы дистрибутива, все это отразится в tftpd логе. Запустится установщик операционной системы, далее вы укажите какой сетевой адаптер является основным и весь остальной дистрибутив уже подтянется из Интернета.

Надеюсь, получилось кратко и понятно :)

Время на прочтение
2 мин

Количество просмотров 21K

Недавно столкнулся с установкой Centos 7 в необычных условиях.

Во-первых, дома. То есть имел дело с локальными компьютером, а не с сервером с IPMI.

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

В моем распоряжении осталась сеть. Приведу пример установки Centos 7 по PXE и iPXE

Итак, начнем.

Как установить Linux через ipxe?
Как установить Linux через pxe?

Установка через PXE

Соединим ethernet кабелем компьютер1 — на котором будут DHCP, TFTP и компьютер2 — на который должна быть установлена ОС.

Добавим статичные настройки сетевого адаптера на компьютер1. Мой адрес 192.168.1.50.

Скачаем и установим TFTP. В этой программе настроим DHCP и TFTP сервер с которого отдадим IP адрес и установочные файлы компьютеру2.

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

На компьютере2 в boot меню выберем сетевой адаптер. В окне tftpd на компьютере1 будет отображаться шкала прогресса.

После этого, на компьютере2 загрузится окно инсталлятора ОС.

Установка Linux через iPXE

Скачаем образ ipxe.iso. Rufus-ом создадим загрузочную флешку на основе этого образа.

Выложим скрипт install.ipxe на любой веб сервер. О том, как поднять веб сервер на локальном компьютере можно узнать тут. Адрес моего скрипта будет таким sitename.ru/install.ipxe

Содержимое скрипта install.ipxe для установки Centos 7

#!ipxe
set base http://mirror.centos.org/centos/7/os/x86_64
prompt -k 0x197e -t 2000 Press F12 to install CentOS... || exit
kernel ${base}/images/pxeboot/vmlinuz initrd=initrd.img repo=${base}
initrd ${base}/images/pxeboot/initrd.img
boot

По аналогии с этим скриптом для установки Centos 7, можете подготовить свой скрипт для установки другой ОС.

Соединим компьютер, на который необходимо установить Linux, и роутер ethernet кабелем. Вставим флешку и загрузимся с нее. После нажатия F12 появится ipxe консоль. Используем следующие команды для получения IP адреса и скачивания скрипта

iPXE> dhcp
    DHCP (net0 52:54:00:12:34:56).... ok
iPXE> chain http://sitename.ru/install.ipxe

После этого загрузится окно инсталлятора ОС.

  • Установка нового жесткого диска на компьютер windows 10
  • Установка общего доступа к принтеру в локальной сети на windows
  • Установка линукс параллельно с windows 10
  • Установка нового винчестера windows 10
  • Установка обновлений при установке windows 10 долго