Создание загрузочного диска
В данном контексте загрузочным диском именуется флеш-диск USB, с которого можно запустить и установить Ubuntu . Ёмкость USB-носителя должна быть не менее 2 ГБ. Все данные, имевшиеся на этом носителе, будут стёрты в процессе создания загрузочного диска.
Подразумевается, что вы уже загрузили ISO-образ Ubuntu.
Для того, чтобы создать загрузочный диск из ISO-образа Ubuntu:
Откройте Создание загрузочного диска через строку поиска в Обзоре .
Если образ ISO находится в папке Загрузки и он там только один, то приложение Создание загрузочного диска выберет его автоматически. В противном случае выберите нужный образ ISO.
Если к компьютеру подключён только один флеш-носитель USB, то приложение Создание загрузочного диска выберет его. Если нет, выберите нужный носитель.
Получение дистрибутива Ubuntu
Ubuntu распространяется абсолютно бесплатно, поэтому проще всего получить свою копию этой системы через интернет. Подробнее об этом чуть ниже. Однако если по каким-либо причинам у вас нет возможности загрузить Ubuntu из сети, вы можете, например, зайти в специальный раздел на нашем форуме и поискать кого-нибудь в своём городе, кто готов поделиться дистрибутивом с вами 1) .
Выбор версии Ubuntu
Прежде всего, вам потребуется выбрать версию дистрибутива, которую вы хотите использовать. Тут надо заметить, что кроме непосредственно номера версии, который говорит о времени выхода дистрибутива, у Ubuntu существует огромное количество модификаций, выпускаемых одновременно. Все модификации одной версии совместимы между собой, а отличаются только предустановленными программами и настройками.
Скажу сразу, нам потребуется Ubuntu 10.04 «Lucid Lynx» Desktop, т.е. базовая версия Ubuntu для домашних компьютеров. Кроме самой Ubuntu существуют: Kubuntu, основанная на рабочем столе KDE; Xubuntu, основанная на рабочем столе XFCE; Ubuntu Netbook Remix, лучше настроенная для работы на нетбуках, и другие. Мало того, кроме Desktop существует ещё несколько различных по предназначению сборок: DVD, Alternate и Server 2) .
На самом деле, если у вас есть возможность скачать и использовать DVD, я рекомендую вам именно его, а не Desktop CD, поскольку на DVD гораздо лучше изначальная локализация. С точки зрения установки DVD версия практически ничем не отличается от Desktop CD, поэтому в дальнейшем я буду рассматривать более распространённую версию дистрибутива на CD.
Теперь самое важное. Ubuntu работает на большинстве современных компьютеров, поэтому существуют сборки Ubuntu для различных архитектур ПК. Самыми распространёнными являются i386 и amd64. Версия amd64 предназначена для компьютеров, поддерживающих 64-битные вычисления. Все современные компьютеры с многоядерными процессорами их поддерживают (и не только продукты AMD, но так же и процессоры Intel). Архитектура i386 является гораздо более старой, однако 64-битные процессоры полностью с ней совместимы. Поэтому версия Ubuntu для неё будет работать практически на всех компьютерах, включая современные многоядерные, но не будет поддерживать все возможности новых процессоров. В общем на самом деле всё просто: если у вас новый компьютер, то рекомендуется использовать версию amd64, если же старый, то вам ничего кроме i386 не остаётся.
Итак, надеюсь вы разобрались с тем, что нам нужно, и не испугаетесь, увидев весь зоопарк Ubuntu. Ну и напоследок. Минимальными системными требованиями для Ubuntu являются 384Mb оперативной памяти и хоть какой-нибудь процессор, однако я бы не рискнул запускать Ubuntu на 384Mb. Для более-менее комфортной работы надо минимум 512Mb. Если у вас мало оперативной памяти, посмотрите в сторону более «лёгких» дистрибутивов, например, в сторону Xubuntu.
Загрузка Ubuntu из сети
Теперь, когда мы определились с выбором, пора посетить http://ubuntu.ru/get и скачать нужную вам версию.
Распространены два типа скачивания: один — прямой, вы просто заходите через ваш браузер на сервер, выбираете нужный файл и начинаете его загрузку. Это универсальный способ, однако более предпочтительным и удобным является скачивание диска через торренты. На сайте вам в первую очередь как раз и предлагают загрузить Ubuntu с помощью торрентов, поэтому если вы умеете пользоваться этой технологией, просто выберите нужный torrent-файл из списка, добавьте в свой торрент-клиент и дождитесь окончания загрузки. Не забудьте, вам нужна либо Desktop, либо DVD версия для вашей архитектуры.
Если же вы не умеете пользоваться торрентами, ничего страшного. Посмотрите на секцию «Скачать CD или DVD», в ней содержаться ссылки на архивы с дисками. Вам нужна либо первая группа ссылок, если вы решили скачивать Desktop-версию, либо вторая, если вы решили загружать DVD.
Итак, заходим по первой ссылке в группе и видим список каталогов (если у вас не получается зайти по первой ссылке, заходите по второй):
Нам нужна папка lucid (если вы загружаете DVD, то сначала перейдите в папку releases ), в ней находится огромное количество файлов:
Помните разговор про версии? Вам нужен один из файлов с расширением .iso, который является образом установочного диска, надеюсь вы ещё помните, как выбрать нужный. Нажмите на название выбранного файла, и начнётся его загрузка на ваш компьютер.
Итак, вы получили из интернета образ установочного диска с Ubuntu, что же с ним делать дальше?
Запись образа диска с Ubuntu
Однако иногда требуется установить Ubuntu на компьютер, у которого отсутствует CD-привод. Существует огромное количество способов это сделать, но самым распространённым и удобным является установка с USB флешки. Для того, чтобы воспользоваться таким способом установки, вам нужна флешка минимум на 1Gb для Desktop CD версии, или на 4Gb для DVD, и, кроме того, ваш компьютер должен поддерживать загрузку по USB.
Дождитесь окончания копирования и не забудьте безопасно извлечь флешку из компьютера. Для Windows так же существует подобная программа, которая называется Unetbootin, но про неё я подробно рассказывать не буду. Кроме того есть Windows-версия usb-creator , найти её можно на установочном диске Ubuntu Netbook Remix.
Надеюсь, вы разобрались с чего устанавливать новую систему, а теперь вас поджидает сюрприз:
Установка Ubuntu 20.04 рядом с Windows 10
С пустя много лет Ubuntu остается наиболее известным и качественным дистрибутивом на ядре Linux . Разрабатываемая компанией Canonical , операционная система собрала вокруг себя огромное количество поклонников, благодаря чему в интернете в открытом доступе есть множество материалов по решению практически любой проблемы, которая может возникнуть в процессе знакомства и работы в ней. И этот сайт н е исключение.
Возможно , установка Ubuntu может по казаться чем-то сложным и непонятным (особенно если вы до этого не сталкивались с подобным ) . Н а самом деле это не так. Э тот процесс не намного сложнее установки любой программы или той же Windows 7 , разве что чуть более ответственный . Самыми сложными для вас , вероятно , будет смена порядка загрузки компьютера и разметка жесткого диска. Остальное, по большей части, сводится к нажатию кнопки «Продолжить».
В этом руководстве рассмотрим установку Ubuntu как на компьютеры со старым BIOS+MBR , так и UEFI+GPT .
Для того, чтобы установка Ubuntu не была для вас простым повторением инструкции, а осознанными действиями, в статье в некоторых местах, я буду делать отступления для пояснения или справки. И если вы готовы, давайте начинать!
Скачиваем образ
Операционные системы, будь то Ubuntu или какой — нибудь другой Linux и ли та же Windows, распространяются в виде так называемых «образов». Это файлы с расширением « iso » которые после скачивания записываются на диск или флешку для дальнейшей установки ОС .
Образ Ubuntu 20.04 можно скачать с официального сайта. Для более быстрого скачивания рекомендую загрузить ее с помощью торрента.
Caninical выпускает новую версию ОС каждые полгода — в апреле и октябре, от этого получается и номер версии: год.месяц. То есть: Ubuntu 20 .04 это выпуск апреля 20 20 года. Кроме того, у каждого выпуска имеется кодовое имя, состоящее с двух слов: имени животного и его качества, которые начинаются на одну букву. Например, кодовое имя будущей Ubuntu 20 .10 — Groovy Gorilla ( Крутая горилла ).
Каждые два года, апрельский выпуск Ubuntu получает длительный период поддержки, который обозначается аббревиатурой LTS (Long Term Support). Период поддержки LTS релиза 5 лет. Остальные версии Ubuntu поддерживаются 9 месяцев. В LTS релизы разработчики стараются не включать новых недоработанных компонентов, чтобы версия была максимально стабильной. Поэтому все важные нововведения получают обычные выпуски и потом это дорабатывается до нового LTS. Так не LTS релизы, в какой-то степени можно назвать экспериментальными.
Создание установочно го носителя
После загрузки iso образа его необходимо записать с помощью специальной программы на флешку. В итоге мы получим «LiveUSB».
LiveUSB — это операционная система, которая загружается со сменного носителя и не требует установки на диск. То есть тот диск, который вы запишете можно использовать не только для установки Ubuntu, но и для восстановления, в случае если у вас не будет возможности загрузить ОС с жесткого диска.
Для создания LiveUSB Ubuntu из-под Windows рекомендую воспользоваться программой Rufus об которой я писал в этой статье и в видео на канале. Это очень простая утилита, с помощью которой создание установочной флешки производится в пару кликов.
Для создания LiveUSB в Linux подойдет утилита UNetbootin .
Когда с записью установочн ого носител я будет закончено , останется только настроить компьютер на загрузку LiveUSB .
Настройка BIOS
Загрузочная флешка должна быть вставлена в компьютер!
Отключение Security Boot
В BIOS или UEFI (базовая система ввода вывода) современных компьютеров присутствует защита от несанкционированной записи в загрузочные области диска. На время установки её нужно отключить. Внеший вид экрана BIOS сильно зависит от производителя. Ваша задача — зайти BIOS, там найти пункт Security Boot и отключить его. Как войти в биос и отключить Security Boot — читаем тут.
Если у вас до сих пор не получилось войти в BIOS попробуйте поискать информацию в интернете введя модель вашего ноутбукка, или материнской платы – если ПК.
Выбор флешки, в качестве загрузочной
Дальше в биосе необходимо найти раздел « Boot » и в нем список доступных вариантов для загрузки. Необходимый пункт нужно поставить на первое место и сохранить настройки. После этого можно загружаться.
Приведу пример смены приоритета загрузки одного из моих ноутбуков
Как только ноутбук начинает загружаться, на две секунды появляется логотип производителя и в нижнем левом углу появляется строчка: Press F2 to enter Setup. После нажатия F2 открываются настройки BIOS. Вверху находятся пять вкладок: Information, Main, Security, Boot, Exit. С помощью клавиш влево-вправо переходим на вкладку Boot. Здесь находится список Boot priority order и доступные варианты: IDE, HDD, CD/DVD, PCI LAN, USB HDD, USB CDROM.
Для того, чтобы ноутбук загрузился с CD, необходимо клавишами вверх-вниз перейти на пункт CD/DVD и с помощью клавиши F6 переместить его на первое место. После этого нажимаем F10 для сохранения настроек и выхода из BIOS. Появиться всплывающие окно, для подтверждения жмем Enter. Ноутбук начнет загружаться.
Когда BIOS будет настроен, сохраняем изменения и выходим.
Начнем наконец установку Ubuntu 20.04 рядом с Windows 10.
Запуск компьют ера
После нажатия кнопки включения или перезагрузки компьютера, когда начнется загрузка Ubuntu с флешки, в нижней части экрана п оявится пиктограмма:
В этот момент нажимаем любу клавишу на клавиатуре, чтобы выбрать язык установщика и нажимаем «Enter»:
Появиться меню загрузчика:
Так как нам нужна установка Ubuntu, выберем пункт «У становить Ubuntu » после чего начнется загрузка:
На самом деле, можно выбрать и первый пункт «Запустить Ubuntu без установки» . В этом случае система загрузится полностью. Это позволит немного с ней познакомится. Затем с рабочего стола можно запустить установщик как обычное приложения и во время установки Ubuntu , продолжить пользоваться ПК (работать в приложения и.т.п.). Такой вариант может быть даже удобнее, но мы пошли путем попроще.
Что бы пропустить проверку файловой системы во время загрузки, нажмем Ctrl+C .
Когда вы будете запускать компьютер с UEFI первым, что появится, будет меню загрузчика GRUB :
Оставляем активным первый пункт и нажимаем Enter . Ждем пока ОС загрузится и затем в левой колонке ищем свой язык и выбираем «Установить Ubuntu » :
Выбор языка
З пустится окно установщика , который сразу предложит выбрать язык будущей системы. Выберем я рекомендую выбирать английский и нажимаем «Продолжить»:
Раскладка клавиатуры
Следующ им шагом будет выбор раскладки клавиатуры . Если вам нужен русский , – выберите его ). Зат ем жмем «Продолжить»:
Обновления и другие программы
Сейчас нам нужно выбрать какой набор ПО устано вить в Ubuntu :
- Стандартная установка — включает в себя плееры, офисный пакет, игры и т.п. В случае вы бора этого пункта после установки Ubuntu вы получите по лноценно работающий компьютер .
- Минимальная установка – лишь базовые утилиты, необходимые для обеспечения нормальной работы ПК.
По моему мнению, минимальный набор будет предпочтительнее (я все равно использую отличный от ста ндартного ) но , если вы новичок в мире Linux – выбирайте основной и дальше, по мере знакомства с Ubuntu уже будете корректировать его под себя. Поэтому предлагаю оставить как есть .
Также установщик предлагает установить сразу обновления, что сэкономит время после установки, но увеличит сам процесс установки Ubuntu . Если у вас в момент установки п одключен интернет, рекомендую оставить этот пункт отмеченным.
И, наконец, установщик предлагает установить дополнительное несвободное ПО . Сюда входят различные аудио и видеокодеки, драйвера для WI — FI адаптеров , видеоадаптеров и т.п .
По умолчанию в Ubuntu включено только открытое ПО, распространяемое под свободной лицензией. Однако не в сегда оно есть или корректно работает с оборудованием. Например, те же драйвера для WI — WI адаптеров.
Поскольку Canonical старается упростить переход и работу в Ubuntu , в образе дистрибутива присутствуют проприетарные элементы, одна к о для их установки необходимо согласие пользователя, которое и можно выразить на данном этапе.
Также рекоменду ю поставить на пункте галочку, после чего нажимаем «Продолжить»:
Тип установки
Следующи й шаг — выбор типа установки Ubuntu. Установщик предлагает три варианта:
- Установить Ubuntu рядом с Windows 10 — программа выберет один из разделов на жестком диске и предложит нам выбрать количество памяти под Ubuntu. После этого на выделенном месте будет создан один раздел, на который и будет установлена ОС. При этом Windows и все файлы будут сохранены. Этот вариант может подойти вам, если вы не желаете мучатся с разметкой дисков в ручную. Но размещать систему и файлы пользователя на одном разделе не есть хорошо. Поэтому этот вариант не рекомендуется использовать.
- Стереть диск и установить Ubuntu — все, что есть на жестком диске будет удалено. Тоже создастся один раздел и на него будет установлена система. Этот вариант тоже лучше не использовать .
- Другой вариант — нам самим необходимо будет создать разделы для Ubuntu. Самый сложный вариант из предложенных трех, но и лучший, так-как мы сами можем указать что и куда необходимо установить. Его и выбираем. Жмем «Продолжить».
Разметка диска
Перед любыми манипуляциями с жестким диском, делайте копию важных данных на другой носитель, чтобы в случае возникновения ошибок вы не потеряли их.
Запустится программа разметки:
Мы видим, что сейчас весь диск разбит на три ntfs раздела, это томы Windows:
- sda1 — скрытый раздел, который был создан автоматически, во время установки Windows;
- sda2 — раздел, на который установлена сама Windows (диск C);
- sda3 — здесь находятся файлы пользователя (диск D);
При установке Ubuntu на компьютер с UEFI GPT с Windows 10 жесткий диск будет разбит на 5 частей : р аздел для восстановления системы, раздел для загрузчика, раздел для служебных операций, диск C и диск D .
Для Ubuntu мы создадим два раздела:
- / — корневой. На нем будет находиться сама Ubuntu;
- home — домашний каталог. В нем будут храниться ваши файлы: изображения, музыка, видео и т.д. Так же здесь будут храниться пользовательские настройки программ.
Раньше рекомендовалось еще создавать раздел подкачки (swap), он использовался в том случае, когда компьютеру не хватало ОЗУ. Но в Ubuntu 20 .04 вместо swap раздела по умолчанию используется файл подкачки, поэтому swap раздел мы создавать не будем.
Освобождаем место под Ubuntu
Сначала необходимо освободить место для будущих разделов. Будем это делать за счет уменьшения размера диска D. Выделяем раздел sda3 и нажимаем кнопку «Изменить»:
Откроется окно «Изменить раздел»:
- Размер — я хочу уменьшить данный раздел до 20 Гб. Остальное место будет отдано Ubuntu. Для Ubuntu я рекомендую выделить как минимум 50Гб. Обратите внимание, что сюда вводиться размер диска D, а не размер, который мы хотим освободить.
- Использовать как — Журналируемая файловая система NTFS: так как это Windows раздел, оставляем ее родную файловую систему.
После выбора файловой системы стал активным пункт «Форматировать раздел» и появилось поле «Точка монтирования».
- Форматировать раздел — не отмечаем. В противном случае все данные с этого раздела будут потеряны.
- Точка монтирования — /windows. Это папка, в которой этот том будет подключат ь ся в Ubuntu .
Появится окно с предупреждением, которое означает, что если продолжить, то все изменения будут выполнены без возможности отмены:
Жмем «Продолжить» и видим, что появилось свободное место на 33 Гб и на против раздела sda3 появилась метка / windows :
Корневой раздел
Создадим корневой раздел. Выделяем свободное место и нажимаем плюс под ним:
Появится диалог создания раздела:
- Размер — для Ubuntu нужно около 10Гб, плюс к этому добавятся установленные вами программы и файл подкачки. Для комфортной работы я бы рекомендовал 50Гб.
- Тип нового раздела — логический. Из-за ограничения таблицы разделов, в которой хранится информация о разметке диска, на жестком диске нельзя создать больше 4 первичных разделов. Логических же можно создать множество.
- Местоположение нового раздела — начало этого пространства. Чтобы раздел был ближе к началу жесткого диска, а не к концу.
- Использовать как — журналируемая файловая система ext4. Ubuntu умеет работать с файловой системой Windows, но так-как все же это не родная Linux ФС, лучше выбрать что-нибудь более подходящее. На данный момент это ext4.
- Точка монтирования — /. Слешем обозначается корневой раздел.
При установке на компьютер с UEFI GPT действия будут аналогичными, кроме пункта « Тип нового раздела ». В этом случае необходимо выбрать вариант «Первичный» .
Нажимаем OK. Операция выполнится.
Домашний каталог
Д ля создания домашнего каталога проделываем те же шаги и выставляем такие настройки:
- Размер — под домашний каталог отдаем оставшееся место.
- Тип нового раздела — логический (для UEFI GPT — первичный).
- Местоположение нового раздела — начало этого пространства.
- Использовать как — журналируемая файловая система ext4.
- Точка монтирования — /home.
Нажимаем OK. В итоге у нас получилось пять разделов:
При установке Ubuntu на компьютер с UEFI GPT , для корректной загрузк и операционных систем в дальнейшем , системный загрузчик GRUB необходимо установить на специальный efi раздел , который называется « Windows Boot Manager » . Найдите его в поле «Устройство для установки системного загрузчика» . В моем случае это раздел dev/sda2 .
На этом разметка диска окончена, можно продолжать установку. Нажимаем « Установить сейчас » .
Появится окно для подтверждения внесения изменений:
Нажимаем «Продолжить» и начнется копирование файлов. В это время нужно будет указать дополнительную информацию.
Часовой пояс
Выберем свой часовой пояс, после чего жмем «Продолжить»:
Настройка пользователя
Теперь создадим пользователя. Для этого необходимо заполнить все поля :
Обратите внимание на « Имя пользователя » , это ваш логин. В отличии от вашего имени, его нужно писать латинскими буквами.
«Ваше имя» может быть написано и кириллицей, но поскольку во время установки сменить раскладку нельзя, пишем его латинскими буквами.
Также на данном шаге можно настроить автоматический вход в систему, если не желаете при каждом входе вводить свои учетные данные. Когда все заполните нажмите «Продолжить».
Окончание установки
На этом настройка Ubuntu закончена, осталось дождаться, когда все файлы будут скопированы и установлены на жесткий диск. А пока вы ожидаете, нам покажут небольшую презентацию новой Ubuntu:
После того, как установка Ubuntu 20.04 завершится, появится окно с предложением перезагрузить компьютер:
На этом установка Ubuntu 20 .04 рядом с Windows завершена. Когда компьютер будет выключаться вас попросят извлечь загрузочную флешку и нажать «Enter». Компьютер начнет перегружаться. Зайдите в BIOS и поставьте назад загрузку с жесткого диска на первое место, сохраните настройки и загрузите Ubuntu.
Обновление системы
После загрузки Ubuntu, нажмите CTRL-ALT-T, откроется терминал. В терминале введите:
sudo apt update
а затем
sudo apt upgrade -y
система вас попросит ввести пароль администратора, который вы вводили на этапе установки (вводимые символы отображаться не будут).
Система обновиться до последней версии текушего релиза.
Как видите – у становка Ubuntu 20.04 рядом с Windows 10 совсем не сложное дело. Система устанавливается быстро, а при использовании в это время интернета , по окончании вы получаете готовый к работе ПК со всеми обновлениями.
Тем не менее, х оть работать в ОС можно сразу же после установки, лучше потратить еще немного времени для ее настройки, чтобы работать было еще удобнее. На нашем сайте есть статья про настройку Ubuntu после установки.
Еще на нашем YouTube канале есть видеообзор в двух частях на LTS релиз — Ubuntu 16.04. И хоть многое с того момента изменилось, принципиально установка не поменялась:
Создаем свой загрузочный диск Linux
В статье описывается, как создать собственный загрузочный диск Linux (оптический диск или флешку), добавить в него только нужные программы и убрать все лишнее. Полученный образ в экспериментах занял менее 25 Мб. Он позволяет быстро загружаться, работать в текстовом режиме, создавать, редактировать, удалять файлы на разных файловых системах, имеет поддержку русского языка. За основу взят Debian.
Для того, чтобы создать загрузочный диск, необходимо создать его образ, iso-файл, который затем можно записать на оптический диск или флешку. В общем случае порядок загрузки выглядит следующим образом:
Порядок загрузки Linux
Подготовка
Для начала необходимо создать пустой каталог livecd, в котором будет проводиться дальнейшая работа. В нем необходимо создать подкаталог iso, в котором будет формироваться образ диска. Используемые в статье названия файлов и каталогов не являются обязательными. Если какое-то название является обязательным, об этом будет указано.
Добавление загрузчика UEFI
Для добавления загрузчика UEFI понадобятся файлы, которые могут отсутствовать на компьютере. Чтобы их получить, необходимо установить ряд пакетов:
Далее в каталоге livecd необходимо создать вспомогательные файлы:
Загрузчик добавляется командой:
В результате в каталоге iso появятся два файла: grub.cfg и efiboot.img.
Добавление загрузчика BIOS
На древних компьютерах UEFI отсутствует. Вместо этого там используется BIOS. Чтобы создаваемый диск мог загружаться на таких компьютерах тоже, необходимо добавить загрузчик BIOS. Для получения файлов необходимо установить ряд пакетов:
Далее в каталоге livecd необходимо создать вспомогательный файл (отступ не обязателен):
После этого нужно выполнить команды:
В результате в каталоге iso появится еще ряд файлов.
Создание образа и диска
Образ (файл livecd.iso) создается командой:
Далее эта команда будет называться (1). Образ записывается на оптический диск командой:
Образ записывается на флешку командой (будем считать, флешка является устройством /dev/sdz):
Указывать нужно саму флешку, а не раздел на ней, то есть /dev/sdz , но не /dev/sdz1 .
Удалить linux с флешки и отформатировать ее обратно можно командой:
Проверка работоспособности созданного образа
Проверить созданный образ можно как на настоящем компьютере, так и с помощью виртуальной машины. Например, в VMware можно создать новую виртуальную машину без жесткого диска, но с CD-приводом, в качестве образа указать файл livecd.iso. Переключение между UEFI и BIOS осуществляется в настройках этой виртуальной машины в разделе Options – Advanced – Firmware type.
Переключение между UEFI и BIOS в VMware
При загрузке в режиме UEFI отобразится меню загрузчика:
Загрузчик GRUB
Загрузчик попытается загрузить Linux, но поскольку он еще не добавлен, отобразится сообщение об ошибке «file /linux not found».
При загрузке в режиме BIOS отобразится меню загрузчика:
Загрузчик Syslinux
Поскольку Linux еще не добавлен, это меню уйдет в бесконечный цикл.
Добавление ядра Linux
Ядро Linux обычно хранится в каталоге /boot и представляет собой файл с названием «vmlinuz-XXX», где XXX — версия ядра. Добавить текущее ядро в создаваемый образ можно командой:
После этого в каталоге iso появится файл linux. Далее необходимо пересобрать образ командой (1), указанной выше в разделе «Создание образа и диска».
Чтобы не зависеть от версии ядра, указанной здесь командой « cp $(ls -t … » ядро не просто копируется, а переименовывается в linux без указания версии. Именно это имя файла указано вторым элементом в файлах grub.cfg и syslinux.cfg в строке « linux linux ». Если в каталоге /boot имеется несколько ядер, можно использовать любое, главное, запомнить его версию. Далее в статье будет рассматриваться использование текущего ядра.
После добавления ядра загрузчики UEFI и BIOS перестанут ругаться на его отсутствие и запустят его выполнение. В свою очередь ядро успешно запустится и, в условиях отсутствия файловой системы, выдаст сообщение об ошибке «Kernel Panic. Unable to mount root fs».
Добавление файловой системы
В данной статье в качестве корневой файловой системы рассматривается использование временной файловой системы, которая размещается в оперативной памяти (initramfs). Для ее создания необходимо создать в каталоге livecd подкаталог initramfs, в нем пустой файл с названием init. Файл с таким названием почему-то обязательно должен быть и находиться в корне файловой системы, иначе ядро проигнорирует такую initramfs. Далее необходимо выполнить команды:
В результате в подкаталоге iso появится файл init.ram. Его необходимо указать в файле grub.cfg, добавив перед закрывающей фигурной скобкой строку « initrd /init.ram ».
В конец файла syslinux.cfg нужно добавить строку « initrd init.ram» .
После этого необходимо пересобрать образ командой (1), указанной выше в разделе «Создание образа и диска». Теперь при загрузке Linux будет сообщать об ошибке «Kernel Panic. No working init found». В данном случае это сообщение означает, что ядро успешно запустилось и даже признало файловую систему initramfs, нашло в нем файл init и попыталось его запустить, но не получилось, потому что этой пустой файл.
Минимальный работающий init
В каталоге initramfs нужно создать следующую структуру файлов:
В initramfs должен получиться один подкаталог lib с двумя файлами в нем, одна символическая ссылка lib64 и один файл init. В скобках указано, какие файлы нужно взять из текущего работающего компьютера. Файлы должны быть исполняемыми. Далее необходимо пересобрать образ командами:
Далее эти команды будут называться командой (2).
Если все сделать правильно, получится минимальный работающий образ с командной строкой. В моем случае его размер составил чуть более 12 Мб. В командной строке не работают никакие команды, они будут добавлены позже. Если по-прежнему отображается сообщение об ошибке «No working init found», необходимо проверить:
Названия файлов, каталога и символической ссылки.
Права доступа: в каталог можно зайти, файлы должны быть исполняемыми.
Файлы предназначены для одной архитектуры x86_64. На некоторых компьютерах могут одновременно быть установлены 32 и 64 битные версии программ и библиотек. Узнать архитектуру файла можно командой objdump -p <имя файла> . В начале вывода должна быть строка типа «формат файла elf64-x86-64».
Если завершить работу командной строки командой exit , ядро выдаст ошибку «Kernel Panic. Attempted to kill init». Командная строка была первым и единственным процессом (PID=1) и после его завершения ядро не знает, что делать дальше.
Наполнение initfamfs простыми программами
Простой программой здесь называется программа, состоящая из одного исполняемого файла, например dash, mkdir, mount. В противоположность сложные программы содержат большое количество обязательных дополнительных файлов, например: текстовые, аудио и видеоредакторы, браузеры и т.п.
По сложившейся традиции программы размещаются в каталоге bin. В каталоге initramfs нужно создать подкаталог bin и скопировать туда файл ls из одноименного каталога работающей системы.
Многие программы в своей работе используют вспомогательные so-файлы (программные библиотеки), без которых они не запустятся. Узнать, какие so-файлы нужны программе, можно с помощью уже упоминавшейся команды objdump -p <имя файла> .
Вывод команды « objdump -p ls »:
Файл libc.so.6 в initfamfs уже есть, а вот файл libselinux.so.1 нужно найти на работающем компьютере и скопировать в каталог initramfs/lib к другим so-файлам. Список каталогов, в которых нужно искать требуемый so-файл, можно взять из файлов /etc/ld.so.conf и /etc/ ld.so.conf.d/*. Библиотека libselinux.so.1 в свою очередь также зависит от других библиотек. С помощью команды objdump -p libselinux.so.1 можно узнать, что кроме уже имеющихся файлов libc.so.6 и libc.so.6 дополнительно требуется libpcre2-8.so.0. На работающей системе этот файл представляет собой символическую ссылку на файл libpcre2-8.so.0.11.0. При копировании в initramfs можно оставить имеющуюся структуру, т.е. скопировать libpcre2-8.so.0 как символическую ссылку и далее скопировать файл libpcre2-8.so.0.11.0. Можно поступить по-другому и скопировать файл libpcre2-8.so.0.11.0, переименовав его в libpcre2-8.so.0. Команда objdump -p libpcre2-8.so.0 показывает, что каких-либо других so-файлов, отсутствующих в initramfs, больше не требуется. В результате должна получиться следующая структура каталога initramfs:
В скобках указана символьная ссылка.
При копировании so-файлов нужно не забывать проверять их архитектуру, если на компьютере есть файлы разных архитектур.
С помощью команды (2) из раздела «Минимальный работающий init» можно пересоздать образ, запустить и убедиться, что команда ls работает.
Автоматизация наполнения initfamfs простыми программами
В предыдущем разделе показано, что добавление простых программ требует рекурсивного поиска и копирования дополнительных so-файлов. Эту задачу можно автоматизировать, написав свой скрипт, либо используя программу copyso. При ее использовании достаточно указать требуемые для копирования программы, после чего выполнить еще несколько команд, чтобы сформировать оставшуюся часть структуры каталогов. В каталоге livecd необходимо заново создать пустой подкаталог initramfs и выполнить следующие команды:
Первая команда копирует программы dash, ls, ln, mkdir, cat, mount. Остальные нужны, чтобы правильно сформировать структуру каталогов.
Получившаяся структура каталогов
В скобках указаны символьные ссылки.
После этого можно командой (2) из раздела «Минимальный работающий init» пересоздать образ, запустить и убедиться, что добавленные команды работают.
Добавление программ посложнее
Универсальный способ копирования сложных программ в initramfs предложить сложно. В самый неожиданный момент времени такая программа может обратиться к какому-нибудь файлу, который нигде не указан, но подразумевается автором программы и даже создается при штатной установке. Описываемый в статье способ подразумевает копирование существующих программ, а не их полноценную установку. Однако можно предложить способ, основанный на особенностях deb-пакетов в операционной системе Debian. В каталоге /var/lib/dpkg/info есть list-файлы для каждого установленного пакета. В этих list-файлах содержится перечень файлов, созданных при установке пакета. Не все из них являются обязательными, но, как сказано выше, с каждым нужно разбираться индивидуально либо копировать все, что есть. Для копирования всего пакета можно использовать следующий скрипт:
В первой строке перечисляются нужные пакеты (в примере их два), дальнейшие команды копируют файлы. Последняя команда удаляет файлы, которые скорее всего не понадобятся.
Если добавить таким образом Midnight Commander (команда mc ), можно убедиться, что он запустится (условно). Скорее всего, таким вы его еще не видели.
Добавление модулей ядра
Модули ядра это файлы с расширением «ko», которые расположены в подкаталогах каталога /lib/modules/<версия ядра>/. Есть модули для работы с жесткими дисками, с разными файловыми системами, с устройствами USB и т.д. Составление перечня модулей, необходимых для каждого конкретного устройства, в данной статье не рассматривается. Предполагается, читатель знает, какие именно модули ему нужны.
Доя добавления нужных модулей в initramfs нужно скопировать их в формируемую файловую структуру с сохранением пути. Например, модуль для работы с жесткими дисками /lib/modules/6.0.0-6-amd64/kernel/drivers/scsi/sd_mod.ko нужно скопировать в initramfs/lib/modules/6.0.0-6-amd64/kernel/drivers/scsi/sd_mod.ko, создав недостающие каталоги (на момент написания статьи использовалось ядро версии 6.0.0-6-amd64).
Как и so-файлы, ko-файлы могут требовать для своей работы наличия других ko-файлов. Эти зависимости указаны в файле /lib/modules/<version>/modules.dep. В частности, sd_mod.ko зависит от scsi_mod.ko, scsi_common.ko, crc64.ko и других. Их также необходимо скопировать с сохранением пути и учетом того, что они, в свою очередь, могут зависеть от других модулей и так далее рекурсивно.
Эту задачу, как и предыдущую, можно автоматизировать, написав свой скрипт, либо используя программу copyko. При ее использовании для добавления модулей ядра необходимо выполнить команды:
Первая команда копирует модули ahci и sd_mod в initramfs. Вторая копирует информацию о модулях (функционале ядра), которые уже встроены в ядро. Последняя команда создает информацию о зависимостях модулей друг от друга. Стоит отметить, что речь идет только о дисках SATA. При работе в VMware, если жесткий диск представлен как SCSI, дополнительно необходим модуль mptspi. При работе с другими дисками, например NVMe, нужны свои модули. Также понадобится программа modprobe:
После обновления образа командой (2) можно загрузиться с него и проверить, что появился доступ к жесткому диску компьютера. Для этого в командной строке созданного образа необходимо выполнить команды:
При использовании других типов дисков, отличных от SATA, необходимо загрузить соответствующие им модули. После выполнения указанных команд в каталоге /dev/ появятся устройства типа sda, sda1, sda2, обозначающие найденные жесткие диски и разделы на них. Для автоматической загрузки всех имеющихся модулей можно использовать команду:
Использующиеся здесь программы find и basename нужно заранее добавить в образ. Чтобы эта команда выполнялась автоматически, нужно создать загрузочный скрипт:
Этот скрипт нужно сохранить в файл initramfs/init вместо созданной ранее символической ссылки, и сделать его исполняемым.
Помимо указанных двух модулей скорее всего понадобится множество других. Для автоматизации их добавления можно предложить скрипт:
Скрипт добавления популярных модулей
Настройка консоли
Далее приводится несколько рекомендаций, как настроить консоль образа, сделать ее более удобной. Для этого требуется программа настройки консоли:
Чтобы в Midnight Commander заработали клавиши со стрелками, необходимо добавить в образ нужный файл командами:
Чтобы Midnight Commander стал цветным, необходимо добавить цвета в образ:
Чтобы Midnight Commander не выдавал сообщение «Pipe failed» при попытке редактирования файлов:
Чтобы отображался текст на русском языке, нужно добавить русский шрифт:
а в скрипт «init» добавить команду загрузки шрифта:
Чтобы можно было вводить с клавиатуры текст на русском языке, нужно добавить русскую раскладку клавиатуры:
а в скрипт «init» добавить команду загрузки этой раскладки:
Чтобы в командной строке работали клавиши со стрелками, нужно вместо dash использовать bash.
Чтобы отображались имена файлов на русском языке, нужно добавить в образ локаль:
а в скрипт «init» добавить команду загрузки локали:
Итого
На основе представленной информации создан небольшой набор скриптов (2 шт.) для создания загрузочного диска. Для работы с ними необходимо: