Как сделать образ системы linux: Создание образа системы в Linux

Содержание

Создание образа системы в Linux

Клонирование — создание точной копии исходного носителя.
В данном случае клонировать нужно корневую файловую систему Linux.
Клонированная копия и образ — одно и то же.

Зачем это надо?

Если вы администрируете парк компьютеров с одинаковой конфигурацией и хотите установить на них дистрибутив Линукс. Устанавливаем на одной машине, а на другие просто клонируем. Если система «накрылась», вы сможете восстановить её исходное состояние развертыванием образа, где всё уже установлено и настроено под ваши нужды

Как создать образ:

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

/dev/sda — жесткий диск с рабочей системой, его будем архивировать

/dev/sda1 — раздел, содержащий корневую фс

dev/sdb1 — раздел на внешнем жёстком диске для архивации

1.-Перезагрузитесь в однопользовательском режиме (single)

2.-Введите команду mount, чтобы узнать, какой раздел содержит корневую файловую систему (в примере используется /dev/sda1).Образ этого раздела и нужно сохранить на другом носителе. Например на внешнем жестком диске.

3.-Подмонтируйте внешний HDD

Например,в каталог /mnt/image:
# modprobe usb_storage
# mkdir /mnt/image
# mount /dev/sdb1 /mnt/image

4.-Теперь перемонтируем корневую систему в режим «только для чтения» и создадим образ:

# sync
# mount -о remount.ro /
# dd if=/dev/sda1 of=/mnt/image/backup.bin
Готово.
Как восстановить систему из созданного образа:

Нужно иметь под рукой: загрузочный компакт-диск любого дистрибутива Linux. При использовании простого диска (не LiveCD) для перехода на текстовую консоль нажмите Ctrl + Alt + F2.

1.- Подмонтируем внешний винчестер:
# mkdir /image
# modprobe usb_storage
# mount /dev/sdb1 /image

При установке системы на пустой диск нужно создать разделы. При восстановлении после сбоя, ничего создавать не нужно. Лишь убедитесь в том, что раздел подкачки (Linux swap) создан.

2.- Развернем образ:
# dd if=/image/image.bin of=/dev/sda1
# mkdir /install
# mount /dev/sda1 /install
# chroot /install /bin/bash

Корнем становится каталог /install, к которому примонтирован новый HDD. В качестве командной оболочки выступает /bin/bash.
3.- Перезпишем загрузчик:

для LILO:

# liio

для GRUB:

# grub-install /dev/sdb

4.-Перезагрузим компьютер командой reboot. Копия системы восстановлена

Восемь утилит для создания своего собственного дистрибутива Linux – Блог админа

Все пользователи Linux начиная знакомиться с этой операционной системой рано или поздно начинают подыскивать себе дистрибутив который бы их устраивал в большей степени. Кому-то не нравится пакетный менеджер, кому-то ограниченность в настройках, кому-то требуется чтобы предустановленные пакеты были только те которые нужны самому пользователю, а не те которые выбрали разработчики дистрибутива, кто-то хочет готовый Live-образ или дистрибутив для быстрого развертывания на парке машин. Рано или поздно каждый задумывается — раз уж Linux такой открытый. А не попробовать ли мне самому создать дистрибутив своей мечты?

Ниже я расскажу о 8 утилитах которые помогут и облегчат работу по созданию собственного дистрибутива.

1. Linux Respin

Linux Respin это форк более неподдерживаемого Remastersys. Год назад Remastersys был самым популярным инструментом для создания собственного дистрибутива Linux  и/или создания резервной копии вашей операционной системы. Linux Respin не даёт тех же возможностей что и Remastersys, но всё еще великолепно вам подойдет, если вы используете один из дистрибутивов которые им поддерживаются. Linux Respin доступен только для Debian, Mint и Trisquel, что, конечно, ограничивает его популярность. Еще один жирный минус в этом инструменте — практически полное отсутствие документации.

2. Linux Live Kit

Linux Live Kit другой инструмент который вы можете использовать для создания своего дистрибутива или создания резервной копии ОС. Предпочитает Debian но к счастью замечательно работает и на других дистрибутивах если они обеспечивают поддержку ядерных модулей aufs и squashfs. Linux Live Kit очень короткий и удобный мастер по созданию дистрибутива – просто выполняйте инструкции шаг за шагов и всё будет готово.

3. Ubuntu Imager

Ubuntu Imager хороший инструмент для создания своего дистрибутива основанного на Ubuntu. Это не единственное такое приложение для Ubuntu, но так как оно хорошее, нельзя было его не упомянуть. Не буду детально останавливаться на его работе, так как для него есть ЧаВо с инструкциями по установке и работе.

4. Linux from Scratch

Если вы хотите иметь абсолютный контроль над тем, что включено в ваш дистрибутив, и у вас много свободного времени, вы можете взглянуть на проект Linux from Scratch. LFS имеет очень обширную документацию и является отличным учебным ресурсом про Linux в целом, а не только о том, как создать собственный дистрибутив. Linux from Scratch позволяет вам создать собственную систему Linux из исходных кодов. LFS это не совсем инструмент, как остальные в этом списке, но вы все равно можете использовать его с той же целью — создать свой собственный дистрибутив Linux (и много узнать о Linux в целом).

5. Slax Modules Tool

Если вы ищете простой в использовании инструмент, и вам нравится легковесный дистрибутив Slax — в основе которого Slackware, то вам повезло! Потому что у Slax есть онлайн-инструмент, который вы можете использовать для выбора модулей, которые вы хотели бы включить в свой дистрибутив. Я использовал этот инструмент в прошлом много раз, когда я хотел создать легкую живую систему для моих друзей, и она работает просто удивительно. Просмотрите категории программного обеспечения и выберите нужные приложения. Добавьте их в сборку. Не беспокойтесь, если вы пропустите что-то, так как всегда сможете добавить больше приложений после создания и запуска дистрибутива.

6. Live Magic

Live Magic еще одна утилита Debian для создания дистрибутива. Она может создавать CD, USB, и сетевые образы. Его гораздо проще использовать, чем некоторые другие приложения в этом списке, такие как Remastersys, но он не использует вашу работающую систему как основу для создания образа. Вместо этого следуйте указаниям мастера и выберите свои параметры конфигурации. Программа вытащит пакеты из ваших репозиториев и добавит их в ваш образ.

7. Instalinux

Изюминка Instalinux в том, что он позволяет создавать образы ISO  онлайн. На сайте можно выбрать на каком дистрибутиве будет основан ваш (это CentOS, Debian, Fedora, Mint, OpenSUSE, Scientific, и Ubuntu), какую версию это дистрибутива использовать и какие пакеты. Instalinux создает небольшой загрузочный ISO (в среднем 30mb) который после загрузки начнет установку и получит все остальные необходимые пакеты из интернета. Это самый универсальный инструмент из списка, к тому же веб-интерфейс прост в использовании. Однако он не предоставит вам live-образ с готовым рабочим окружением и рабочим столом.

8. SUSE Studio

Для пользователей SUSE лучший выбор SUSE Studio. Немного похоже на Instalinux, SUSE studio позволяет вам используя веб-интерфейс создать свой собственный дистрибутив на основе SUSE. Доступно создание образов для CD, DVD, USB, жестких дисков, VMware, VirtualBox, и Xen. Перед использованием вам потребуется создать  аккаунт – это просто, так как используется Single Sign On, и вы быстро можете зарегистрироваться используя ваш аккаунт Google, Facebook, и т.п. Вы сможете выбрать какая версия SUSE будет использована как основа, серверная редакция или нет, и какое окружение рабочего стола будет включено в сборку.

В заключении.

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

Создаем копию Linux и восстанавливаем её после сбоя с помощью Clonezilla

Давеча, решил я поставить себе Linux Debian, для этого выделил на жестком диске, свободное место, чтобы не навредить уже установленным версиям Windows. Опыт по установке, нескольких операционных систем уже был, поэтому не страшась приступил к делу. Проблем при установке практически не возникало, только установка длилась слишком долго, скачивались обновления и т.д., и т.п.

