Собственный мультизагрузочный linux live desktop на USB/HDD c extlinux и простой ремастеринг linux live cd/dvd - Linuх Системы - Основные Инструкции - Руководства - Мультизагрузочная Флешка Как сделать Загрузочную Флеш
Пользовательского поиска
Понедельник, 05.12.2016, 01:21
Приветствую Вас Гость | RSS
Главная | Руководства | Регистрация | Вход
Меню Проекта
Категории каталога
Форма входа
Логин:
Пароль:
Поиск
Мы Рекомендуем:
Мнение Общественности
Какой объем должна занимать Мультизагрузочная флешка?
1. 8Gb
2. 4 gb
3. 16 Gb
4. 32 Gb
5. 2 Gb
6. 1 gb
7. 512 Mb
Всего ответов: 6056
Статистика

Всего на Сайте: 8
Гостей: 8
Пользователей: 0
GreenFlash
Главная » Статьи » Основные Инструкции » Linuх Системы

Собственный мультизагрузочный linux live desktop на USB/HDD c extlinux и простой ремастеринг linux live cd/dvd
Собственный мультизагрузочный linux live desktop на USB/HDD c extlinux и простой ремастеринг linux live cd/dvd

Доброго времени суток всем.

Собственно, написать статью в виде расширенного how-to на заявленную тему сподвигла злободневность в надобности вывешенной в сети "памятке линуксоводу" и повсеместная практика замалчивания или методического навязывания устаревших решений по вопросам мультизагрузки отдельных популярных дистрибутивов linux и их ремастеринга по вкусу и надобности пользователя,не обременённого глубоким знанием консольных заклинаний и лишним временем на танцы с бубном.

Речь пойдёт о Debian Testing/Sid,Ubuntu 12.04,Linux Mint 13,Aptosid 2011, Clonezilla-live-20120620-precise, openSUSE 12.1, CentOS 6.3, Fedora 17, PCLinux OS Full Monty, Mandriva 2011, Sabayon 9, Calculate 12,

iso образы которых вы можете без труда скачать с оффициальных страниц этих проектов в сети - хотя, в принципе, можно добавить в этот ряд любой live-dvd linux, но мне больше нравится именно такой набор, по моему мнению, сугубо личному, наиболее полно отражающий мейнстрим развития GNU/Linux Desktop, как для неофитов, так и для тёртых середнячков в среде его пользователей...

Будем предполагать, что на нашем ПК имеется некая инсталляция любимого дистрибутива linux или его live CD/DVD версия, правильно записанная на болванку, помещённая в лоток привода и загруженная после рестарта компьютера, тогда для подготовки к нашим экспериментам, нам лишь нужно установить несколько полезных пакетов программ = 

{fsarchiver,gparted,extlinux,syslinux,isomaster} - с помощью штатного

пакетменеджера.Например в Debian это делается так:

$su -c 'aptitude update;aptitude install fsarchiver gparted extlinux syslinux isomaster'

Теперь можно приступать к превращению нашей флешки, внешнего USB/HDD или локального раздела в универсальный мультизагрузочный девайс с собственным загрузчиком и меткой тома.

Проверим, какие устройства-носители нам доступны и как они воспринимаются системой:

$su -c 'fsarchiver probe' - предоставит нам подробный вывод дерева подключённых устройств хранения данных,с указанием меток тома (LABEL)

$su -c 'blkid' - предоставит нам UUID индентификаторы этих устройств
Если вы хотите отвести под свою коллекцию live дистрибутивов linux отдельную жилплощадь в виде небольшого локального раздела, вы можете воспользоваться GParted

$su -c 'gparted' - и создать новый логический раздел в свободном пространстве имеющегося расширенного(extended) раздела на вашем Ж/Д с файловой системой ext2 (во избежание "ошибок сегментирования" при запуске с него исполняемых и рабочих файлов) и меткой тома, к примеру "ISO", а также установим на него флаг "boot".Не лишним будет и удаление с него лишних рудиментов типа каталога "Lost&found" и рутового резерва реального дискового пространства:

$su -c 'fsarchiver probe'
$su -c 'tune2fs -r 0 -m 0 -c 0 /dev/sdXY' - где Х и Y должны быть заменены на реальные значения из вывода предыдущей команды, по новосозданному нами разделу.

$su -c 'mount /dev/sdXY /mnt && rm -rf /mnt/* && sudo umount /mnt' - смонтирует,полностью очистит наш новый раздел и размонтирует его.

Теперь мы можем подключить созданный нами раздел,как обычный раздел с данными в любимом файловом менеджере (dolphin,nautilus,thunar,pcmanfm...).

Для удобства дальнейшего обращения, поставим точку в вопросах прав и статуса нашего раздела:

$ su -c 'chown -R user:user /media/ISO && chmod -R +rwxrwxrwx /media/ISO'

-где "user" следует заменить на на реальный имярек пользователя, а путь задаётся согластно ранее установленной метке тома, определяющей точку монтирования в системный каталог /media.

Осталось прописать на избранное нами устройство MBR и установить загрузчик - в нашем случае extlinux,как наиболее быстрый в работе,в опытном сравнении с аналогами (syslinux,grub 0.97, Grub4Dos...):

$su -c 'dd if=/usr/lib/syslinux/mbr.bin of=/dev/sdXY'

$su -c 'extlinux -i /media/ISO' - extlinux ставится на примонтированный раздел!

$cp /usr/lib/syslinux/chain.c32
/usr/lib/syslinux/menu.c32
/usr/lib/syslinux
/vesamenu.c32
/usr/lib/syslinux/isolinux.bin /media/ISO - так же скопируйте из библиотек syslinux эти файлы и создайте конфигурационный файл для extlinux и отдельный каталог с конфигурационным файлом меню будущей коллекции "живых" дистрибутивов linux:

$touch /media/ISO/extlinux.conf /media/ISO/menu/linux.cfg

Выберите красивую картинку, конвертируйте её в .png и маштабируйте в 640х480, затем поместите в корень нашего загрузочного устройства под именем splash.png

Отредактируйте конфиг extlinux, указав ему,что и откуда следует читать и как выглядеть перед хозяином:

$nano /media/ISO/extlinux.conf - и вставьте туда следующее содержание, по вкусу изменив коды цветов и форм оформления из значений палитры цветовой настройки меню внешнего вида вашей ОС:

####################
default vesamenu.c32
prompt 0
timeout 300
menu title Your Universal MultiBoot Device
menu background splash.png
MENU WIDTH 72
MENU MARGIN 10
MENU VSHIFT 3
MENU HSHIFT 6
MENU ROWS 15
MENU TABMSGROW 20
MENU TIMEOUTROW 22
menu color title 1;36;44 #66A0FF #00000000 none
menu color hotsel 30;47 #C00000 #DDDDDDDD
menu color sel 30;47 #000000 #FFFFFFFF
menu color border 30;44 #D00000 #00000000 std
menu color scrollbar 30;44 #DDDDDDDD #00000000 none

label Linux Distributions
menu label Linux Distributions ->
MENU INDENT 1
kernel vesamenu.c32
APPEND /menu/linux.cfg
MENU DEFAULT

label Boot_from_Hard_Disk
menu label Continue to Boot from ^First HD
localboot 0x80

Сохраните ->Ctrl+X ->Y ->Enter

Теперь можно приступать к наполнению нашего мультизагрузочного девайса:
1.Debian:
Образ debian-live.iso распаковать в каталог debian в корне рабочего раздела /media/ISO с помощью менеджера архивов (file-roller) от простого пользователя
В каталоге /media/ISO/menu создать файл debian.cfg
В любимом текстовом редакторе открыть для редактирования файлы /media/ISO/menu/linux.cfg /media/ISO/menu/debian.cfg :
$gedit /media/ISO/menu/linux.cfg /media/ISO/menu/debian.cfg

В файле linux.cfg поместить следующие строки:
####################
default vesamenu.c32
prompt 0
menu title Linux Distributions
menu background splash.png
MENU WIDTH 72
MENU MARGIN 10
MENU VSHIFT 3
MENU HSHIFT 6
MENU ROWS 15
MENU TABMSGROW 20
MENU TIMEOUTROW 22
menu color title 1;36;44 #66A0FF #00000000 none
menu color hotsel 30;47 #C00000 #DDDDDDDD
menu color sel 30;47 #000000 #FFFFFFFF
menu color border 30;44 #D00000 #00000000 std
menu color scrollbar 30;44 #DDDDDDDD #00000000 none

label Debian Live
menu label Debian Live
MENU INDENT 1
kernel vesamenu.c32
APPEND /menu/debian.cfg

В файле debian.cfg поместить следующее:
####################################
menu title Debian Live Boot Menu
menu background /debian/isolinux/splash.png
menu color title * #FFFFFFFF *
menu color border * #00000000 #00000000 none
menu color sel * #ffffffff #76a1d0ff *
menu color hotsel 1;7;37;40 #ffffffff #76a1d0ff *
menu color tabmsg * #ffffffff #00000000 *
menu color help 37;40 #ffdddd00 #00000000 none
menu vshift 17
menu rows 10
default live

label live
menu label Run Debian Live
kernel /debian/live/vmlinuz
append initrd=/debian/live/initrd.img live-media-path=/debian/live boot=live config quiet splash nomodeset vga=791

MENU SEPARATOR
label <-- Back to Main Menu
kernel vesamenu.c32
append extlinux.cfg

