Linux Live CD. Создаем загружаемый диск::Журнал СА 102009
www.samag.ru
Льготная подписка для студентов      
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
О журнале
Журнал «БИТ»
Подписка
Где купить
Авторам
Рекламодателям
Магазин
Архив номеров
Вакансии
Контакты
   

Jobsora


  Опросы

Какие курсы вы бы выбрали для себя?  

Очные
Онлайновые
Платные
Бесплатные
Я и так все знаю

 Читать далее...

1001 и 1 книга  
28.05.2019г.
Просмотров: 1924
Комментарии: 2
Анализ вредоносных программ

 Читать далее...

28.05.2019г.
Просмотров: 1957
Комментарии: 1
Микросервисы и контейнеры Docker

 Читать далее...

28.05.2019г.
Просмотров: 1515
Комментарии: 0
Django 2 в примерах

 Читать далее...

28.05.2019г.
Просмотров: 1114
Комментарии: 0
Введение в анализ алгоритмов

 Читать далее...

27.03.2019г.
Просмотров: 1686
Комментарии: 1
Arduino Uno и Raspberry Pi 3: от схемотехники к интернету вещей

 Читать далее...

Друзья сайта  

Форум системных администраторов  

sysadmins.ru

Электронка - 2020!

 Linux Live CD. Создаем загружаемый диск

Архив номеров / 2009 / Выпуск №10 (83) / Linux Live CD. Создаем загружаемый диск

Рубрика: Администрирование /  Инструменты

АНДРЕЙ БИРЮКОВ, специалист по информационной безопасности. Работает в крупном системном интеграторе. Занимается внедрением решений по защите корпоративных ресурсов

Linux Live CD
Создаем загружаемый диск

Это удобный и быстрый инструмент для решения различных задач системного администрирования. Рассмотрим процесс создания собственного Live CD.

Какие бывают Live CD?

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

На сегодняшний день существуют сотни Live CD-дистрибутивов, построенных на основе различных редакций Linux: Debian, Red Hat, Slax и других. Есть также Live CD-версии для BSD-систем, например, Frenzy, операционная система, образ которой умещается на маленьком компакт-диске 210 Мб. Диск с Frenzy я всегда ношу с собой, и он несколько раз выручал меня при решении различных проблем с загрузкой рабочей операционной системы. Но не стоит думать, что мир загружаемых дистрибутивов ограничивается только UNIX-решениями. Существуют Live CD-версии Windows. Например, загружаемая версия Windows XP с набором необходимых приложений официально используется правоохранительными органами Германии для сбора сведений о данных, хранящихся на компьютере подозреваемого. Но операционная система Windows, как и большинство продуктов Microsoft, не является бесплатной, соответственно, для разработки собственного Live CD-дистрибутива необходимо приобретать лицензию. Поэтому в данной статье мы не будем рассматривать создание Live CD-дистрибутивов на основе ОС Windows.

А зачем нам свой Live CD-дистрибутив?

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

Другой пример, вам часто приходится посещать филиалы компании, и вам необходим набор нестандартных приложений, используемых в корпоративной сети. Вместо того чтобы таскать все время с собой ноутбук, можно просто воспользоваться Live CD-диском с набором необходимых программ.

И наконец мой случай. Для решения задач информационной безопасности мне потребовались некоторые утилиты, которые не входили в состав основных Security Live CD, таких как Bug Track, Auditor, и других. Компилировать их каждый раз при загрузке с Live CD было не слишком удобно, поэтому я задумался над сборкой собственного Live CD. Наличие готового набора нужных утилит существенно упрощает проведение аудита и исследование информационной безопасности.

Приступаем к работе

Надеюсь, в предыдущем разделе я достаточно наглядно пояснил, зачем нужно собирать свой собственный дистрибутив Live CD. Теперь приступим непосредственно к разработке. Для этого нам потребуется базовый дистрибутив Linux, виртуальная машина, например, VMware, и программа для записи компакт-дисков. В качестве базового дистрибутива я буду использовать Knoppix, так как данная версия Linux наилучшим образом приспособлена для различных модификаций.

Загружаемый дистрибутив Knoppix является одним из наиболее популярных дистрибутивов для создания загружаемых операционных систем. Причин этому несколько. Прежде всего это поддержка по умолчанию большого количества оборудования от различных производителей, благодаря которому вам не нужно начинать работу с системой с поиска и настройки различных драйверов. Еще одной причиной является то, что в Knoppix можно модифицировать практически все – от ядра операционной системы до компонентов рабочего стола. Также данная система имеет удобный интерфейс, позволяющий даже плохо знакомому с операционными системами семейства Linux пользователю без особых сложностей работать в X Window. В состав Knoppix по умолчанию входит множество различных утилит и приложений, таких как OpenOffice, различные медиаплееры, средства работы с сетью и другие программы. В общем, для разработки своего первого загружаемого дистрибутива Knoppix более чем подходит, если в дальнейшем вы захотите создать свой загружаемый дистрибутив на основе другой редакции Linux, то по адресу [2] вы можете найти несколько статей, посвященных работе с другими дистрибутивами.