В общем загрузившись, начал первое знакомство, с терминалом, вводя разные команды, пробуя разные варианты из Интернета. Вспоминая свой предыдущий опыт работы с Linux, решил подстраховать себя от своих “кривых рук” создав рабочую копию (образ) раздела с операционной системой Linux.

Для создания и восстановления образа операционных систем семейства Windows, я использую программу Acronis True Image, однако для операционных систем семейства Linux она не годится.

Почитав в Интернете и опробовав несколько вариантов, я остановился на Clonezilla — это бесплатная программа, которая может создать точную копию (образ) жёсткого диска или его отдельного раздела. Программа работает и запускается в своей собственной загрузочной операционной среде, с помощью USB-диска, CD-ROM или DVD-ROM носителя.

Clonezilla поддерживает практически все файловые системы, имеет не высокие системные требования, сайт с подробной документацией и постоянные обновления.

1. Скачиваем ISO образ программы Clonezilla.
2. Скачиваем утилиту Tuxboot, для создания USB-носителя.

Предварительно USB-носитель необходимо отформатировать в файловую систему FAT32.

3. Вставляем USB-носитель в компьютер, запускаем утилиту Tuxboot, указываем путь к файлу ISO, затем выбираем в проводнике, предварительно отформатированный USB-носитель и нажимаем кнопку OK. Ждем окончания процесса копирования файлов и создания загрузчика на USB-носителе (Флешки).

4. Перезагружаем компьютер, предварительно выставив в BIOS, загрузку с USB-носителя.

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

5.  Перед вами главное окно программы Clonezilla, если в течении 30 секунд, Вы не сделаете выбор, программа загрузится по умолчанию.

6. Выберите нужный язык, нажав клавишу Ввод (Enter) или нажмите кнопку OK мышкой.

7. Если вам необходимо, изменить конфигурацию клавиатуры, выберите “Сменить раскладку клавиатуры” и укажите нужную. В противном случае оставьте все по умолчанию, для продолжения нажмите кнопку OK.

8.  Выберите “Запуск Clonezilla” и нажмите кнопку OK.

9. Для выбора режима работы утилиты Clonzilla, выделите нужный вариант и нажмите кнопку OK. Если необходимо выбрать несколько вариантов, нажмите клавишу пробел и выбранный пункт будет помечен звездочкой.

  • device-image – Позволит Вам сделать образ (копию) всего жесткого диска или одного из разделов в файл.
  • device-device – Позволит Вам сделать образ (копию) всего жесткого диска или одного из разделов на второй жесткий диск или раздел.
  • Остальные — Это варианты удаленного копирования образа по сети или Интернет.

10. Для создания образа (копии) необходимо указать устройство, с которого и на который будут читать и сохранять данные. Например, это могут быть, внешние и внутренние жесткие диски, USB-носители и др.

Так как мы будем использовать внешний жесткий диск, то выбираем “local_dev” и нажимаем кнопку OK.

11. Теперь вы можете подключить USB-носитель к компьютеру, конечно если не сделали это заранее. После подключения, подождите несколько секунд и нажмите клавишу Ввод (Enter).

12. Перед вами устройства хранения данных, которые были обнаружены Clonezilla при сканировании. Для продолжения нажмите сочетание клавиш CTRL+C.

В моем примере это внешний жесткий диск «Transcend Samsung…640GB».

13. Теперь необходимо указать устройство или раздел, на котором будет создаваться (размещен) наш образ. Выделите нужное устройство и нажмите Ввод (Enter) или кнопку OK.

14. Если необходимо поместить создаваемый образ в какой-нибудь каталог, то перейдите в него и нажмите кнопку Done.

По умолчанию образ будет создан в корневом каталоге подключенного устройства или раздела жесткого диска.

15. Для продолжения нажмите Ввод (Enter).

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

16. Но я всегда предпочитаю “Экспертный уровень”, он позволяет более гибко настроить систему. Итак, выбираем режим «Expert» и нажимаем кнопку OK.

17. Выбирайте режим saveparts – так как сохраняем один раздел с Linux как образ, на внешний жесткий диск.

Режим savedisk –  позволяет создать образ всего жесткого диска (со всеми разделами).

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

19. На снимке с экрана выше, вы видите все разделы моего жесткого диска, выбираю раздел ”sda10” с Linux нажав клавишу пробел и отметив звездочкой, для продолжения нажимайте кнопку OK или Ввод (Enter).

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

21. Включить дополнительные параметры по работе с разделами, вы можете здесь. Для простого копирования и восстановления настройки оптимальны, для продолжения нажимайте кнопку OK или Ввод (Enter).

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

23. По умолчанию установлен размер образов 4096 Мбайт для файловой системы FAT32. Я предпочел не разбивать файл образа на несколько томов, поэтому указал размер 1 000 000, для продолжения нажимайте кнопку OK или Ввод (Enter).

24. Включить проверку и восстановление файловой системы Linux вы можете здесь. По умолчанию проверка пропускается, для продолжения нажимайте кнопку OK или Ввод (Enter).

25. Очень полезная функция проверки сохранённого образа, по умолчанию проверка включена, для продолжения нажимайте кнопку OK или Ввод (Enter).

26. Если вы заботитесь о конфиденциальности, то можете включить шифрование создаваемого образа, по умолчанию шифрование отключено, для продолжения нажимайте кнопку OK или Ввод (Enter).

27. Действие (ничего, перезагрузка, выключение) которые программа Clonezilla предпримет после создания или восстановления образа, по умолчанию действие отключено, для продолжения нажимайте кнопку OK или Ввод (Enter).

28. Все действия и настройки сохранены, программа Clonezilla выводит подробную информацию на экран и ждет подтверждения начало работы, для продолжения нажимайте Ввод (Enter), затем введите букву “y” и снова нажимайте Ввод (Enter).

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

И так, мы закончили создание образа одного из разделов жесткого диска на котором была установлена операционная система Linux Debian.

Теперь, чтобы восстановить образ (копию) созданного раздела, необходимо повторить, до пункта 12 все шаги, описанные выше.

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

Создание образа жесткого диска Linux

Создание образа жёсткого диска Linux удобно и быстро копирует систему и данные ОС Linux. Например, образ Linux Mint будет содержать не только саму ОС и приложения, но и все настройки. Handy Backup предлагает различные способы создания образов для Linux.

Плагины Disk Image и System Recovery, в настоящий момент доступны для работы только из-под ОС Windows. Вы можете сделать образ диска Linux с помощью любого из этих плагинов, работая с ним из-под Windows, как с неактивным системным диском.


Плагин System Recovery

Этот плагин позволяет посекторно сделать для Linux образ диска со всеми разделами (включая раздел подкачки) в виде виртуального диска (VHD). Такой диск можно просмотреть, записать образ Linux на флешку, подключить к виртуальной машине и т.д.

Плагин Disk Image

С помощью этого плагина можно сохранять не только образ диска Linux, но и сведения об отдельных разделах, во внутреннем двоичном формате. Этот способ отлично подходит, чтобы выполнять для Linux создание образов разделов жёсткого диска, в т.ч. по сети.

Заинтересованы в плагинах System Recovery и Disk Image для Linux версии Handy Backup?

В настоящий момент в версии Handy Backup для Linux нет плагинов System Recovery и Disk Image. Заполните форму обратной связи и напишите ваши пожелания по поводу добавления данных плагинов в версию Handy Backup Linux, чтобы создавать образ диска с Linux непосредственно на локальной машине под управлением ОС Linux!

Заявка на добавление плагина для создания образа диска Linux

Доступная для бесплатной загрузки во всех решениях Handy Backup, кроме Standard, утилита Disaster Recovery позволяет записать образ Linux на флешку, а затем восстановить этот образ на любой машине без участия загрузочной ОС или Handy Backup (т.н. восстановление «на голое железо»).

Примечание: утилита Disaster Recovery не требует для работы загрузки компьютера с жёсткого диска и использует собственный загрузочный диск ОС на базе Slax 9. Эта программа работает только на локальных компьютерах, требуя физического подключения USB диска.

Программа Handy Backup позволяет сделать образ диска Linux с использованием различных средств автоматизации работы, в том числе таких инструментов:

  • Встроенный модуль расписания, позволяющий задать режим создания образа жёсткого диска Linux с запуском в точное время, через заданные интервалы времени или при наступлении системного события.
  • Средства сжатия и шифрования, позволяющие защитить образ Linux от несанкционированного доступа, а также использовать различные защищённые хранилища для хранения образа системы Linux в безопасном месте.
  • Различные методы управления созданием образа диска Linux, такие, как «горячая» запись образа системы Linux без остановки работы, запуск в режиме службы, управление версиями и пр.

Узнать подробнее о функциях бэкапа и создания образа дисков Linux в Handy Backup.

Чтобы сделать образ диска Linux, пожалуйста, выполните следующую инструкцию:

  1. Откройте Handy Backup и создайте новую задачу с помощью кнопки на главной панели или меню.
  2. На Шаге 1 выберите задачу резервного копирования, нажмите «Далее».
  3. В разворачивающемся списке Disk Clone на левой панели щёлкните по плагину System Recovery.

Перед тем, как снять образ диска Linux по сети*, выберите машину, с которой вы осуществляете создание образа жёсткого диска Linux, из выпадающего списка в верхнем левом углу окна Шага 2.

  1. В диалоге выбора дисков отметьте «галочкой» системный диск, с которого вы собираетесь сделать образ Linux.
  2. Нажмите «OK» и вернитесь к Шагу 2. Нажмите «Далее» для продолжения.
  3. Продолжайте создавать задачу резервного копирования. Все остальные шаги по созданию новой задачи не отличаются какой-либо спецификой при создании образа диска Linux.

* Машина и установленный на ней Сетевой Агент в момент создания образа жёсткого диска Linux должны находиться под управлением Windows, так же, как и для локальной версии.

Вы можете не только записать образ Linux на флешку, но и поместить его в любое современное хранилище данных (включая локальные и сетевые диски, устройства USB, серверы FTP/ SFTP/ FTPS, облачные сервисы с протоколом WebDAV, облака Amazon S3, Google Диск, Яндекс Диск и др.).

Предупреждение! Перед тем как сохранить образ системы Linux в хранилище, убедитесь, что выбранное хранилище имеет достаточно свободного места, чтобы вместить в себя файлы образа! Так, образ диска Linux Mint в рабочей системе может иметь размер от 15 до 50 Гб и более.

Читайте также:

Cоздание своего дистрибутива Linux с помощью Remastersys

ВВЕДЕНИЕ

Прежде чем делать свою сборку, Вы должны определить цель и задачи своего творения. Иначе сборка может не получить своё предназначение в этом мире и остаться малоизвестной.Итак, цели и задачи определены и Вы решились сделать сборку своей системы.
Для начала Вы должны либо в Virtualbox (или в другой виртуальной машине), либо у себя на компьютере установить операционную систему со всеми настройками, со всеми программами, которые считаете нужными иметь в Вашей сборке.
Теперь, когда всё настроено и установлено, будем создавать свою сборку. Для этого нам в первую очередь необходимо свободное место на разделе с папкой /home не менее 6 ГБ.
Для создания сборки есть несколько инструментов. Мы будем говорить о Remastersys, который позволяет создать полноценную сборку даже не очень продвинутому пользователю.
Все действия дальше описаны для Ubuntu, но подходят для всех Debian совместимых дистрибутивов.

1. УСТАНОВКА

Для установки Remastersys необходимо скачать и установить вручную , например, через программу gdebi, 2 пакета: remastersys_3.0.x-2_all.deb и remastersys-gtk_3.0.x-2_all.deb
Для Ubuntu 10.04 — 14.04 скачать отсюда
Для Ubuntu 16.04 — 17.04 скачать отсюда
Для Ubuntu 17.10 скачать отсюда
Для Ubuntu 18.04 скачать отсюда

2. ПЕРВЫЕ ШАГИ

Запускаем Система ⇒ Администрирование ⇒ Remastersys (Я использую Мате 1.6. С другими рабочими столами расположение может отличаться). Видим вот такое окно:

Коротко об основных кнопках:
Backup — полная резервная копия установленной системы, включая пользовательские данные и настройки. Сохраняется полностью все файлы в домашних каталогах пользователей системы.
Dist — резервная копия только установленной системы, БЕЗ пользовательских данных. Самый оптимальный вариант для создания сборки системы. Создается структура загрузочного диска и образ диска(iso).
Distcdfs — то же, что и Dist, но создается структура загрузочного диска без создания образа диска(iso).
Distiso — создает образ диска(iso), при условии готовой структуры загрузочного диска. Применяется только после Dist или Distcdfs.
Очистить — очистить временную папку программы. Используется для очищения папки перед созданием нового образа.

Переходим во вкладку Settings:

Здесь мы видим параметры нашей будущей сборки. Рассмотрим самое необходимое.
Username — имя пользователя по-умолчанию при входе в систему LiveCD.
CD Label — метка диска. Высвечивается название при загрузке диска в CD-привод. Ограничение 32 символа, учитывая пробелы.
Filename — имя файла созданного образа.
Остальное пока трогать не будем.
Итак зададим:
— Имя пользователя в строке Username, скажем, alex;
— Придумаем название нашей сборки и запишем в CD Label, допустим, AlexBuntu;
— В строке Filename запишем имя файла сборки, AlexBuntu-12.04-x32.iso.
Должно получится следующее:

Галочка в строке Show install icon on Backup mode desktop создает иконку установки Вашей системы на рабочем столе. Опция работает на всех основных рабочих столах.

Теперь переходим на вкладку Actions:

Нажимаем кнопку Dist. Появится окно:

Жмем ОК. Появится окно:

Всё, теперь можете спокойно и не торопясь попить чай или кофе. Минут через 15 — 60 (всё зависит от мощности ПК) появится сообщение:

Поздравляю Вас с первой Вашей сборкой!
Файл сборки находится по адресу /home/remastersys/remastersys и имеет то имя, которое Вы дали своей сборке. В моем случае это файл AlexBuntu-12.04-x32.iso. В этой же папке есть еще текстовый файл контрольной суммы образа с расширением md5, в моем случае файл AlexBuntu-12.04-x32.iso.md5.
Теперь Вы можете записать свою сборку на диск и насладиться своим творением. Возможно при входе в систему с LiveCD придется ввести имя пользователя, которое было выбрано при создании образа, в моем случае это alex. Пароль оставьте пустым.

3. РАСШИРЕННЫЕ ВОЗМОЖНОСТИ

Многих устроят выше описанные главы. Если Вы всё еще читаете, то Вы действительно хотите познать все тонкости создания сборки, приближенной к профессиональной.
В первую очередь коснемся вкладки Settings и рассмотрим остальные нужные строки.
Working directory — рабочая папка программы. Вы можете ее переназначить в любое место и на любой раздел.
Ну и самая важная строчка настроек Squashfs options.
Remastersys использует для создания дистрибутива возможности SquashFS. Чтобы понять весь смысл данной строки предлагаю Вам рускоязычный блог , в котором прекрасно изложен весь смысл этого мощнейшего инструмента.
После изучения всех возможностей добавим в нашу строчку Squashfs options следующие опции: -comp xz.
Строчка должна иметь вид:

Эта опция устанавливает алгоритм компрессии xz вместо gzip по-умолчанию, что сожмет нашу сборку примерно на 20-25% лучше.Эта опция доступна с версии squashfs 4.2 и, например, в Ubuntu 10.04 она не доступна. В версии Ubuntu 12.04 установлена нужная версия 4.2 squashfs.
Чтобы проверить, доступна ли эта опция, наберите в терминале mksquashfs. Если вы видите похожее на следующее:


mksquashfs
SYNTAX:mksquashfs source1 source2 … dest [options] [-e list of exclude dirs/files]

Filesystem build options:
-comp <comp> select <comp> compression
Compressors available:
gzip (default)
lzo
xz


то всё в порядке и использовать опцию -comp xz можно смело.

С версии 3.06 включение компрессии xz вместо gzip заменено на вкл./выкл. флажка

4. ЗАГРУЗОЧНОЕ МЕНЮ

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

Вот такое меню можно получить после некоторых манипуляций:

Такое загрузочное меню используется в одной из моих сборок. Как видим, картинка изменена и меню русифицировано. Кроме всего прочего я убрал название дистрибутива из меню и написал его в GIMPe яркими красками. Сейчас мы с Вами и займемся заменой картинки и русификацией меню. Для этого нам потребуется обратить внимание на содержимое файлов в папке /home/remastersys/remastersys:

Здесь нас интересует папка ISOTMP. В этой папке хранятся временные файлы программы Remastersys. Этим мы и воспользуемся. Переходим в эту папку:

Структура данной папки очень похожа на структуру образа диска. Не хватает только папки .disk. В папке isolinux хранятся файлы загрузочного меню. Заходим в нее:

Рассмотрим файлы загрузочного меню:
splash.png — фоновое изображение. Размер изображения 640х480 точек на дюйм.
isolinux.cfg — конфигурационный файл загрузочного меню.
vesamenu.c32, isolinux.bin — системные файлы.
Смело меняем фон загрузочного меню на свой. Тип файла и название должно остаться таким же. Размер изображения обязательно 640х480 точек на дюйм.
Далее я выложил листинг отредактированного конфигурационного файла isolinux.cfg. За основу взят стандартный конфигурационный файл Remastersys. Я постарался максимально понятно написать комментарии к строкам. Почти вся информация в интернете на английском языке и очень краткая, поэтому много времени потратил на эксперименты, чтобы узнать, что и как работает.

default vesamenu.c32
prompt 0
timeout 100
font cyr_a8x16.psf
# Фон загрузочного меню
menu background splash.png

# Цвет имеет первые два регистра прозрачности значение от 0 (прозрачно) до 255 (непрозрачно) в HEX.
# Остальные 6 цифр цвет в режиме HEX (код цвета можно взять из GIMPa). Сначала пишется цвет букв, потом фона, потом 3 режима тени (none, std, all)

# Цвет заголовка
menu color title * #ff00923F #00000000 none
# Цвет оконтовки меню (бордюра)
menu color border * #00000000 #00000000 none
# Цвет выбранной строки меню
menu color sel * #7fffffff #00000000 none
# Цвет невыбранной строки меню
menu color unsel * #ffC4613B #00000000 none
# Цвет неактивной строки (отключенной но отображающейся на экране)
menu color disabled * #ffC4613B #00000000 none
# Цвет строки tabmsg расположенной под меню (с надписью Нажмите ENTER для загрузки или TAB для редактирования меню)
menu color tabmsg * #ffCC623E #00000000 none
# Цвет строки timeout (с надписью Автоматическая загрузка начнется через)
menu color timeout_msg * #ffCC623E #00000000 none
#Отступ с верху, строк
menu vshift 1

#Количество строк меню
menu rows 6

# Положение строки tabmsg
menu tabmsgrow 11
# Положение строки timeout
menu timeoutrow 12
menu AUTOBOOT Автоматическая загрузка начнется через # сек
menu tabmsg Нажмите ENTER для загрузки или TAB для редактирования меню
menu cmdlinerow 11

#Ширина меню, количество символов
menu width 80

#Отступ символов слева от края (как табуляция)
menu margin 12


#menu title Ubuntu 12.04 Desktop Mate 1.6
label live
# menu label live - boot the Live System
menu label Загрузить систему с LiveDVD диска
kernel /casper/vmlinuz
append file=/cdrom/preseed/custom.seed boot=casper initrd=/casper/initrd.gz quiet splash --

label install
menu label Установить Ubuntu 12.04 LTS Mate 1.6
kernel /casper/vmlinuz
append file=/cdrom/preseed/custom.seed boot=casper only-ubiquity initrd=/casper/initrd.gz quiet splash --
# Сделать строку меню не активной
# menu disable

label check
menu label Проверить диск на ошибки
kernel /casper/vmlinuz
append boot=casper integrity-check initrd=/casper/initrd.gz quiet splash --

label memtest
menu label Проверить память
kernel /install/memtest
append -

label hd
menu label Загрузиться с первого жесткого диска\\
localboot 0x80

Кодировка файла isolinux.cfg должна быть обязательно CP 866. Можно сохранять и редактировать в Cooledit (текстовый редактор Midnight Commandera), в OpenOffice и др. Взять мой отредактированный файл isolinux.cfg можно здесь.
Кроме этого нужно положить в папку isolinux шрифты поддерживающие русский язык. Взять можно отсюда.
В папке должно получится следующее:

Проверьте права доступа файлов должно быть следующее для всех 5 файлов:

Теперь все приготовления закончены. Запускаем Remastersys:

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

5. ОЧИСТКА СБОРКИ ОТ «ЛИШНЕГО»

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

sudo apt-get autoremove
sudo apt-get clean

Первая команда автоматически удалит все неиспользуемые пакеты.
Вторая команда удалит скачанные файлы пакетов в архиве.

Теперь воспользуемся программой Synaptic и удалим все ненужные настройки, оставшиеся после удаленных пакетов. Открываем Synaptic. В открывшемся окне внизу выбираем группу фильтров «Состояние».
Выбираем фильтр «Не установленные (остались файлы настроек)», выделяем все пакеты, попавшие в этот фильтр. Правой клавишей мыши на выделенном выбираем в меню «отметить для полного удаления» и жмем «Применить».

Здесь же в этой группе фильтров удалите пакеты под фильтром «Установленные (авто удаляемые)«
Если фильтры «Не установленные (остались файлы настроек)» и «Установленные (авто удаляемые)» отсутствуют, значит система уже прошла чистку и под данные фильтры ничего не попадает.

Следующий инструмент очистки — программа BleachBit из стандартного репозитория. Интерфейс программы на русском языке, очень доступен для понятия, что Вы будете делать. Также перед очисткой есть кнопка «Предпросмотр», которая покажет, что будет удаляться, и позволяет сделать изменения до удаления. Программа очень эффективно чистит систему от ненужных файлов , а также умеет удалять неиспользуемые языковые файлы. В моей сборке программа удалила около 300 МБ.

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

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

С версии 3.06 и выше временные файлы удаляются автоматически

/var/backups
/var/cache/apt/ — не удалять папку archives
/var/cache/apt/archives — не удалять папку partial и файл lock
/var/cache/apt-xapian-index
/var/cache/flashplugin-installer
/var/crash
/var/lib/apt/lists — не удалять папку partial и файл lock
/var/lib/update-notifer/ — не удалять папки package-data-downloads и user.d
/var/lib/update-notifer/package-data-downloads — не удалять папку partial и файл lock
/var/lib/update-notifer/user.dудалять все файлы обязательно, иначе выдает окно ошибки
/var/tmp

Remastersys в начале установки копирует содержимое папки /var в свою временную папку /home/remastersys/remastersys/dummysys/var, откуда потом и включает в сборку файлы. Учитывая, что после копирования Remastersys проводит еще подготовительные операции, у нас есть примерно 5 минут удалить лишнее из папки /home/remastersys/remastersys/dummysys/var. Тем более, что даже, если мы удалили из папки /var/cache/apt файлы, они всё-равно создаются и копируются в папку /home/remastersys/remastersys/dummysys/var/cache/apt , утяжеляя сборку.
В эти же 5 минут у Вас есть возможность почистить папку /root. В ней оставляйте только те файлы, которые есть в папке /etc/skel и папку Desktop.

6. СОВЕТЫ И РЕКОМЕНДАЦИИ

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

  • Настройки новых пользователей хранятся в папке /etc/skel. Если Вы хотите, чтобы все пользователи имели какие-то одинаковые настройки отличные от по-умолчанию(дефолтных), то копируйте нужные файлы из своей папки /home/[ваш логин входа в систему] в эту папку, не забывая менять права со своих на права root. Всё подряд копировать туда не нужно, это может привести к определенным конфликтам. Обычно для каждой программы это 2-3 файла настроек. Помните, чем меньше вы туда скопируете, тем профессиональнее будет сборка и меньше проблем у пользователей.

  • Программы запуска для всех пользователей отредактировать, добавить, удалить лучше в папке /etc/xdg/autostart, не засоряя папку /etc/skel

  • Если Вы хотите сделать сборку с рабочим столом отличным от имеющегося в дистрибутиве, то лучше воспользоваться минимальной сборкой без графического окружения, включающей в себя ядро и самый минимум пакетов, который позволяет запускает систему в режиме консоли. И уже поверх этой системы доустанавить нужные пакеты и проводить нужные настройки. Такой метод имеет меньше ошибок, чем если брать готовую полную сборку и пытаться выпилить из нее ненужное.
    Здесь все возможные mini.iso для Ubuntu от релиза 12.04 до 16.04 https://help.ubuntu.com/community/Installation/MinimalCD

Удачи! И пусть мир узнает Ваши творения!

Ссылки

Создание образа системы в Linux

О создании точной копии виндовс мы уже говорили в статье «о сохранности даннных». Теперь займёмся клонированием Linux

Краткая терминология:

Клонирование — создание точной копии исходного носителя.
В данном случае клонировать нужно корневую файловую систему Linux.
Клонированная копия и образ — одно и то же.

Зачем это надо?

Если вы администрируете парк компьютеров с одинаковой конфигурацией и хотите установить на них дистрибутив Линукс. Устанавливаем на одной машине, а на другие просто клонируем. Если система «накрылась», вы сможете восстановить её исходное состояние развертыванием образа, где всё уже установлено и настроено под ваши нужды.

Как создать образ:

Во избежание недоразумений оговорим те разделы и диски, которые будем использовать
/dev/sda — жесткий диск с рабочей системой, его будем архивировать
/dev/sda1 — раздел, содержащий корневую фс
/dev/sdb1 — раздел на внешнем жёстком диске для архивации

1.-Перезагрузитесь в однопользовательском режиме (single)
2.-Введите команду mount, чтобы узнать, какой раздел содержит корневую файловую систему (в примере используется /dev/sda1).Образ этого раздела и нужно сохранить на другом носителе. Как и в случае с Windows, автор предлагает использовать внешний USB-диск.
3.-Подмонтируйте внешний HDD
Например,в каталог /mnt/image:

# modprobe usb_storage
# mkdir /mnt/image
# mount /dev/sdb1 /mnt/image

4.-Теперь перемонтируем корневую систему в режим «только для чтения» и создадим образ:

# sync
# mount -о remount.ro /
# dd if=/dev/sda1  of=/mnt/image/backup.bin

Готово.

Как восстановить систему из созданного образа:

Нужно иметь под рукой: загрузочный компакт-диск любого дистрибутива Linux. При использовании простого диска (не LiveCD) для перехода на текстовую консоль нажмите Ctrl + Alt + F2.

1.- Подмонтируем внешний винчестер:

# mkdir /image
# modprobe usb_storage
# mount /dev/sdb1 /image

При установке системы на пустой диск нужно создать разделы. При восстановлении после сбоя, ничего создавать не нужно. Лишь убедитесь в том, что раздел подкачки (Linux swap) создан.

2.- Развернем образ:

# dd if=/image/image.bin of=/dev/sda1
# mkdir /install
# mount /dev/sda1 /install
# chroot /install /bin/bash

Корнем становится каталог /install, к которому примонтирован новый HDD. В качестве командной оболочки выступает /bin/bash.

3.- Перезпишем загрузчик:

для LILO: # liio
для GRUB: # grub-install /dev/sdb

4.-Перезагрузим компьютер командой reboot. Копия системы восстановлена
 Если описанный материал показался вам сложным для выполнения, ознакомьтесь со статьёй Способы создания резервных копий в Linux, где работа dd описывается просто, хотя и не полно.

Создание iso со своим образом Ubuntu и набором программ

Я собирал собственный образ ISO Ubuntu 18.04 по инструкции LiveCDCustomization на системе Ubuntu 14.04.

Мне необходимо было поставить некоторые программы, чтобы они были доступны сразу с LiveCD, без установки. Это удобно, особенно без наличия интернета.

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

В оригинальной инструкции LiveCDCustomization есть некоторые неясные моменты и неточности. Сама инструкция устарела, и частично не работала.

Поэтому я делал по шагам и записывал выполняемые действия.

Осторожно! Почти все команды выполняются под root.

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

Но если выйти из chroot, все введенные команды применяются к рабочей системе. Это требуется в некоторых местах инструкции: при первичной подготовке, и в конце, при сборке. Смотри не перепутай

Подготовка

Устанавливаем зависимости на хост-систему

Потребуется 2 пакета, один занимается работой со сжатой файловой системой squashfs, другой для создания ISO-образа CDROM (ISO-9660):

sudo apt install squashfs-tools genisoimage

Странно, но у меня уже были установлены эти пакеты. Ради интереса найдем, когда эти пакеты были установлены, для чего поищем в истории apt:

cd /var/log/apt
# ищем в history.log
grep -r squashfs --color=always
# если прошло много времени, история упаковывается в .gz, ищем в ней:
find -name \*.gz -print0 | xargs -0 zgrep squashfs --color=always
# --color=always добавляет подсветку найденных слов

Также потребуется виртуальная машина для быстрого тестирования. Я использовал Virtualbox

Монтируем оригинальный образ ISO в mnt

Скачиваем оригинальный ISO образ Ubuntu, который будем модифицировать под свои нужны. Допустим, образ скачан и находится в ~/downloads/ubuntu-18.04-desktop-amd64.iso.

Подмонтируем этот ISO образ в каталог ~/livecdtmp/mnt для дальнейшей работы:

# создаем сразу два вложенных каталога
mkdir -p ~/livecdtmp/mnt
# копируем ISO образ диска
cp ~/downloads/ubuntu-18.04-desktop-amd64.iso ~/livecdtmp
# входим в каталог, где будет проводиться основная работа
cd ~/livecdtmp
# монтируем CD-диск
sudo mount -o loop ubuntu-18.04-desktop-amd64.iso mnt
mkdir extract-cd
rsync --exclude=/casper/filesystem.squashfs -a mnt/ extract-cd

Расжимаем файловую систему squashfs и перемещаем содержимое в edit

sudo unsquashfs mnt/casper/filesystem.squashfs
sudo mv squashfs-root edit

Подготавливаем рабочую среду

Копируем resolv.conf с рабочей системы, чтобы было сетевое соединение внутри чрута, также делаем это для сети::

sudo cp /etc/resolv.conf edit/etc/
sudo mount -o bind /run/ edit/run
sudo mount --bind /dev/ edit/dev

resolv.conf в следующих шагах оказался пустым, надо понять почему, и исправить

Чрутимся, и начинаем работать со своим кастомизированным образом.

# chroot выполняется только от суперпользователя
sudo su
# чрутимся:
chroot edit # < зачрутились
# важно! чтобы не перепутать, где мы работаем, сразу сменим вид приглашения командной строки:
PS1="(CHROOT) $PS1"

Настраиваем:

mount -t proc none /proc
mount -t sysfs none /sys
mount -t devpts none /dev/pts
export HOME=/root
export LC_ALL=C

dbus-uuidgen из оригинальной инструкции я пропустил

Файл /etc/resolv.conv оказался пустым, значит что-то я сделал не так. Отредактируем его вручную, скопировав содержимое /etc/resolv.conv из рабочей системы:

vi /etc/resolv.conv
# это не команды, а содержимое файла, которое следует внести. Не копировать слепо! Подставить из своей рабочей системы, файл /etc/resolv.conv! У меня оно такое:
nameserver 127.0.1.1

Теперь сеть у нас доступна внутри чрута, проверим

ping ya.ru

Кастомизация своего образа Ubuntu

Напомню, сейчас мы находимся под чрутом (chroot edit), и у нас работает сеть. Все что написано ниже, является делом вкуса.

Ставим необходимые пакеты

Смотрим установленные пакеты:

dpkg-query -W --showformat='${Installed-Size}\t${Package}\n' | sort -nr | less

Если хотим, обновляем пакеты:

apt update
apt upgrade

Устанавливаем свои пакеты:

# программы для работы с сетью
apt install curl net-tools whois nmap
# остальные - также по желанию
apt install vim git htop zsh tmux 

Следующие пакеты поставить не удалось, так как их нет в /etc/apt/:

shutter
krusader
filezilla
lynx

узнать, какие репо следует добавить для установки

Установить программы можно и из deb-пакетов, на примере Atom:

  • Скачиваем Atom через консоль или браузер
  • Если скачано из браузера, то: sudo mv ~/downloads/atom-amd64.deb ~/livecdtmp/edit/tmp

  • Устанавливаем: dpkg -i /tmp/atom-amd64.deb

