Немножко философских размышлений
Понятие «инсталляционный диск» постепенно уходит в прошлое. Действительно, зачем нужен инсталляционный диск, если есть скоростной безлимитный Интернет, позволяющий, не сходя с места, скачать самую последнюю версию программы и тут же ее установить? А поскольку скоростной Интернет потихоньку становится явлением уже почти повсеместным, то и онлайн-дистрибутивы набирают все бо́льшую и бо́льшую популярность, вытесняя диски в коробочках.
Немножко особняком здесь стоят операционные системы. Действительно, скачать и установить обычную программу несложно: компьютер с работающей операционной системой и сайт покажет, и инсталлятор скачает, и установит. Пользователю нужно только кнопочки 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 с мобильника, я получил отлуп. Поскольку дело было как раз в ванной, пришлось подключение отложить — в телефоне статический айпишник прописывать некуда
Мы все привыкли к онлайн-установщикам, действительно, зачем занимать место инсталляционными пакетами и образами, когда всегда можно получить все это из сети, причем самую последнюю версию. Практически все популярные Linux-дистрибутивы также предлагают образы для сетевой установки, но дистрибутивов может быть много, а еще нужно учитывать разрядности, архитектуры, версии релизов и как-то поддерживать это в актуальном состоянии. Но что, если всё заменить единственным образом размером менее 1 МБ?
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Что представляет из себя netboot.xyz? Это открытый проект, который позволяет выполнить сетевую загрузку практически любого дистрибутива с использованием iPXE — открытой реализации ПО для загрузки по сети. Все что вам нужно для начала работы проектом — это загрузить с официального сайта загрузочный образ размером около 1МБ.
Доступны два варианта загрузчика: Legacy (BIOS) и UEFI, что позволяет работать как с современными, так и устаревшими системами. Сам образ также доступен в нескольких вариантах: ISO, образ для флешки или флоппи-диска, либо для PXE-сервера.
При загрузке с него нас встречает следующее меню:
Уже на этом этапе можно оценить все богатство возможностей. Утилита автоматически определяет оптимальную архитектуру, но в случае необходимости ее можно переключить на любую доступную используя одноименный пункт:
Основная задача проекта — сетевая установка Linux и Unix-like систем, перейдем в пункт Linux Network Installs, где нас встретит обширный список поддерживаемых дистрибутивов:
Но это лишь та часть из них, которые имеют официальные образы для сетевой установки. Они же наиболее удобны в работе, позволяя максимально быстро установить систему с минимально возможным объемом скачиваемых данных.
Другая часть дистрибутивов доступна в пункте Live CDs, но в этом случае по сети будет скачан практически полный образ системы и на вашем ПК должно быть достаточное количество оперативной памяти для размещения образа и его запуска.
Вернемся к сетевой установке, по умолчанию нам предлагаются актуальные релизы, особых сложностей тут нет, выбираем что нам нужно и переходим к установке:
Что важно — дистрибутивы скачиваются из официальных источников, и вы можете быть спокойны, это не чья-то самодеятельность, а полностью оригинальный дистрибутив.
Ну а далее все просто и стандартно, как будто мы загрузились с обычного установочного образа:
Но это еще не все, как быть, если нам требуется что-то нестандартное, допустим достаточно старый дистрибутив. Не вопрос, переходим в пункт Older Releases — Set release codename…
И просто вписываем имя необходимого нам дистрибутива, допустим это будет Debian 5 — Lenny:
Немного подождем, пока будут скачаны необходимые компоненты и действительно перед нами Lenny:
Налицо значительная экономия сил и средств, вам не нужно искать, качать, размещать, записывать и т.д. и т.п. Можно просто выбрать нужный дистрибутив и сразу приступить к установке.
При этом поддерживается не только Linux и Unix-like системы, можно также выполнить сетевую установку Windows, но для этого вам потребуется собственная Служба развертывания Windows, адрес сервера которой вы должны явно указать.
Также рекомендуем заглянуть в раздел Utilites, там собраны различные образы служебных и восстановительных дисков практически на все случаи жизни. А ситуации бывают разные, иногда возможность таким образом загрузить нужный образ может дорогого стоить.
Скажем можно спокойно проверить ОС на вирусы, особенно если в самой ОС явные признаки заражения и нет возможности даже запустить портативную антивирусную утилиту:
Кому может быть интересен данный проект? Да практически любому 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:
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
После этого загрузится окно инсталлятора ОС.