Для создания дистрибутива вам необходим компьютер со следующими аппаратными характеристиками: от 1 Гб RAM, не менее 3 Гб свободного дискового пространства. Далее я приведу описание процесса создания и модификации собственного дистрибутива на основе Knoppix.

Подготовив машину, приступим непосредственно к модификации дистрибутива:

1. Скачайте последнюю версию дистрибутива с официального сайта knoppix.net. На момент написания этой статьи на сайте была доступна как CD, так и DVD-образ Knoppix, воспользуемся CD-версией.

2. Загрузитесь с компакт-диска Knoppix. Проследите за тем, чтобы операционная система правильно определила используемые аппаратные компоненты. При использовании VMware Workstation с этим проблем не возникает, однако при использовании других систем виртуализации возможны определенные трудности.

3. В открывшемся окне необходимо выбрать значок консоли (Konsole), и введите команду su чтобы стать суперпользователем. По умолчанию в Knoppix учетная запись root использует пустой пароль. Вся дальнейшая процедура создания загружаемого дистрибутива должна производиться под учетной записью root.

4. Обеспечьте доступ к нужному разделу жесткого диска. Для этого необходимо заранее определить, какой из разделов диска будет использоваться для этой процедуры. Как уже упоминалось ранее, на диске требуется от 3 до 5 Гб дискового пространства. Открыть раздел необходимо с правами «чтение-запись». Чтобы это сделать, нужно выбрать на рабочем столе значок, который относится к необходимому разделу, щелкнуть по нему правой кнопкой мыши, демонтировать, а затем снова смонтировать с правами «чтение-запись». В качестве файловой системы будем использовать ext3. Хотя для многих более удобным будет использование следующих команд:

# mke2fs -j /media/hda1

# umount /media/hda1

# mount –o rw /media/hda1

5. Создайте рабочий каталог, то есть каталог, который будет использоваться для создания нового дистрибутива. Здесь и далее будем предполагать, что рабочим разделом у нас является /hda1. Для создания каталога используйте следующую команду:

# mkdir /media/hda1/knoppix

6. Теперь необходимо проверить доступную память. Для этого воспользуйтесь командами:

# df -h /media/hda1

Filesystem            Size  Used Avail Use% Mounted on

/dev/root             2.5M   20K  2.4M   1% /

# free –m

    total      used      free      shared      buffers      cached

Mem:      503      237      266      0      8      143

-/+ buffers/cache:      85      418

Swap:      0      0      0

7. Если у вас менее 1 Гб свободной оперативной памяти, то лучше создать файл подкачки. Для этого выполните следующие команды:

# dd if=/dev/zero of=/media/hda1/knoppix/myswap bs=1M count=1000

# mkswap /media/hda1/knoppix/myswap

# chmod 0600 /media/hda1/knoppix/myswap

# swapon /media/hda1/knoppix/myswap

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

8. Создайте главный и исходный каталоги. Нужно создать два отдельных каталога, в которых будет вестись основная работа. Каталог master/KNOPPIX содержит файлы, необходимые, чтобы запустить компакт-диск, а каталог source/KNOPPIX содержит файлы, которые образуют файловую систему Knoppix, которые впоследствии будут сжаты в единый образ с рабочим названием Knoppix. Чтобы создать эти два рабочих каталога, введите следующее:

# mkdir -p /media/hda1/knoppix/master/KNOPPIX

# mkdir -p /media/hda1/knoppix/source/KNOPPIX

9. Скопируйте файлы Knoppix. Каталог KNOPPIX на запущенном загружаемом компакт-диске содержит структуру файловой системы Knoppix, которую вам требуется настроить. Выполните следующую команду:

# cp -Rp /KNOPPIX/* /media/hda1/knoppix/source/KNOPPIX

Учтите, что выполнение данной команды может занять несколько минут, так как производится копирование большого количества файлов. Можно добавить ключ -v, и тогда весь процесс копирования будет отображаться в консольном окне.

10. Теперь скопируйте стартовые страницы, которые отображаются при загрузке Linux. Для этого введите следующее:

# cp /cdrom/index.html /media/hda1/knoppix/master

# cp /cdrom/autorun.* /media/hda1/knoppix/master

# cp /cdrom/cdrom.ico /media/hda1/knoppix/master

11. Скопируйте файлы с компакт-диска. Для этого нужно скопировать в свой рабочий каталог все остальные файлы, необходимые при запуске компакт-диска. Не нужно копировать только файл образа KNOPPIX размером 600 Мб. Сделать это можно вручную или с помощью следующей команды:

# cp /cdrom/KNOPPIX && find . -size -10000k -type f -exec cp -p -parents '[]' /media/hda1/knoppix/master/KNOPPIX/ \;

12. Теперь, когда все необходимые файлы скопированы в рабочий каталог, необходимо изменить свой корневой каталог (выполнить chroot) на каталог source KNOPPIX и изменить структуру этого каталога так, чтобы он содержал приложения, файлы и каталоги, которые вы хотите включить в свой загружаемый компакт-диск. Для этого используйте команду:

# chroot /media/hda1/knoppix/source/KNOPPIX

# mount -t proc /proc proc

В случае появления ошибки раздела /etc/fstab продолжайте работу, это не критично и никак не влияет на результат. Также можно его просто скопировать.

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

# dpkg-query -W -showformat ='$(Installed-Size) $(Package)/n' | sort -nr | less

или проще:

# dpkg-query -l | sort -nr | less

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



ii  outguess      0.2-5      Universal Steganographic tool

ii  openvpn      2.0.6-1      Virtual Private Network daemon

ii  openssl      0.9.8a-8      Secure Socket Layer (SSL) binary and related c

ii  openssh-server      4.3p2-1      Secure shell server, an rshd replacement

ii  openssh-client      4.3p2-1      Secure shell client, an rlogin/rsh/rcp replace

ii  openoffice.org-debian-menus 2.0.2-3      OpenOffice.org desktop integration

ii  openoffice-de-en 2.0.2-1      The OpenOffice suite, see http://www.openoffic

ii  openhackware      0.4.1-2      OpenFirmware emulator for PowerPC

ii  nxviewer      1.4.0.2-0alpha4      NoMachine NX - nesting X server with roundtrip

ii  nxtunnel-server      1.4.0-m2-1  server portion of nxtunnel

ii  nxtunnel-client      1.4.0-m2-1  client portion of nxtunnel

ii  nxssh  1.4.0-m2-1  NoMachine NX - custom and modified OpenSSH

ii  nxsetup-knoppix     0.3-1      Simple frontend for (almost) automatic nxserve

ii  nxproxy      1.4.0.2-0alpha4      NoMachine NX - X protocol compression proxy

ii  nxlibs      1.4.0.2-0alpha4      NoMachine NX - common agent libraries

ii  nxdesktop      1.4.0.2-0alpha4      NoMachine NX - nesting X server with roundtrip

ii  nxclient      1.4.0-91.2      NoMachine NX - NX Client.

ii  nxagent      1.4.0.2-0alpha4      NoMachine NX - nesting X server with roundtrip

ii  nvtv   0.4.7-3      tool to control TV chips on NVidia cards under

ii  ntpdate      4.2.0a+stable-8.1  The ntpdate client for setting system time

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

# dpkg-query -s openoffice-de-en

knoppix@2[~]$ dpkg-query -s openoffice-de-en

Package: openoffice-de-en

Status: install ok installed

Priority: optional

Section: unknown

Installed-Size: 353204

Maintainer: Klaus Knopper <knoppix@knopper.net>

Architecture: i386

Version: 2:2.0.2-1

Replaces: openoffice-de-en

Depends: libnspr4

Description: The OpenOffice suite, see

http://www.openoffice.org/

 This release uses a quick&dirty hack to support english

 as well as german layout and templates in KNOPPIX.

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

15. Теперь удалим OpenOffice. Для этого необходимо выполнить следующее:

# apt-get remove openoffice-de-en

В процессе выполнения команды вам будет необходимо подтвердить удаление данного пакета.

И проделаем то же самое для игр на примере kmahjongg:

knoppix@2[~]$ dpkg-query -s kmahjongg

Package: kmahjongg

Status: install ok installed

Priority: optional

Section: games

Installed-Size: 1584

Maintainer: Debian Qt/KDE Maintainers

<debian-qt-kde@lists.debian.org>

Architecture: i386

Source: kdegames

Version: 4:3.5.2-1+b2

Depends: kdelibs4c2a (>= 4:3.5.2-1), libc6 (>= 2.3.6-6),

libgcc1 (>= 1:4.1.0), libkdegames1 (>= 4:3.5.2), libqt3-mt (>= 3:3.3.6), libstdc++6 (>= 4.1.0)

Description: the classic mahjongg game for KDE project

 Your mission in this game is to remove all tiles from

 the game board. A matching pair of tiles can be removed,

 if they are 'free', which means that no other tiles block

 them on the left or right side.

Удалим ненужные пакеты группой:

# aptitude purge openoffice-de-en kmahjongg

Reading package lists... Done

Building dependency tree... Done

The following packages will be REMOVED:

  openoffice-de-en

0 upgraded, 0 newly installed, 1 to remove and 1 not

upgraded.

Need to get 0B of archives.

After unpacking 362MB disk space will be freed.

Do you want to continue [Y/n]? y

(Reading database ... 103699 files and directories currently installed.)

Removing openoffice-de-en ...

Removing `diversion of /usr/bin/soffice to

/usr/bin/soffice.distrib by openoffice-de-en'

16. В качестве примера также добавим новый пакет в дистрибутив. Для этого необходимо сначала скопировать нужный пакет на виртуальную машину под управлением Knoppix. Нужный пакет можно скачать напрямую из Интернета или же переписать на виртуальную машину. Для того чтобы переписать c основной машины, необходимо сначала на Knoppix запустить сервер Samba. Сделать это можно следующим образом: выберите раздел Knoppix -> Services -> Start Samba Server. Затем укажите пароль для пользователя knoppix. Теперь ваша виртуальная машина Knoppix доступна для обмена файлами с основной машиной.

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

# apt-get install abiword

17. Теперь, когда мы удалили ненужное, необходимо удалить мусор, дабы не занимать лишнее место на нашем загружаемом диске. Просмотрим «бесхозные» пакеты:

# deborphan | less

18. Выбранные для удаления пакеты можно удалить с помощью следующей команды:

# deborphan | xargs apt-get -y remove

19. Теперь очистим кэш, в котором также могут находиться удаляемые пакеты:

# apt-get clean

20. Удалим директории, имеющие временное или динамическое наполнение:

# umount /proc

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

# mkisofs -R -U -V "My Knoppix" -publisher "Ivan I. Ivanov" -hide-rr-moved -cache-inodes -no-bak /

-pad /media/hda1/knoppix/source/KNOPPIX | nice -5 /usr/bin/create_compressed_fs - 65536 > /media/hda1/knoppix/master/KNOPPIX/KNOPPIX

Параметр -R добавляет записи SUSP и RR, которые должны иметь атрибуты файловой системы, рассчитанные на систему Linux (например, длинные имена файлов, символические связи и т.д.).

Параметр -U разрешает имена файлов, которые могут включать в себя символы, не соответствующие стандарту ISO 9960 (начальные точки, многоточия и т.д.).

Параметр hide-rr-moved скрывает каталог RR_Moved в образе, переименовывая его в .rr_moved.

Cache-inodes позволять сберечь пространство на компакт-диске.

Параметр no-bak исключает файлы резервных копий.

Наконец, параметр -pad служит для добавления служебной информации в конец образа.

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

22. Последний шаг в создании своего дистрибутива – это выполнение команды mkisofs для создания образа всего диска. Добавим параметры в командную строку, чтобы сделать возможной загрузку содержимого компакт-диска:

# cd /media/hda1/knoppix/master

# mkisofs -pad -l -r -J -v -V "MyKnop" -no-emul-boot -boot-load-size 4 -boot-info-table -b boot/isolinux/isolinux.bin /

    -c boot/isolinux/boot.cat -hide-rr-moved -o /media/hda1/knoppix/knoppix.iso /media/hda1/knoppix/master

23. В результате выполнения данной команды будет создан файл knoppix.iso в каталоге /media/hda1/knoppix. Данный iso-образ представляет собой файловую систему ISO 9660 CD-ROM, которая разрешает длинные имена файлов (опция ?l), расширения и права доступа SUSP, полезные для систем Linux или UNIX (-r) и каталожные записи Joilet (-J). Этот образ готов к проверке с помощью системы виртуализации и записи на компакт-диск.

24. В простейшем случае для записи образа на компакт-диск достаточно воспользоваться командой cdrecord:

# cdrecord -v -data knoppix.iso

25. Теперь запустите сервер Samba так, как это описано в пункте 16, и скопируйте созданный iso-образ на основную машину.

26. Создайте новую виртуальную машину и загрузите ее с iso-образа.

27. После успешной загрузки системы (что уже является хорошим знаком) убедимся в отсутствии удаленных пакетов. Для этого нажмите Knoppix -> Office. Как видите, OpenOffice отсутствует, зато появился abiword. Модификация дистрибутива прошла успешно.

***

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

Завершая статью, хочу отметить, что помимо приведенной методики модификации Knoppix, существуют также и другие способы, один из которых приведен в [3].

  1. Список существующих дистрибутивов Linux Live CD – http://www.livecdlist.com/?sort=&showonly=.
  2. Статьи по модификации дистрибутивов Linux – http://linux-livecd.ru/doc_main.html.
  3. Модификация Knoppix – http://stirnimann.com/mystuff/doc/knoppix.txt.

Комментарии отсутствуют

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

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-41
Fax: (499) 277-12-45
E-mail: sa@samag.ru