У меня установка не удалась, так как этот пакет зависит от gconf2 и gconf-service. Эти зависимости apt не сумел разрешить. Чтобы это исправить, требуется добавить в /etc/apt/ дополнительные репо. какие?

dpkg: dependency problems prevent configuration of atom:
atom depends on gconf2; however:
Package gconf2 is not installed.
atom depends on gconf-service; however:
Package gconf-service is not installed.

Кастомизация

Это по-желанию: читаем оригинальную инструкцию LiveCDCustomization, раздел Customizations и настраиваем фон рабочего стола, шрифты, региональные настройки и прочее. Первый шаг dbus-uuidgen и dpkg-divert можно пропустить, для Ubuntu 18.04 они не повлияли на работу apt.

Проверка и сборка ISO образа

Мы все еще находимся в чруте chroot edit

Проверяем, что нет пользователя UID=999

В оригинальной мане указано, что если существует пользователь с UID 999, с LiveCD невозможно будет загрузиться. Такой пользователь может возникнуть при установке Virtualbox.

awk -F: '$3 == 999' /etc/passwd

есть есть, то выполнить usermod -u 500 $hit, где $hit — имя проблемного пользователя

Пересобираем initrd

После модификации ядра, скриптов загрузки или добавления модулей ядра, нужно пересобрать initrd.gz и переместить его в каталог casper

mkinitramfs -o /initrd.gz 4.15.0-23-generic
# выходим из чрута и перемещаем собранный образ
exit
mv edit/initrd.gz extract-cd/casper/

Снова чрутимся:

chroot edit
PS1="(CHROOT) $PS1"

Очищаем образ

Удаляем все, что не установилось и чистим систему:

apt --fix-broken install
apt autoremove
rm -rf /tmp/*
rm /etc/resolv.conf
rm /var/lib/dbus/machine-id # у меня файла не было

Размонтируем

umount /proc || umount -lf /proc
umount /sys
umount /dev/pts
exit # выходим из chroot
umount edit/dev

Собираем ISO образ

Манифест
# делаем манифест записываемым
chmod +w extract-cd/casper/filesystem.manifest
# обновляем манифест
chroot edit dpkg-query -W --showformat='${Package} ${Version}\n' > extract-cd/casper/filesystem.manifest
# пишем установленные пакеты
cp extract-cd/casper/filesystem.manifest extract-cd/casper/filesystem.manifest-desktop
# удаляем упоминания пакетов
sed -i '/ubiquity/d' extract-cd/casper/filesystem.manifest-desktop
sed -i '/casper/d' extract-cd/casper/filesystem.manifest-desktop
Сжимаем файловую систему
rm extract-cd/casper/filesystem.squashfs ## у меня не было этого файла
mksquashfs edit extract-cd/casper/filesystem.squashfs -b 1048576
Пишем размер файловой системы и md5 хеши файлов
printf $(du -sx --block-size=1 edit | cut -f1) > extract-cd/casper/filesystem.size
cd extract-cd
rm md5sum.txt
find -type f -print0 | xargs -0 md5sum | grep -v isolinux/boot.cat | tee md5sum.txt
Создаем готовый ISO
mkisofs -D -r -V "My Ubuntu custom image" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../my-ubuntu.iso .

Итоговый образ my-ubuntu.iso проверяем в Virtualbox.

Записываем ISO на флешку

Для записи я использовал unetbootin, который доступен из центра приложений Ubuntu.

Установка образов операционной системы в Linux

Raspberry Pi Imager, как правило, является самым простым вариантом для большинства пользователей для записи изображений на SD-карты, так что это хорошее место для начала. Если вы ищете более продвинутые параметры в Linux, вы можете использовать стандартные инструменты командной строки ниже.

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

Обнаружение точки крепления SD-карты и ее отключение

  • Запустите lsblk -p , чтобы узнать, какие устройства в настоящее время подключены к вашей машине.

  • Если в вашем компьютере есть слот для SD-карт, вставьте карту. Если нет, вставьте карту в устройство чтения SD-карт, а затем подключите устройство чтения к компьютеру.

  • Снова запустите lsblk -p . Новое появившееся устройство — это ваша SD-карта (вы также обычно можете определить размер устройства).Именование устройства будет соответствовать формату, описанному в следующем абзаце.

  • В левом столбце результатов команды lsblk -p указывается имя устройства вашей SD-карты и имена всех разделов на ней (обычно только один, но их может быть несколько, если карта ранее использовалась). Он будет указан как что-то вроде / dev / mmcblk0 или / dev / sdX (с именами разделов / dev / mmcblk0p1 или / dev / sdX1 соответственно), где X — это строчная буква с указанием устройства (например, / dev / sdb1 ). Правый столбец показывает, где были смонтированы разделы (если их не было, он будет пустым).

  • Если какие-либо разделы на SD-карте были смонтированы, отключите их все с помощью umount , например umount / dev / sdX1 (замените sdX1 на имя устройства вашей SD-карты и измените номер для любых других разделов) .

Копирование образа на SD карту

  • В окне терминала запишите изображение на карту с помощью приведенной ниже команды, убедившись, что вы заменили входной файл if = аргументом на путь к вашему .img и аргумент / dev / sdX в выходном файле из = с правильным именем устройства. Это очень важно, так как вы потеряете все данные на жестком диске, если укажете неправильное имя устройства. Убедитесь, что имя устройства является именем всей SD-карты, как описано выше, а не только ее раздела. Например: sdd , а не sdds1 или sddp1 ; mmcblk0 , а не mmcblk0p1 .

      dd bs = 4M if = 2020-08-20-raspios-buster-armhf.img of = / dev / sdX conv = fsync  
  • Обратите внимание, что размер блока 4M будет работать большую часть времени. Если нет, попробуйте 1M , хотя это займет значительно больше времени.

  • Также обратите внимание, что если вы не вошли в систему как root, вам нужно будет поставить перед этим префиксом sudo .

Копирование заархивированного образа на SD-карту

В Linux можно объединить процесс распаковки и копирования SD в одну команду, что позволяет избежать любых проблем, которые могут возникнуть, если размер распакованного образа превышает 4 ГБ.Это может произойти в определенных файловых системах, которые не поддерживают файлы размером более 4 ГБ (например, FAT), хотя следует отметить, что большинство установок Linux не используют FAT и, следовательно, не имеют этого ограничения.

Следующая команда распаковывает zip-файл (замените 2020-08-20-raspios-buster-armhf.zip на соответствующее zip-имя файла) и направляет выходные данные непосредственно в команду dd. Это, в свою очередь, копирует его на SD-карту, как описано в предыдущем разделе.

  распаковать -p 2020-08-20-raspios-buster-armhf.zip | sudo dd of = / dev / sdX bs = 4M conv = fsync  

Проверка процесса копирования изображения

  • По умолчанию команда dd не дает никакой информации о своем прогрессе, поэтому может показаться, что она зависла. Запись на карту может занять более пяти минут. Если на вашем кардридере есть светодиод, он может мигать во время записи.

  • Чтобы увидеть, как идет операция копирования, вы можете запустить команду dd с параметром status.
      dd bs = 4M if = 2020-08-20-raspios-buster-armhf.img of = / dev / sdX status = progress conv = fsync  
  • Если вы используете старую версию dd , опция статуса может быть недоступна. Вместо этого вы можете использовать команду dcfldd , которая даст отчет о ходе выполнения, показывающий, сколько было написано. Другой способ — отправить сигнал USR1 на номер dd , который позволит распечатать информацию о состоянии. Узнайте PID dd с помощью pgrep -l dd или ps a | grep dd .Затем используйте kill -USR1 PID , чтобы отправить сигнал USR1 на dd .

Дополнительно: проверка правильности записи образа на SD-карту

  • После завершения копирования dd вы можете проверить, что было записано на SD-карту с помощью dd -ing с карты обратно в другой образ на жестком диске, усекая новое изображение до того же размера, что и оригинал, а затем запускаем diff (или md5sum ) на этих двух изображениях.

  • Если SD-карта намного больше, чем изображение, вы не хотите читать обратно всю SD-карту, поскольку она будет в основном пустой. Значит нужно проверить количество блоков, которые были записаны на карту командой dd . В конце своего запуска dd отобразит количество блоков, записанных следующим образом:

      xxx + 0 записей в
    ггг + 0 записей
    yyyyyyyyyy байт (yyy kB, yyy KiB) скопировано, 0,00144744 с, 283 МБ / с  

    Нам нужно число xxx , которое является количеством блоков.Мы можем игнорировать числа ггг .

  • Скопируйте содержимое SD-карты в образ на жестком диске, используя dd еще раз:

      dd bs = 4M if = / dev / sdX of = from-sd-card.img count = xxx  

    , если — это входной файл (т. Е. Устройство SD-карты), из — это выходной файл, в который должно быть скопировано содержимое SD-карты (в этом примере называется from-sd-card.img ), и xxx — количество блоков, записанных исходной операцией dd .

  • В случае, если образ SD-карты все еще больше исходного изображения, обрежьте новое изображение до размера исходного изображения с помощью следующей команды (замените аргумент ссылки входного файла на имя исходного изображения):
      truncate - ссылка 2020-08-20-raspios-buster-armhf.img from-sd-card.img  
  • Сравните два изображения: diff должен сообщить, что файлы идентичны.
      diff -s from-sd-card.img 2020-08-20-raspios-buster-armhf.img  
  • Запуск , синхронизация . Это обеспечит очистку кеша записи и безопасное отключение SD-карты.

  • Извлеките SD-карту из кардридера.
.

Создайте собственный дистрибутив Linux для WSL

  • 2 минуты на чтение

В этой статье

Используйте наш образец WSL с открытым исходным кодом для создания пакетов дистрибутива WSL для Microsoft Store и / или для создания пользовательских пакетов дистрибутива Linux для загрузки неопубликованных приложений. Вы можете найти репозиторий программы запуска дистрибутива на GitHub.

В данном проекте включено:

  • Сопровождающие дистрибутива Linux должны упаковать и отправить дистрибутив Linux как приложение, работающее на WSL
  • Разработчики для создания собственных дистрибутивов Linux, которые могут быть загружены на их машину разработки

Фон

Мы распространяем дистрибутивы Linux для WSL как приложения UWP через Microsoft Store. Вы можете установить те приложения, которые затем будут работать на WSL — подсистеме, которая находится в ядре Windows.Этот механизм доставки имеет множество преимуществ, как обсуждалось в предыдущем сообщении в блоге.

Загрузка нестандартного пакета дистрибутива Linux

Вы можете создать собственный пакет дистрибутива Linux как приложение для загрузки на свой персональный компьютер. Обратите внимание, что ваш пользовательский пакет не будет распространяться через Microsoft Store, если вы не отправите его в качестве сопровождающего распространения. Чтобы настроить компьютер для загрузки неопубликованных приложений, вам необходимо включить это в настройках системы в разделе «Для разработчиков».Убедитесь, что выбран режим разработчика или приложения с неопубликованной загрузкой.

Для специалистов по обслуживанию дистрибутивов Linux

Чтобы отправить в Магазин, вам нужно будет работать с нами, чтобы получить разрешение на публикацию. Если вы являетесь владельцем дистрибутива Linux и заинтересованы в добавлении своего дистрибутива в Microsoft Store, свяжитесь с [email protected]

Начало работы

Следуйте инструкциям в репозитории Distro Launcher на GitHub, чтобы создать собственный пакет дистрибутива Linux.

Блоги команды

Оставить отзыв

.

Linux make информация о командах и примеры

Обновлено: 04.05.2019, Computer Hope

В Unix-подобных операционных системах make — это утилита для создания и поддержки групп программ (и других типов файлов) из исходного кода.

Этот документ описывает версию make для GNU / Linux.

Описание

Цель утилиты make — автоматически определять, какие части большой программы необходимо перекомпилировать, и выдавать команды, необходимые для их перекомпиляции.В этой документации описывается реализация GNU make , написанная Ричардом Столлманом и Роландом МакГратом и в настоящее время поддерживаемая Полом Смитом. Многие из приведенных ниже примеров показывают программы на языке C, поскольку они наиболее распространены, но вы можете использовать make с любым языком программирования, компилятор которого может быть запущен с помощью команды оболочки. На самом деле, make не ограничивается программами. Вы можете использовать его для описания любой задачи, в которой одни файлы должны автоматически обновляться из других при изменении других.

Чтобы подготовиться к использованию make , вы должны написать файл с именем makefile , который описывает отношения между файлами в вашей программе и устанавливает команды для обновления каждого файла. В программе обычно исполняемый файл обновляется из объектных файлов, которые, в свою очередь, создаются путем компиляции исходных файлов.

Когда подходящий make-файл существует, каждый раз, когда вы меняете некоторые исходные файлы, эта простая команда оболочки:

 марка 

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

make выполняет команды в make-файле для обновления одного или нескольких целевых имен, где name обычно является программой. Если параметр -f отсутствует, make будет искать файлы makefile GNUmakefile , makefile и Makefile в указанном порядке.

Обычно вы должны вызывать свой make-файл makefile или Makefile . (Официально рекомендованное имя — Makefile , потому что оно находится на видном месте в начале списка каталогов, рядом с другими важными файлами, такими как README .) Первое проверенное имя, GNUmakefile , не рекомендуется для большинства make-файлов . Вы должны использовать это имя, если у вас есть make-файл, специфичный для GNU make , и не будет понят для других версий make .Если make-файл представляет собой прочерк (««), считывается стандартный ввод.

make обновляет цель, если это зависит от предварительных файлов, которые были изменены с момента последнего изменения цели, или если цель не существует.

Синтаксис

 make [-f  makefile ] [ options ] ... [ target ] ... 

Опции

, Эти параметры игнорируются, но включены для совместимости с другими версиями в .
-B , — всегда делать Безоговорочно выполнить все мишени.
-C dir , —directory = dir Перейдите в каталог dir перед чтением файлов makefile или другими действиями. Если указано несколько опций -C, , каждая интерпретируется относительно предыдущей: -C / -C и т. Д. эквивалентно -C / и т. Д. .Обычно это используется с рекурсивными вызовами и make .
-d Печать отладочной информации в дополнение к обычной обработке. В отладочной информации говорится, какие файлы рассматриваются для переделки, какое время файла сравнивается и с какими результатами, какие файлы действительно необходимо переделать, какие неявные правила учитываются и применяются; все интересное о том, как make решает, что делать.
—debug [ = ФЛАГОВ] Печать отладочной информации в дополнение к обычной обработке. Если ФЛАГИ опущены, то поведение такое же, как если бы было указано -d . FLAGS может быть a для всех выходных данных отладки (так же, как при использовании -d ), b для базовой отладки, v для более подробной базовой отладки, i для отображения неявных правил, j для получения подробной информации о вызов команд и м для отладки при переделке make-файлов.
-e , — приоритет среды Дайте переменным, взятым из среды, приоритет над переменными из make-файлов.
-f файл , —file = файл , —makefile = файл Используйте файл как make-файл.
-i , — игнорировать ошибки Игнорировать все ошибки в командах, выполняемых для переделки файлов.
-I dir , —include-dir = dir Задает каталог dir для поиска включенных make-файлов. Если несколько опций -I используются для указания нескольких каталогов, поиск в каталогах выполняется в указанном порядке. В отличие от аргументов для других флагов make , каталоги, заданные с -I flags, могут идти сразу после флага: -I dir разрешено, а также -I dir .Этот синтаксис разрешен для совместимости с флагом -I препроцессора C.
-j [ рабочих мест ], — рабочих мест [ = рабочих мест ] Задает количество заданий (команд) для одновременного выполнения. Если существует более одной опции -j , действует последняя. Если опция -j указана без аргумента, make не будет ограничивать количество заданий, которые могут выполняться одновременно.
, — в рабочем состоянии Продолжайте как можно дольше после ошибки. В то время как цель, которая вышла из строя (и те, которые зависят от нее), не может быть переделана, другие зависимости этих целей могут быть обработаны все равно.
-l [ нагрузка ], — средняя нагрузка [ = нагрузка ] Указывает, что никакие новые задания (команды) не должны запускаться, если есть другие запущенные задания и средняя загрузка составляет не менее загрузка (число с плавающей запятой).Без аргумента удаляет предыдущий предел нагрузки.
-L , —check-symlink-times Используйте время последней модификации между символическими ссылками и целью.
-n , —just-print , —dry-run , —recon Вывести команды, которые будут выполнены, но не выполнять их.
-o файл , —old-file = file , —assume-old = file Не переделывайте файл , файл , даже если он старше, чем его зависимости, и не переделывайте ничего из-за изменений в файле.По сути, файл считается очень старым, и его правила игнорируются.
-p , —print-data-base Распечатать базу данных (правила и значения переменных), полученную в результате чтения make-файлов; затем выполните как обычно или как указано иначе. При этом также выводится информация о версии, заданная переключателем -v (см. Ниже). Чтобы распечатать базу данных, не пытаясь переделать какие-либо файлы, используйте make -p -f / dev / null .
-q , — вопрос «Режим вопросов.»Не запускайте никаких команд и ничего не печатайте; просто верните нулевой статус выхода, если указанные цели уже обновлены, и ненулевое значение в противном случае.
-r , — без правил Исключите использование встроенных неявных правил. Также удалите список суффиксов по умолчанию для правил суффиксов.
-R , — без встроенных переменных Не определяйте никаких встроенных переменных.
-s , — тихий , — тихий Бесшумная работа; не печатайте команды по мере их выполнения.
-S , — остановка , — остановка Отмените действие опции -k . В этом нет необходимости, за исключением рекурсивного make, где -k может быть унаследован от make верхнего уровня через MAKEFLAGS или если вы установите -k в MAKEFLAGS в вашей среде.
, -сенсорный Прикоснитесь к файлам (отметьте их как актуальные, не изменяя их на самом деле) вместо выполнения их команд.Это используется, чтобы притвориться, что команды выполнены, чтобы обмануть будущие вызовы и сделать .
-v , — версия Распечатать версию make ; также Авторские права, список авторов и уведомление об отсутствии гарантии.
-w , —print-directory Распечатать сообщение, содержащее рабочий каталог, до и после другой обработки. Это может быть полезно для отслеживания ошибок из сложных наборов рекурсивных команд make .
— каталог без печати Отключить -w , даже если он был включен неявно.
-W файл , —what-if = файл , —new-file = файл , —assume-new = файл Представьте, что целевой файл только что был изменен. При использовании с флагом -n это показывает, что произойдет, если вы измените этот файл.Без -n это почти то же самое, что запуск сенсорной команды для данного файла перед запуском make , за исключением того, что время модификации изменяется только внутри make .
—warn-undefined-variables Предупреждать при ссылке на неопределенную переменную.

Типичное использование

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

make вызывается со списком имен целевых файлов для сборки в качестве аргументов командной строки:

Марка
 [ TARGET  ...] 

Без аргументов, make строит первую цель, которая появляется в его make-файле, который традиционно является целью с именем all .

make решает, нужно ли регенерировать цель, сравнивая время модификации файла. Это решает проблему предотвращения создания файлов, которые уже обновлены, но не удается, когда файл изменяется, но время его модификации остается в прошлом. Такие изменения могут быть вызваны восстановлением более старой версии исходного файла или когда сетевая файловая система является источником файлов и ее часы или часовой пояс не синхронизированы с машиной, на которой выполняется make .Пользователь должен справиться с этой ситуацией, принудительно завершив сборку. И наоборот, если время модификации исходного файла находится в будущем, это может вызвать ненужную перестройку.

Makefiles

make ищет в текущем каталоге make-файл для использования. GNU make ищет в файлах файл с именем один из GNUmakefile , makefile , а затем Makefile и запускает указанную цель (цели) из этого файла.

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

Одна из проблем автоматизации сборки — это адаптация процесса сборки к конкретной платформе. Например, компилятор, используемый на одной платформе, может не принимать те же параметры, что и используемый на другой. Сама по себе делает не очень хорошо с этим. Эта проблема обычно решается путем генерации отдельных инструкций сборки для конкретной платформы, которые, в свою очередь, могут обрабатываться make .Общие инструменты для этого процесса: autoconf и cmake .

Правила

Makefile состоит из правил . Каждое правило начинается со строки зависимости, в которой определяется цель, за которой следует двоеточие («: ») и, необязательно, перечисление компонентов (файлов или других целей), от которых зависит цель. Строка зависимости устроена так, что цель (левая часть двоеточия) зависит от компонентов (правая часть двоеточия). Обычно компоненты называют предпосылками цели.

.

Linux: Как запустить make

  1. Компьютеры
  2. Операционные системы
  3. Linux
  4. Linux: Как запустить make

Автор: Эммет Дулани

Утилита make Linux работает путем чтения и интерпретации make-файла . Обычно вы запускаете make, просто набирая следующую команду в приглашении оболочки:

 марка 

При запуске таким образом GNU make ищет файл с именем GNUmakefile, makefile или Makefile — в указанном порядке.Если make находит один из этих make-файлов, она строит первую цель, указанную в этом make-файле. Однако, если make не находит подходящий make-файл, она отображает следующее сообщение об ошибке и завершает работу:

 make: *** Цели не указаны и make-файл не найден. Стоп. 

Если ваш make-файл имеет имя, отличное от имен по умолчанию, вы должны использовать опцию -f, чтобы указать make-файл. Синтаксис команды make с этой опцией:

 make -f  имя_файла  

, где filename — имя make-файла.

Даже если у вас есть make-файл с именем по умолчанию, например Makefile, вы можете захотеть создать конкретную цель из нескольких целей, определенных в make-файле. В этом случае вы должны использовать следующий синтаксис при запуске make:

 сделать цель 

Например, если make-файл содержит цель с именем clean, вы можете построить эту цель с помощью этой команды:

 очистить 

Другой специальный синтаксис переопределяет значение переменной make. Например, GNU make использует переменную CFLAGS для хранения флагов, используемых при компиляции файлов C.Вы можете изменить значение этой переменной при вызове make. Вот пример того, как вы можете определить CFLAGS как параметр -g -O2:

 сделать CFLAGS = "- g -O2" 

В дополнение к этим параметрам GNU make принимает несколько других параметров командной строки. В этой таблице перечислены параметры GNU make.

Опции для GNU make
Опция Значение
Игнорирует указанную переменную, но принимает эту переменную для совместимости
с другими версиями make.
-C DIR Переход в указанный каталог перед чтением файла makefile.
-d Печатает отладочную информацию.
-e Позволяет переменным среды переопределять определения
переменных с одинаковыми именами в make-файле.
-f ФАЙЛ Считывает ФАЙЛ как make-файл.
-h Отображает список опций make
.
-i Игнорирует все ошибки в командах, выполняемых при построении цели
.
-I DIR Ищет в указанном каталоге включенные файлы сборки. (Возможность включать файл в
make-файл уникальна для GNU make.)
-j НОМЕР Задает количество команд, которые программа make может запускать одновременно.
Продолжает построение несвязанных целей, даже если происходит ошибка
при построении одной из целей.
-l НАГРУЗКА Не запускает новое задание, если средняя загрузка составляет не менее
LOAD (число с плавающей запятой).
Игнорирует указанную переменную, но принимает эту переменную для совместимости
с другими версиями make.
Печатает команды для выполнения, но не выполняет их.
-o ФАЙЛ Не восстанавливает файл с именем FILE , даже если он на
старше своих зависимых файлов.
-п Отображает базу данных make из
переменных и неявных правил.
-q Ничего не запускает, но возвращает 0 (ноль), если все цели
обновлены, 1, если что-то требует обновления, или 2, если возникает ошибка
.
-r Избавляется от всех встроенных правил.
-R Избавляется от всех встроенных переменных и правил.
Работает беззвучно (без отображения команд при выполнении
).
Изменяет метку времени файлов.
-v Отображает номер версии make
и уведомление об авторских правах.
-w Отображает имя рабочего каталога до и после
обработки make-файла.
-W ФАЙЛ Предполагает, что указанный файл был изменен (используется с
-n, чтобы увидеть, что произойдет, если вы измените этот файл
).
.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *