Порой бывает так - что после обновления система ведет себя неадекватно.
И так сразу не скажешь - это связано с недоделанным обновлением, или что-то в системе поломали(лось).
Также иногда хочется потыкать другой дистр, но только потыкать. Без установки его на соседний раздел, как мало это не занимало бы времени, и насколько ни к чему не обязывающей процедурой это небыло бы. Яркий пример - при переходе с gnome2 на gnome3 хочется попробовать cldx или CLsD .
@ @
В общем - я сейчас хочу рассказать о livecd или live-flash но не livecd и не live-flash
Дело в том, что gentoo linuxrc загрузчик из initrd (это такой скрипт, который разбирает большинство параметров передаваемых ядру при загрузке, и исходя из них выполняет необходимые действия) умеет монтировать iso-образ как cd-диск при помощи параметра isoboot.
@ @
С другой стороны - grub2 обладает очень приятной особенностью - он умеет подключать файлы-образы известных ему файловых систем(в т.ч. и iso9660) как loopback-устройства, и брать с них нужные файлы (в нашем случае vmlinux и initrd)
@ @
Итак, не буду больше размусоливать и перейду к описанию действий:
Для начала определимся ОТКУДА и КАКОЙ iso-образ мы собираемся грузить.
Допустим - вы сделали все по документации, и скачали образ в /var/calculate/linux
Таким образом предположим, что полное имя файла образа у вас /var/calculate/linux/cldx-11.15-i686.iso
теперь узнаем на какой партиции у вас этот образ лежит
Если при установке вы все делали по документации - то у вас получится нечто вроде
*@
df -h /var/calculate/linux/cldx-11.15-i686.iso*
Файловая система Размер Использовано Дост Использовано% Cмонтировано в
/dev/sda5 XXXG YYYG ZZZG NN% /var/calculate
@
Я же использовал lvm, и поэтому у меня получилось слегка подругому
*@
df -h /var/calculate/linux/cldx-11.15-i686.iso*
Файловая система Размер Использовано Дост Использовано% Cмонтировано в
/dev/mapper/VgName-var_calculate XXXG YYYG ZZZG NN% /var/calculate
@
Если же вы не выделяли отдельную партицию под /var/calculate, то результатом для вас будет нечто вроде
/dev/sda2 XXXG YYYG ZZZG NN% /
В любом случае - запоминаем значения “Файловая система” и “Cмонтировано в”
и создаем в корне этой партиции “маркер” livecd
echo calculate >/var/calculate/livecd
Теперь открываем из под root-а конфиг grub-а
nano -Ysh /boot/grub/grub.cfg
Находим строку
### END /etc/grub.d/10_linux ###
и вписываем после этой строки следующее
<code class="bash">
set calculate_iso="<полное имя файла, без точки монтирования>"
## для классического случая, когда /var/calculate в /dev/sda5
## либо моего случая с /var/calculate в LogicalVoluve
## и при полном имени файла /var/calculate/linux/cldx-11.15-i686.iso
## получим:
# set calculate_iso="/linux/cldx-11.15-i686.iso"
## Если /var/calculate не находится в отдельной партиции
## то получаем
# set calculate_iso="/var/calculate/linux/cldx-11.15-i686.iso"
## задаем партицию на которой находится образ
## тут проще привести пример
## /dev/sda5
# set iso_dev="(hd0,msdos5)"
## /dev/mapper/VgName-var_calculate
# set iso_dev="(VgName-var_calculate)"
## укажем тип fs на которой лежит образ, узнать можно
## grep /var/calculate /proc/mounts
## у меня это
# set dev_fs="ext4"
## Все, теперь создаем пункт меню
menuentry "boot ${calculate_iso} as LiveCD" --class calculate --class gnu-linux --class gnu --class os {
echo "Set parameters"
set calculate="lang:ru_RU"
set calculate="${calculate},keymap:ru_RU"
set calculate="${calculate},timezone:Europe/Chisinau"
## тут задайте свое ---------------^^^
set calculate="${calculate},video=auto"
set calculate="${calculate},composite=off"
## два предыдущих параметра также укажите свои
set calculate="calculate=${calculate}"
set kernel_scratch="scratch"
set kernel_docache="docache"
## оба предыдущих параметра по желанию
set md_dm_dev="domdadm dolvm"
## это --------^^ и это -^^ задать при необходимости
echo "Set loopback device ${calculate_iso}"
loopback loop "${iso_dev}/${calculate_iso}"
echo 'Load kernel...'
linux (loop)/boot/vmlinuz "isoboot=${calculate_iso}" root=/dev/ram0 init=/linuxrc looptype=squashfs unionfs doload=squashfs,unionfs,isofs,${dev_fs} loop=/livecd.squashfs nodevfs cdroot video=uvesafb:ywrap,1024x768-32@60,mtrr:3,splash=silent,theme:tty1 console=tty1 udev noresume doscsi scandelay=3,panic=15 ${md_dm_dev} ${kernel_scratch} ${kernel_docache} ${calculate}
echo 'Load initrd...'
initrd (loop)/boot/initrd
echo 'boot...'
}
</code>
Все, можете перезагружать компьютер.
Последним пунктом в меню груба будет загрузка вашего образа
PS
Я специально предложил редактировать grub.cfg, поскольку ОСТАВЛЯТЬ ЭТОТ ПУНКТ МЕНЮ GRUB-а ОЧЕНЬ НЕБЕЗОПАСНО с liveCD очень легко получить root-а и делать с системой и данными все что угодно. А этот файл каждый раз при обновлении ядра пресоздается. И следовательно, этот пункт меню будет жить до ближайшего апдейта.
UPD
PPS
Если очень хочется сохранить этот пункт даже после обновления ядра несмотря на небезопасность (кстати, тут опыты с паролем на grub2 очень в тему), прописать это все можно в файл /boot/grub/custom.cfg
(почему - думаю тем кто смотрел /boot/grub/grub.cfg объяснять не надо)