Собственный мультизагрузочный 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 это делается так:
Теперь можно приступать к превращению нашей флешки, внешнего 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...).
Для удобства дальнейшего обращения, поставим точку в вопросах прав и статуса нашего раздела:
-где "user" следует заменить на на реальный имярек пользователя, а путь задаётся согластно ранее установленной метке тома, определяющей точку монтирования в системный каталог /media.
Осталось прописать на избранное нами устройство MBR и установить загрузчик - в нашем случае extlinux,как наиболее быстрый в работе,в опытном сравнении с аналогами (syslinux,grub 0.97, Grub4Dos...):
$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:
Выберите красивую картинку, конвертируйте её в .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
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
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
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
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..."
$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:
По окончании создаём системные каталоги, исключённые при копировании и каталог-оболочку для файла 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...)
Здесь создатели дистра перешли на использование вместо 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:
С помощью Isomaster подменяем полученным архивом оригинальный в образе openSUSE и просто заменяем этим архивом старый,дефолтный сюзевский контейнер в корне нашего мультизагрузочного девайса:
С gentoo-based и иными sources-based дистрами всё ещё проще, чем с RedHat-овским выводком.
Достаточно просто установить, настроить (соблюдая тождество версии ядра на live DVD и в системе!), скомпилить из установленной системы новый сквош корня, заменить им старый и вперёд. Там за революционными решениями, вроде clicfs не гоняются, используют проверенный временем squashfs, и не торопятся отказываться от изживших себя в прошлом веке глупостей, типа масок пакетов, aka Gentoo, и долгого, упорного, красноглазого порно с компилянием всего и вся из исходников, в закосе под BSD, вместе с фряхой, безнадёжно устарев на фоне быстрых и экономных к месту на Ж/Д бинарных дистров, aka Debian & Fedora, отчего и не были рассматриваемыми в этой статье, отражающей сугубо личное мнение её автора.
> $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].
"> 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?" - честно,не пробовал.Вот,за это спасибо.В любом случае,предоставленный код не лицензирован и свободно подлежит исправлениям,что ест-вно приветствуется...
> почему тогда,с этой директивой загрузка идёт без проблем,как с флешки,так и с локального раздела,а без неё не идёт вообще?Возможно вам стоит учесть,что 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 устройства: он меняется реже.
deblanck, тебе просто НЕВЕРОЯТНЫЙ респектище. И это даже с тем, что я пока полностью не читал статью. Дело в том, что я как раз решил собрать себе дистрибутив, и тут как вовремя такая статья.
Эм... почитал, все ок, но... не хватает все это оформить более читаемо. Один сплошной текст - это жуть