Сохраните файл debian.cfg, а в файл linux.cfg нам предстоит добавить строки указаний на конфиги других дистрибутивов linux из нашего списка, добавляя их через промежуток в одну пустую строку и изменяя значения полей "label", "menu label" и "APPEND" в соответствии с желаемым названием дистра в меню загрузки и путём к загрузочному конфигу в каталоге /media/ISO/menu/*.cfg .

2.Ubuntu 12.04:
Загрузочный образ CD/DVD Ubuntu распаковать с помощью file-rolller в созданный в корне /media/ISO каталог ubuntu.
В каталоге /media/ISO/menu создать файл ubuntu.cfg
В любимом текстовом редакторе открыть для редактирования файл /media/ISO/menu/ubuntu.cfg :
$gedit /media/ISO/menu/ubuntu.cfg
В файле linux.cfg поместить следующие строки:

...
label Ubuntu Live
menu label Ubuntu Live
MENU INDENT 1
kernel vesamenu.c32
APPEND /menu/ubuntu.cfg

В файле ubuntu.cfg поместить следующее:
####################################
menu title Ubuntu Live Boot Menu
menu background /ubuntu/isolinux/splash.png
menu color title * #FFFFFFFF *
menu color border * #00000000 #00000000 none
menu color sel * #ffffffff #76a1d0ff *
menu color hotsel 1;7;37;40 #ffffffff #76a1d0ff *
menu color tabmsg * #ffffffff #00000000 *
menu color help 37;40 #ffdddd00 #00000000 none
menu vshift 17
menu rows 10
default live

label live
menu label Run Ubuntu Live
kernel /ubuntu/casper/vmlinuz
append initrd=/ubuntu/casper/initrd.gz boot=casper live-media-path=/ubuntu/casper quiet splash nomodeset --

MENU SEPARATOR
label <-- Back to Main Menu
kernel vesamenu.c32
append extlinux.cfg

Сохраните файл ubuntu.cfg

3.Linux Mint 13 "Maya":
Загрузочный образ DVD Linux Mint 13 распаковать с помощью file-rolller в созданный в корне /media/ISO каталог mint.
В каталоге /media/ISO/menu создать файл mint.cfg
В любимом текстовом редакторе открыть для редактирования файл /media/ISO/menu/mint.cfg :
$gedit /media/ISO/menu/mint.cfg
В файле linux.cfg поместить следующие строки:

...
label Linux Mint 13 Maya Live
menu label Linux Mint 13 Maya Live
MENU INDENT 1
kernel vesamenu.c32
APPEND /menu/mint.cfg

В файле mint.cfg поместить следующее:
####################################
menu title Linux Mint 13 "Maya" Live Boot Menu
menu background /mint/isolinux/splash.jpg
MENU WIDTH 72
MENU MARGIN 10
MENU VSHIFT 3
MENU HSHIFT 6
MENU ROWS 15
MENU TABMSGROW 20
MENU TIMEOUTROW 22
menu color title 1;36;44 #66A0FF #00000000 none
menu color hotsel 30;47 #C00000 #DDDDDDDD
menu color sel 30;47 #000000 #FFFFFFFF
menu color border 30;44 #D00000 #00000000 std
menu color scrollbar 30;44 #DDDDDDDD #00000000 none

default live

label live
menu label ^Run Linux Mint 13 Maya Live
kernel /mint/casper/vmlinuz
append initrd=/mint/casper/initrd.gz boot=casper config live-media-path=/mint/casper quiet splash nomodeset --

MENU SEPARATOR
label <-- Back to Main Menu
kernel vesamenu.c32
append extlinux.conf

Сохраните файл mint.cfg

4.Aptosid 2011
Загрузочный образ Aptosid 2011 открыть с помощью file-rolller и распаковать в корень загрузочного устройства всё содержимое, кроме каталога /boot
В каталоге /media/ISO создать каталог /boot и распаковать в него из образа каталог /boot/isolinux, каталог /boot/grub из образа распаковать в каталог /media/ISO/aptosid - может ещё пригодится...
В каталоге /media/ISO/menu создать файл aptosid.cfg
В любимом текстовом редакторе открыть для редактирования файл /media/ISO/menu/aptosid.cfg :
$gedit /media/ISO/menu/aptosid.cfg
В файле linux.cfg поместить следующие строки:

...
label AptoSid Linux Desktop "Povoq" Live
menu label AptoSid Linux Desktop "Povoq" Live
MENU INDENT 1
kernel vesamenu.c32
APPEND /menu/aptosid.cfg

В файле aptosid.cfg поместить следующее:
а)Для HDD

####################################
menu title AptoSid Linux Desktop "Povoq" Live
display /boot/isolinux/isolinux.msg
ui /boot/isolinux/gfxboot /boot/isolinux/bootlogo /boot/isolinux/isolinux.msg
default aptosid

label aptosid
find --set-root (hd0,X) - замените Х на № загрузочного раздела
kernel /boot/vmlinuz0.686
append initrd=/boot/initrd0.686 boot=fll fromhd quiet

label Boot_from_Hard_Disk
menu label Continue to Boot from ^First HD
localboot 0x80

label Memory_test_(memtest86+)
kernel /boot/memtest

MENU SEPARATOR
label <-- Back to Main Menu
kernel vesamenu.c32
append extlinux.conf

б)Для USB

####################################
menu title AptoSid Linux Desktop "Povoq" Live
display /boot/isolinux/isolinux.msg
ui /boot/isolinux/gfxboot /boot/isolinux/bootlogo /boot/isolinux/isolinux.msg
default aptosid

label aptosid
find --set-root=LABEL=ISO
kernel /boot/vmlinuz0.686
append initrd=/boot/initrd0.686 boot=fll fromusb quiet

label Boot_from_Hard_Disk
menu label Continue to Boot from ^First HD
localboot 0x80

label Memory_test_(memtest86+)
kernel /boot/memtest

MENU SEPARATOR
label <-- Back to Main Menu
kernel vesamenu.c32
append extlinux.conf

Сохраните файл aptosid.cfg

5.Clonezilla-live-20120620-precise
Образ Clonezilla-live-20120620-precise распаковать в каталог clonezilla в корне рабочего раздела /media/ISO с помощью менеджера архивов (file-roller) от простого пользователя
В каталоге /media/ISO/menu создать файл clonezilla.cfg
В любимом текстовом редакторе открыть для редактирования файлы /media/ISO/menu/clnzilla.cfg :
$gedit /media/ISO/menu/clnzilla.cfg
В файле linux.cfg поместить следующие строки:
####################
...
label Clonezilla
menu label Clonezilla Live
MENU INDENT 1
kernel vesamenu.c32
APPEND /menu/clnzilla.cfg

В файле clnzilla.cfg поместить следующее:
####################################
menu title Clonnezilla Live Boot Menu
menu background /clonezilla/isolinux/splash.png
menu color title * #FFFFFFFF *
menu color border * #00000000 #00000000 none
menu color sel * #ffffffff #76a1d0ff *
menu color hotsel 1;7;37;40 #ffffffff #76a1d0ff *
menu color tabmsg * #ffffffff #00000000 *
menu color help 37;40 #ffdddd00 #00000000 none
menu vshift 17
menu rows 10
default live

label live
menu label Run Clonezilla Live
kernel /clonezilla/live/vmlinuz1
append initrd=/clonezilla/live/initrd1.img boot=live live-media-path=/clonezilla/live hostname=precise live-config quiet noswap nolocales edd=on nomodeset noprompt ocs_live_run="ocs-live-general" ocs_live_extra_param="" ocs_live_keymap="" ocs_live_batch="no" ocs_lang="" video=uvesafb:mode_option=1024x768-32 ip=frommedia nosplash

MENU SEPARATOR
label <-- Back to Main Menu
kernel vesamenu.c32
append extlinux.conf

Сохраните файл clnzilla.cfg

6.openSUSE 12.1 Asparagus
Образ CD/DVD openSUSE 12.1 открыть с помощью менеджера архивов (file-roller) от простого пользователя и распаковать, последовательно:
содержимое /boot в /media/ISO/boot
прочее в корень загрузочного устройства (/media/ISO)
В каталоге /media/ISO/menu создать файл suse.cfg
В любимом текстовом редакторе открыть для редактирования файлы /media/ISO/menu/suse.cfg :
$gedit /media/ISO/menu/suse.cfg
В файле linux.cfg поместить следующие строки:
####################
label openSUSE 12.1 Asparagus Live
menu label openSUSE 12.1 Asparagus Live
MENU INDENT 1
kernel vesamenu.c32
APPEND /menu/suse.cfg

В файле suse.cfg поместить следующее:
####################################
default openSUSE 12.1 Asparagus Live
implicit 1
display isolinux.msg
ui gfxboot bootlogo isolinux.msg
prompt 1
timeout 200
label openSUSE 12.1 Asparagus Live
kernel /boot/i386/loader/linux
append initrd=/boot/i386/loader/initrd lang=ru_RU ramdisk_size=512000 ramdisk_blocksize=4096 splash=silent quiet preloadlog=/dev/null cddev=/dev/sdXY (замените X & Y на реальные значения,для использования на USB подставьте вместо cddev={} опцию usbdev или cddev=LABEL=ISO) bootfrom=LABEL=ISO showopts

MENU SEPARATOR
label <-- Back to Main Menu
kernel vesamenu.c32
append extlinux.conf

Сохраните файл suse.cfg

7.CentOS 6.3
Загрузочный образ DVD CentOS 6.3 распаковать с помощью file-rolller в созданный в корне /media/ISO каталог centos.
В каталоге /media/ISO/menu создать файл centos.cfg
В любимом текстовом редакторе открыть для редактирования файл /media/ISO/menu/centos.cfg:
$gedit /media/ISO/menu/centos.cfg
В файле linux.cfg поместить следующие строки:

...
label CentOS 6.3 DVD Live
menu label CentOS 6.3 DVD Live
MENU INDENT 1
kernel vesamenu.c32
APPEND /menu/centos.cfg

В файле centos.cfg поместить следующее:
####################################
menu title CentOS 6.3 Live
menu background /centos/isolinux/splash.jpg
MENU WIDTH 72
MENU MARGIN 10
MENU VSHIFT 3
MENU HSHIFT 6
MENU ROWS 15
MENU TABMSGROW 20
MENU TIMEOUTROW 22
menu color title 1;36;44 #66A0FF #00000000 none
menu color hotsel 30;47 #C00000 #DDDDDDDD
menu color sel 30;47 #000000 #FFFFFFFF
menu color border 30;44 #D00000 #00000000 std
menu color scrollbar 30;44 #DDDDDDDD #00000000 none

default CentOS Live

label CentOS Live
menu label Boot CentOS 6.3 Live
kernel /centos/isolinux/vmlinuz0
append initrd=/centos/isolinux/initrd0.img root=live:LABEL=ISO live_dir=/centos/LiveOS rootfstype=auto ro liveimg quiet nodiskmount nolvmmount rhgb vga=791 rd.luks=0 rd.md=0 rd.dm=0

MENU SEPARATOR
label <-- Back to Main Menu
kernel vesamenu.c32
append extlinux.conf

Сохраните файл centos.cfg

8.Fedora 17 Beefy Miracle
Загрузочный образ CD/DVD Fedora 17 распаковать с помощью file-rolller в созданный в корне /media/ISO каталог fedora.
В каталоге /media/ISO/menu создать файл centos.cfg
В любимом текстовом редакторе открыть для редактирования файл /media/ISO/menu/fedora.cfg:
$gedit /media/ISO/menu/fedora.cfg
В файле linux.cfg поместить следующие строки:

...
label Fedora Beefy Miracle Live
menu label Fedora Beefy Miracle Live
MENU INDENT 1
kernel vesamenu.c32
APPEND /menu/fedora.cfg

В файле fedora.cfg поместить следующее:
####################################
menu title Fedora Beefy Miracle Live
menu background splash.png
MENU WIDTH 72
MENU MARGIN 10
MENU VSHIFT 3
MENU HSHIFT 6
MENU ROWS 15
MENU TABMSGROW 20
MENU TIMEOUTROW 22
menu color title 1;36;44 #66A0FF #00000000 none
menu color hotsel 30;47 #C00000 #DDDDDDDD
menu color sel 30;47 #000000 #FFFFFFFF
menu color border 30;44 #D00000 #00000000 std
menu color scrollbar 30;44 #DDDDDDDD #00000000 none

default Fedora Beefy Miracle Live

label Fedora Beefy Miracle Live
menu label Boot Fedora Beefy Miracle Live
kernel /fedora/isolinux/vmlinuz0
append initrd=/fedora/isolinux/initrd0.img root=live:LABEL=ISO live_dir=/fedora/LiveOS rootfstype=auto ro liveimg quiet rhgb vga=791 rd.luks=0 rd.md=0 rd.dm=0 selinux 0 setenforce 0

MENU SEPARATOR
label <-- Back to Main Menu
kernel vesamenu.c32
append extlinux.conf

Сохраните файл fedora.cfg

9.PCLinuxOS Full Monty
Загрузочный образ CD/DVD Fedora 17 распаковать с помощью file-rolller в созданный в корне /media/ISO каталог pclosfm.
В каталоге /media/ISO/menu создать файл pclosfm.cfg
В любимом текстовом редакторе открыть для редактирования файл /media/ISO/menu/pclosfm.cfg :
$gedit /media/ISO/menu/pclosfm.cfg
В файле linux.cfg поместить следующие строки:

...
label PCLinuxOS FullMonty 2012
menu label PCLinuxOS FullMonty 2012 Live
MENU INDENT 1
kernel vesamenu.c32
APPEND /menu/pclosfm.cfg

В файле pclosfm.cfg поместить следующее:
####################################
menu title PCLinuxOS FullMonty 2012 Live
menu background /pclosfm/isolinux/back.jpg
MENU WIDTH 72
MENU MARGIN 10
MENU VSHIFT 3
MENU HSHIFT 6
MENU ROWS 15
MENU TABMSGROW 20
MENU TIMEOUTROW 22
menu color title 1;36;44 #66A0FF #00000000 none
menu color hotsel 30;47 #C00000 #DDDDDDDD
menu color sel 30;47 #000000 #FFFFFFFF
menu color border 30;44 #D00000 #00000000 std
menu color scrollbar 30;44 #DDDDDDDD #00000000 none

default LiveCD
prompt 1
timeout 90
ui /pclosfm/isolinux/gfxboot.com /pclosfm/isolinux/bootlogo
prompt 1
timeout 90

label LiveCD
kernel /pclosfm/isolinux/vmlinuz
append livecd=/pclosfm/livecd initrd=/pclosfm/isolinux/initrd.gz root=/dev/rd/3 vga=791 keyb=us splash=verbose(silent)

MENU SEPARATOR
label <-- Back to Main Menu
kernel vesamenu.c32
append extlinux.conf

Сохраните файл pclosfm.cfg

9.Mandriva 2011
Загрузочный образ CD/DVD Mandriva 2011 распаковать с помощью file-rolller в созданный в корне /media/ISO каталог mdv.
В каталоге /media/ISO/menu создать файл mdv.cfg
В любимом текстовом редакторе открыть для редактирования файл /media/ISO/menu/mdv.cfg :
$gedit /media/ISO/menu/mdv.cfg
В файле linux.cfg поместить следующие строки:

...
label Mandriva 2011 Live
menu label Mandriva 2011 Live
MENU INDENT 1
kernel vesamenu.c32
APPEND /menu/mdv.cfg

В файле mdv.cfg поместить следующее:
####################################
menu title Mandriva 2011 Live
menu background /mdv/isolinux/splash.jpg
MENU WIDTH 72
MENU MARGIN 10
MENU VSHIFT 3
MENU HSHIFT 6
MENU ROWS 15
MENU TABMSGROW 20
MENU TIMEOUTROW 22
menu color title 1;36;44 #66A0FF #00000000 none
menu color hotsel 30;47 #C00000 #DDDDDDDD
menu color sel 30;47 #000000 #FFFFFFFF
menu color border 30;44 #D00000 #00000000 std
menu color scrollbar 30;44 #DDDDDDDD #00000000 none

default Mandriva Live

label Mandriva Live
menu label Mandriva 2011 Live
kernel /mdv/isolinux/vmlinuz0
append initrd=/mdv/isolinux/initrd0.img root=live:LABEL=ISO live_dir=/mdv/LiveOS rootfstype=auto ro liveimg vga=791 desktop nopat rd_NO_LUKS rd_NO_MD noiswmd splash=silent logo.nologo nomodeset selinux 0

MENU SEPARATOR
label <-- Back to Main Menu
kernel vesamenu.c32
append extlinux.conf

Сохраните файл mdv.cfg

10.Sabayon 9
Загрузочный образ CD/DVD Sabayon 9 распаковать с помощью file-rolller в созданный в корне /media/ISO каталог sabayon.
В каталоге /media/ISO/menu создать файл sabayon.cfg
В любимом текстовом редакторе открыть для редактирования файл /media/ISO/menu/sabayon.cfg:
$gedit /media/ISO/menu/sabayon.cfg
В файле linux.cfg поместить следующие строки:

...
label Sabayon Linux Desktop 9.0 Live
menu label Sabayon Linux Desktop 9.0 Live
MENU INDENT 1
kernel vesamenu.c32
APPEND /menu/sabayon.cfg

В файле sabayon.cfg поместить следующее:
####################################
menu title Sabayon Linux 9 Live
menu background /sabayon/isolinux/back.jpg
menu color title * #FFFFFFFF *
menu color border * #00000000 #00000000 none
menu color sel * #ffffffff #76a1d0ff *
menu color hotsel 1;7;37;40 #ffffffff #76a1d0ff *
menu color tabmsg * #ffffffff #00000000 *
menu color help 37;40 #ffdddd00 #00000000 none
menu vshift 17
menu rows 10
default Sabayon

label Sabayon
menu label ^Start Sabayon 9 Live
find --set-root=LABEL=ISO
kernel /sabayon/boot/sabayon
append root=/dev/ram0 initrd=/sabayon/boot/sabayon.igz subdir=/sabayon aufs init=/linuxrc cdroot cdroot_type=ext2 looptype=squashfs loop=/sabayon/livecd.squashfs root=LABEL=ISO (или root=UUID=подставьте вывод blkid для вашего устройства!) splash=silent,theme:sabayon video=vesafb:ywrap, mtrr:3 vga=791 console=tty1 quiet --

MENU SEPARATOR
label <-- Back to Main Menu
kernel vesamenu.c32
append extlinux.conf

Сохраните файл sabayon.cfg

11.Calculate Linux 12
Загрузочный образ CD/DVD Calculate Linux 12 распаковать с помощью file-rolller в созданный в корне /media/ISO каталог calculate1.
В каталоге /media/ISO/menu создать файл calculate.cfg
В любимом текстовом редакторе открыть для редактирования файл /media/ISO/menu/calculate.cfg :
$gedit /media/ISO/menu/calculate.cfg
В файле linux.cfg поместить следующие строки:

...
label Calculate Linux Desktop 12.0 Live
menu label Calculate Linux Desktop 12.0 Live
MENU INDENT 1
kernel vesamenu.c32
APPEND /menu/calculate.cfg

В файле calculate.cfg поместить следующее:
####################################
menu title Calculate Linux Desktop 12.0 XFCE Live
menu background /calculate1/isolinux/boot.jpg
menu color title * #FFFFFFFF *
menu color border * #00000000 #00000000 none
menu color sel * #ffffffff #76a1d0ff *
menu color hotsel 1;7;37;40 #ffffffff #76a1d0ff *
menu color tabmsg * #ffffffff #00000000 *
menu color help 37;40 #ffdddd00 #00000000 none
menu vshift 17
menu rows 10
default CLDX

label CLDX
menu label Calculate Linux Desktop 12.0 XFCE Live
find --set-root (hd0,X) - замените Х на № вашего раздела или используйте --set-root=LABEL=ISO ~ --set-root=root=UUID=подставьте вывод blkid для вашего устройства!
kernel /calculate1/boot/vmlinuz subdir=/calculate1 root=/dev/ram0 init=/linuxrc looptype=squashfs unionfs cdroot_type=ext3 doload=ext3,nls_cp866,nls_utf8,squashfs,isofs,unionfs loop=/calculate1/livecd.squashfs root=UUID=подставьте вывод blkid для вашего устройства! nodevfs cdroot video=uvesafb:ywrap,1024x768-32@60,mtrr:3,splash=silent,theme:tty1 console=tty1 udev quiet noresume doscsi scandelay=3 VGA=791
initrd /calculate1/boot/initrd

MENU SEPARATOR
label <-- Back to Main Menu
kernel vesamenu.c32
append extlinux.cfg

Сохраните файл calculate.cfg
Добавьте в файл linux.cfg завершающие строки:
...
label Boot_from_Hard_Disk
menu label Continue to Boot from ^First HD
localboot 0x80

label <-- Back to Main Menu
kernel vesamenu.c32
append extlinux.conf
MENU SEPARATOR

Сохраните файл linux.cfg

Создание нашего мультизагрузочного устройства завершено, осталолось лишь прописать соответствующий пункт меню в grub или grub2 для нашего раздела с extlinux,для чего нужно просто добавить в файл /etc/grub.d/40_custom(grub2) следующие строки:

menuentry "LiveMultiBoot" {
set root=(hd0,X) - замените Х на № вашего раздела!
chainloader +1
}

Сохранить файл и выполнить:
$su -c 'update-grub' - или :
$su -c 'grub2-mkconfig -o /boot/grub/grub.cfg' - и при следующей загрузке компьютера в меню grub2 будет доступен соответствующий пункт, выбрав который, вы попадёте в созданное вами меню загрузчика extlinux и сможете проверить работоспособность ваших live дистрибутивов linux.
Для grub 0.97 следует добавить запись:

title LiveMultiBoot
root (hd0,Х) - замените Х на № вашего раздела!
chainloader +1

или

title LiveMultiBoot
root (hd0,Х) - замените Х на № вашего раздела!
configfile extlinux.conf

Ничто не мешает вам использовать такой же метод запуска из меню grub и для постоянно подключённого внешнего Ж/Д или USB/HDD.Для флеш накопителя вы можете вручную выставить приоритет загрузки USB устройств в настройках BIOS целевого компьютера.

_________________________________________________
_________________________________________________________
_________________________________________________

Пол-дела сделано - у нас есть рабочий мультизагрузочный девайс с зоопарком live дистрибутивов linux на борту, но это системы с дефолтными некрасивыми темами оформления,неполной локализацией, неполноценным набором ПО и корявыми настройками от разработчиков.
Естействено, лучше всех знающих вкусы и потребности пользователя, у которого, впрочем есть полное право с ними, всеведующими, не согласиться.

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

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

Для некоторых, типа Aptosid-a, например, или Clonezilla, какая-либо пересборка неактуальна в приципе, по причине их утилитарной ориентированности, от чего из них и выкинуто всё, что замедляет загрузку или отвлекает от функциональных действий, но когда речь идёт о десктопных системах, где live CD/DVD, по идее, должен играть демонстрационную, альтернативную стационарной установке роль, скупость оформления и начинки часто вызывает один вопрос: На кого работают их разработчики на самом деле, на конкурентов из MicroSoft?...

Итак, прежде всего для debian-based систем существует уникальная в своём роде утилита - Remastersys, способная быстро создать практически полный снимок состояния системы в формате live DVD с возможностью последующей установки на Ж/Д, как с обычного live-install носителя. Это работает в Debian, Linux Mint, Ubuntu, том же Aptosid-е, CranchBang-е, и вообще, в большинстве дистров этого семейства - достаточно отвести 10-15 ГБ.

Под раздел для временной установки, настройки и сборки этих систем в live DVD образ со своими темами оформления, сквозной русификацией, настроенными сервисами и отборным пользовательским ПО, на любой вкус и под любые задачи.

Об этом много материала в сети и я не намерен вдаваться в какую-либо критику по этому поводу, напротив желаю удачи и развития этому проекту - must have!
Опишу лишь один, не совсем очевидный новичку вариант использования возможностей Remastersys.

К примеру, можно создать полный бэкап системы:
$sudo remastersys backup custombackup.iso - и получить образ .iso на выходе, но во время создания образа программа честно отписывала про "...excluding extra files..." и в итоге hostname=user & host=user и запустив live DVD получите в терминале "user@user", а хочется "god@Heaven", но можно просто использовать этот полученный образ, как заготовку, распаковать его в каталог, где больше места, удалить из каталога casper файл filesystem.squashfs, загрузиться в live режиме с полученного или стандартного загрузочного образа ubuntu, смонтировать раздел с установленой на Ж/Д системой в /mnt, почистить кеши, всякие ненужности и выполнить:

$sudo mksquashfs /mnt/ /куда/распаковали/iso/casper/filesystem.squashfs - а затем простым скриптом завернуть всё это обратно в образ с пересчётом MD5-sums и инициализацией загрузочного сектора:
________

#!/bin/bash

IMAGE=ubuntu-heaven.iso
BUILD=iso

# Запаковываем содержимое iso/ в образ ubuntu-heaven.iso
echo ">>> Calculating MD5 sums..."
rm $BUILD/md5sum.txt
(cd $BUILD/ && find . -type f -print0 | xargs -0 md5sum | grep -v "boot.cat" | grep -v "md5sum.txt" > md5sum.txt)
echo ">>> Building iso image..."

mkisofs -r -V "Ubuntu Heaven Edition" \
-cache-inodes \
-J -l -b isolinux/isolinux.bin \
-c isolinux/boot.cat -no-emul-boot \
-boot-load-size 4 -boot-info-table \
-o $IMAGE $BUILD/

_______________________

$touch repack-iso.sh && nano repack-iso.sh && chmod +x repack-iso.sh && ./repack-iso.sh - в директории с каталогом iso, куда ранее распаковали образ бэкапа, предварительно подправив опции загрузки ядра, чтобы включить нужные службы и сервисы.

И если вы в установленной на Ж/Д системе были "god@Heaven", то и будете в live режиме с этого образа. 

Файл filesystem.squashfs можно также скопировать в соответствующий каталог на созданном ранее мультизагрузочном девайсе и делать так, хоть после каждого обновления установленной на Ж/Д системы, что бы всегда иметь под рукой актуальный live дистрибутив.

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

Кстати,в этом смысле,по большому счёту, отличие Debian от Ubuntu только в том, что filesystem.squashfs со слепком системы внутри, лежит не в casper, а в live...
Profit!

А вот с rpm-based,gentoo-based дистрибутивами, всё далеко не так просто, и хотя существуют сервисы, вроде SuseStudio и методики сборки образов с собственным софтом и репами aka Fedora,с помощью космически заумных скриптов, но на выхлопе всё это дело - УГ!

Единственный rpm-дистрибутив который имеет реальный аналог Remastersys - Mylivecd - это PCLinuxOS, но в этом дистре для инициализации загрузки используется простой файл livecd.sqfs, который можно без всяких там особых программ пересборки сваять, загрузившись в live режиме со стандартного образа PCLinuxOS, например, Phoenix Edition - он и так красивый, и да - там есть apt-get...

Единственный секретик, незнание коего может изрядно попортить вам нервы, это негластное правило соответствия версии ядра на исходном, стандартном live DVD PCLinuxOS и в системе с которой вы собираетесь снять сквош или создать кастомный ремикс с помощью Mylivecd, что значит только одно - делайте с системой, что хотите, ставьте что хотите, но не трогайте ядро, пусть остаётся дефолтное!

Вот уж, где вы действительно натолкнётесь на гордое и угрюмое молчание знатоков дистроводов на тему ремастеринга, так это на ресурсах Mandriva, CentOS, Fedora, хотя, что там, собственно таить-то, ведь просто смонтировав контейнеры squashfs.img, стандартно лежащие на их iso-шках в каталоге

LiveOS,в /mnt:
$sudo mount -o loop squashfs.img /mnt - и выполнив:
$file /mnt/LiveOS/ext3fs.img - вы сможете убедиться, что эти сквоши содержат не просто сжатые слепки этих систем, а каталоги с файлом файловой системы ext4 - для Fedora и CentOS, и ext3 - для Mandriva, которые можно легко создать где-нибудь, где побольше места, скажем в /media/DATA/sfs и тогда:

$dd if=/dev/zero of=ext3fs.img bs=1M count=5500 - или сколько занимает места установленная и настроенная (соблюдая тождество версии ядра на live DVD и в системе, и без проприетарных драйверов на видеокарту! хотя, можно и рискнуть...) Fedora (CentOS) на разделе для вивисекции ОС, и далее, после перезагрузки в Fedora:

$cd /media/DATA/sfs && /sbin/mkfs.ext4 -F ext3fs.img && /sbin/tune2fs -r 0 -m 0 -c 0 -L 'LiveOS' ext3fs.img && sudo mount -t ext4 -o loop ext3fs.img /mnt && sudo rm -rf /mnt/* && sudo rsync -varp /* /mnt/ --exclude=/{mnt,sys,proc,media,var/tmp/kdecache-user}/ && sudo mkdir /mnt/mnt /mnt/media /mnt/proc /mnt/sys LiveOS && sudo umount /mnt && mv ext3fs.img LiveOS && cd && sudo /sbin/mksquashfs /media/DATA/sfs/ /media/DATA/squashfs.img - Создаём, настраиваем, чистим файл с ФС ext4, копируем йерархию корня ФС установленной системы в смонтированый в /mnt файл ext3fs.img.

По окончании создаём системные каталоги, исключённые при копировании и каталог-оболочку для файла ext3fs.img, размонтируем файл ext3fs.img, перемещаем его в каталог-оболочку, переходим в домашнюю директорию и компилим новый сквош-файл.

Когда squashfs.img получен, можно легко подменить им оригинальный образец в live образе Fedora CentOS) с помощью программы Isomaster, ну и заменить им оригинал на нашем мультизагрузочном девайсе по путям /media/ISO/fedora/LiveOS & /media/ISO/centos/LiveOS /media/ISO/mdv/LiveOS.

Абсолютно тоже самое можно проделать и с установленной и настроенной Mandriva на сборочном разделе, за исключением того, что следует создать файл ext3fs.img c ФС ext3 (/sbin/mkfs.ext3 -F ext3fs.img...)

Завершает обзор ремастеринга rpm-based дистрибутивов openSUSE.

Здесь создатели дистра перешли на использование вместо squashfs контейнера clicfs, который реально предоставляет втрое превосходящее возможности сквоша сжатие.

Кстати, имейте ввиду эту ФС, если вам понадобится что-либо очень сильно ужать, жаль, что, пока, clicfs нормально работает только на openSUSE, но может портируют-таки и на Debian, вах, вах...

Ну, ладно, здесь тоже довольно простой алгоритм действий: ставим систему на сборочный раздел, настраиваем, идём в любимый каталог /media/DATA/sfs и создаём файл fsdata.ext3 с ФС ext4:

$dd if=/dev/zero of=fsdata.ext3 bs=1M count=5500 - или сколько занимает места установленная и настроенная (соблюдая тождество версии ядра на live DVD и в системе!)

$/sbin/mkfs.ext4 -F fsdata.ext3 && /sbin/tune2fs -r 0 -m 0 -c 0 -L 'LiveOS' fsdata.ext3 && su -c 'mount -t ext4 -o loop fsdata.ext3 /mnt' && su -c 'rm -rf /mnt/*' && su -c 'rsync -varp /* /mnt/ --exclude=/{mnt,sys,proc,media,var/tmp/kdecache-user}/' && su -c 'mkdir /mnt/mnt /mnt/media /mnt/proc /mnt/sys' && su -c 'umount /mnt' - создаём,настраиваем,чистим файл с ФС ext4.

Копируем йерархию корня ФС установленной системы в смонтированый в
/mnt файл fsdata.ext3,
по окончании создаём системные каталоги, исключённые при копировании, размонтируем файл fsdata.ext3, затем сжимаем его с помощью clicfs:

$su -c 'zypper ref;zypper in clicfs' - ставим
$su -c 'mkclicfs fsdata.ext3 openSUSE-12.1-livecd-kde-read-only.i686-2.8.0' - жмём
 
С помощью Isomaster подменяем полученным архивом оригинальный в образе openSUSE и просто заменяем этим архивом старый,дефолтный сюзевский контейнер в корне нашего мультизагрузочного девайса:

$rm -f /media/ISO/openSUSE-12.1-livecd-kde-read-only.i686-2.8.0 && mv -vf openSUSE-12.1-livecd-kde-read-only.i686-2.8.0 /media/ISO

Пользуемся.

С gentoo-based и иными sources-based дистрами всё ещё проще, чем с RedHat-овским выводком.

Достаточно просто установить, настроить (соблюдая тождество версии ядра на live DVD и в системе!), скомпилить из установленной системы новый сквош корня, заменить им старый и вперёд.
Там за революционными решениями, вроде clicfs не гоняются, используют проверенный временем squashfs, и не торопятся отказываться от изживших себя в прошлом веке глупостей, типа масок пакетов, aka Gentoo, и долгого, упорного, красноглазого порно с компилянием всего и вся из исходников, в закосе под BSD, вместе с фряхой, безнадёжно устарев на фоне быстрых и экономных к месту на Ж/Д бинарных дистров, aka Debian & Fedora, отчего и не были рассматриваемыми в этой статье, отражающей сугубо личное мнение её автора.

Рекомендую к прочтению и вот этот материал:
backup-debian-ubuntu-live-cd-dvd-live-usb

Don't worry,be happy!
Deblanck
Категория: Linuх Системы | Добавил: deblanck (18.09.2012) | Автор: deblanck
Просмотров: 9920 | Комментарии: 4 | Рейтинг: 5.0/2
Всего комментариев: 4
avatar
1
> $su -c 'dd if=/usr/lib/syslinux/mbr.bin of=/dev/sdXY'
sdX, а не sdXY.

> localboot 0x80
Не приведёт ли это к запуску той же самой флешки, с которой уже была загружена система? Не лучше ли chain.c32 hd1 swap?

> label aptosid
> find --set-root (hd0,X) - замените Х на № загрузочного раздела
> ...
> menu label Calculate Linux Desktop 12.0 XFCE Live
> find --set-root (hd0,X) - замените Х на № вашего раздела или используйте --set-root=LABEL=ISO ~ --set-root=root=UUID=подставьте вывод blkid для вашего устройства!
> ...
> label Sabayon
> menu label ^Start Sabayon 9 Live
> find --set-root=LABEL=ISO
В extlinux нет директивы find, как и понятия "корневого устройства".

> cddev=/dev/sdXY (замените X & Y на реальные значения,
А где гарантии, что они останутся теми же даже на одной машине? Не стоит рекомендовать этот способ.

В остальном Ваши примеры конфигов extlinux никаких проблем не имеют, но не лучше ли описать принцип написания таких конфигов по существующим?

Да и форматирование текста стоит разнообразить. Хотя бы - вынести конфиги в [code].
avatar
2
"> find --set-root=LABEL=ISO
В extlinux нет директивы find, как и понятия "корневого устройства". "
Возможно,это и так,но почему тогда,с этой директивой загрузка идёт без проблем,как с флешки,так и с локального раздела,а без неё не идёт вообще?Возможно вам стоит учесть,что extlinux развивается быстреее Grub4Dos и вероятно,может оперировать какими-то фитчами grub & grub2?...На самом деле это не еденичный пример,как вы понимаете,уважаемый,некоторые вещи работают,вообще,в зависимости от фаз луны,а некоторые не работают там,где положенно,по необьяснимым причинам...Мне нет интереса разбираться,почему это так,я просто описываю код,который у меня на десятках машин приводил к успешной загрузке и меня мало волнует,есть сие в extlinux согластно доку и ману или нет - это скорее к вам,программистам интересный вопрос:а почему ЕЩЁ не задокументированно?
"> $su -c 'dd if=/usr/lib/syslinux/mbr.bin of=/dev/sdXY'
sdX, а не sdXY. " - вы говорите,но,ведь я веду речь об установке MBR на локальный раздел,прежде всего,а по отношению к флешке это,по моему,само сабой разумеется,но,если нет,то спасибо за уточнение для публики.
"> cddev=/dev/sdXY (замените X & Y на реальные значения,
А где гарантии, что они останутся теми же даже на одной машине?..." - они могут измениться,если вы вручную переподключите их,аппаратно,но тогда вы можете внести соответствующие поправки в код.Следует также учитывать,что этот опцион применяется к загрузке с локального раздела,что бы обмануть скрипты загрузки,без копания в initrd и навязать сщитать локальный раздел Ж/Д устройством "cdrom",ну и монтируется он,соответственно в /cdrom c опцией "ro" (su -c 'mount -o remount,rw /dev/sdXY')
"> localboot 0x80
Не приведёт ли это к запуску той же самой флешки, с которой уже была загружена система? Не лучше ли chain.c32 hd1 swap?" - честно,не пробовал.Вот,за это спасибо.В любом случае,предоставленный код не лицензирован и свободно подлежит исправлениям,что ест-вно приветствуется...
avatar
3
> почему тогда,с этой директивой загрузка идёт без проблем,как с флешки,так и с локального раздела,а без неё не идёт вообще?Возможно вам стоит учесть,что extlinux развивается быстреее Grub4Dos и вероятно,может оперировать какими-то фитчами grub & grub2?...
У меня - не идёт. Директивой не пользуюсь, но всё работает. Аналогично - в автора liberte linux.
Фичами GRUB и GRUB2 Syslinux не пользуется, почитайте исходники.

> само сабой разумеется
Более очевидные вещи вроде -o loop, который в последних версиях ядра стал необязательным, Вы указываете. Почему бы не указать и эту?

> они могут измениться,если вы вручную переподключите их,аппаратно,но тогда вы можете внести соответствующие поправки в код.Следует также учитывать,что этот опцион применяется к загрузке с локального раздела,что бы обмануть скрипты загрузки,без копания в initrd и навязать сщитать локальный раздел Ж/Д устройством "cdrom",ну и монтируется он,соответственно в /cdrom c опцией "ro" (su -c 'mount -o remount,rw /dev/sdXY')
И что, так и редактировать menu.lst постоянно? Скучно, я лучше компакт-диском воспользуюсь, хотя мог бы просто прописать UUID устройства: он меняется реже.
avatar
4
deblanck, тебе просто НЕВЕРОЯТНЫЙ респектище. И это даже с тем, что я пока полностью не читал статью. Дело в том, что я как раз решил собрать себе дистрибутив, и тут как вовремя такая статья.

Эм... почитал, все ок, но... не хватает все это оформить более читаемо. Один сплошной текст - это жуть smile
avatar
Copyright GreenFlash © 2016
Рейтинг@Mail.ru