Site Mascot
 

Не удивляйтесь, сайт переехал: был http://smacker.fatal.ru, стал http://smacker.heliohost.org.

Мультизагрузочная флешка

23.10.2011 13:07

В прошлом остались загрузочные дискеты, CD и DVD. Теперь настали времена, когда главным внешним загрузочным устройством можно считать USB-накопитель. И этот рассказ о том, как сделать такой загрузочный носитель самостоятельно, имея флешку, линукс и образы ISO, которые-то и хочется загружать с флешки.

 
Итак, речь пойдет о мультизагрузочной флешке — то есть о флешке, которая позволяет не только загружать какую-то операционную систему, но и предоставляет различные варианты загрузки. Разумеется, всё сказанное здесь применимо и к внешним USB-винчестерам, и картам памяти (если компьютер поддерживает загрузку с них) и аналогичным устройствам. К процессу, само собой, предъявляется простое условие: флешка должна оставаться по возможности в неизменном виде, по-прежнему пригодной для хранения и переноса файлов. То есть, конечно, можно отформатировать флешку в ext2 и установить систему на неё, можно скачать готовый образ подходящего размера и записать его на носитель посредством dd — но мы бы хотели ограничиться минимальным воздействием, оставив флешку простым носителем с vfat, скопировав туда некоторые файлы. С другой стороны, в качестве исходного материала мы будем иметь дело почти наверняка с образами ISO, которые предполагается записывать на CD/DVD.
Прежде всего, позволю себе высказаться в критическом духе относительно unetbootin. Поясню: в нынешнее время «автоматизации линукса» ответом на вопрос «как сделать загрузочную флешку» как правило будет «используй unetbootin», который-де сделает всё сам. Так вот, unetbootin — говно, медленное и кривое, превращающее простую, на самом-то деле, операцию в нечто долгое и трудно контроллируемое. Поэтому, если вам предложили использовать unetbootin, не соглашайтесь. Лучше всего обойтись привычным загрузчиком GRUB2 (даже и первым, на самом-то деле, можно).

 

Именно так. Если у вас уже есть работающий линукс, то почти со стопроцентной вероятностью у вас есть и GRUB2 (a вот даже syslinux-а может и не быть). А чтобы его настроить — нужен только текстовый редактор. И, наконец, чтобы собственно перенести файлы на флешку достаточно cp или простого файлового менеджера. Всё это практически лежит под ногами у любого пользователя линукс. Итого вывод: unetbootin не нужен. И даже вреден, ибо относится к тому классу программ, которые из простых действий, легко выполняемых на коленке подручными средствами, создают видимость чего-то сложного и непонятного.
Рассмотрим последовательность действий, которые предстоит предпринять. Во-первых, на флешку надо установить загрузчик — для определённости это будет GRUB2. Во-вторых, на флешку нужно скопировать нужные файлы (я рассмотрю несколько вариантов). Наконец, для загрузчика нужно составить конфигурационный файл — то есть меню загрузки. Я постараюсь привести такие примеры, чтобы на их основе можно было вывести общий алгоритм действий, а не просто копировать один-в-один.

 

Установка GRUB2
Прежде всего, нужно точно узнать, как называется в системе устройство, на которое мы будем ставить загрузчик, и куда оно подмонтировано. Например, так — подсоединить устройство, подождать немного, и посмотреть конец вывода команды dmesg:
 smacker@Battlestar:~$ dmesg | tail -n 15
 [270157.920246] usb 2-1: configuration #1 chosen from 1 choice
 [270157.922631] scsi32 : SCSI emulation for USB Mass Storage devices
 [270157.924921] usb-storage: device found at 27
 [270157.924924] usb-storage: waiting for device to settle before scanning
 [270162.924466] usb-storage: device scan complete
 [270162.925645] scsi 32:0:0:0: Direct-Access              USB DISK 2.0     PMAP PQ: 0 ANSI: 0 CCS
 [270162.926419] sd 32:0:0:0: Attached scsi generic sg2 type 0
 [270164.332890] sd 32:0:0:0: [sdb] 3913728 512-byte hardware sectors: (2.00 GB/1.86 GiB)
 [270164.333378] sd 32:0:0:0: [sdb] Write Protect is off
 [270164.333383] sd 32:0:0:0: [sdb] Mode Sense: 23 00 00 00
 [270164.333387] sd 32:0:0:0: [sdb] Assuming drive cache: write through
 [270164.335489] sd 32:0:0:0: [sdb] Assuming drive cache: write through
 [270164.335495]  sdb: sdb1
 [270164.336209] sd 32:0:0:0: [sdb] Attached SCSI removable disk
 [270165.268570] FAT: utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive!
 
Как видно, моя флешка — диск /dev/sdb. Альтернативно, если флешка подключается автоматически (а это в наши дни почти наверняка), посмотреть вывод команды mount и найти там строку, относящуюся к флешке (например, по имени тома); скорее всего, это будет последняя строка:
 smacker@Battlestar:~$ mount
 [...]
 /dev/sdb1 on /media/MULTISYSTEM type vfat (rw,nosuid,nodev,uhelper=udisks,uid=1000,gid=1000,shortname=mixed,dmask=0077,utf8=1,showexec,flush)
 
Итак, я в дальнейшем вместо определённого устройства буду использовать /dev/sdX — вместо этого вы должны подставить имя вашего устройства. Почему я так акцентирую на этом внимание? Потому что поставить загрузчик на другое устройство — довольно нежелательное действие. Вы должны быть уверены, что ставите его именно на флешку.

 

Чтобы установить GRUB2, нужно выполнить команду — само собой, получив полномочия суперпользователя root (дописав в начале строки волшебное слово sudo, например).
 grub-install --force --no-floppy --root-directory=/drive/mount/point /dev/sdX
 
где /drive/mount/point — путь к каталогу, куда примонтирована флешка. У меня в примерах выше это был каталог /media/MULTIBOOT, у вас будет что-то другое (точно говорю). То есть когда grub ставил я, то команда имела вид (только не надо её копировать буквально) grub-install —force —no-floppy —root-directory=/media/MULTBOOT /dev/sdb
На самом деле, если вы получили ответ что grub был установлен и «no error reported», то на этом и всё. В противном случае, надо найти ошибку и исправить её (прозреваю, что скорее всего не были получены права рута).

 

Перенос файлов и конфигурирование загрузчика
Если посмотреть на проблему в общем виде, то правка конфигурационного файла делается или для того, чтобы изменить внешний вид меню загрузки или чтобы добавить/удалить пункты из меню. Для начала немного расскажу об эстетической стороне дела, чтобы снять этот вопрос с повестки дня и перейти к более насущным вещам.
Итак, по умолчанию меню выглядит уныло (вернее, его нет вообще, потому что нет конфига, так что создайте файл grub.cfg в каталоге /boot/grub на флешке). Лично мне захотелось применить фоновое изображение и соответственно изменить цвета, которыми отображается текст. В процессе я столкнулся с тем, что мне потребовалось указать файл подходящего шрифта, иначе у меня были проблемы с отображением текста. Это было довольно давно, так что подробностей я не помню, но файл шрифта прикладываю, помнится мне, я его тогда искал. Может, пригодится.
В результате мой конфигурационный файл grub.cfg начинается так:
 insmod font
 loadfont /boot/fonts/unicode.pf2
 set gfxmode=800x600
 insmod vbe
 insmod gfxterm
 terminal_output gfxterm
 insmod png
 background_image /boot/img/tree.png
 set color_normal=black/black
 set color_highlight=green/black
 
Как видно, в каталоге boot, который после установки grub-а появился на флешке, я сделал каталоги img и fonts, куда и положил соответствующие файлы. Результат выглядит так:
Меню загрузчика GRUB2
Может это и не бог весть какая кастомизация, но мне вполне хватает; желающие экспериментировать в этом направлении для получения более впечатляющих результатов могут поискать в гугле по ключевым словам «customize grub».

 

Собственно, далее в моём конфиге идут только пункты меню. И здесь я хочу обратить внимание на особенность, связанную с версиями grub-а. В GRUB2 появился модуль возвратно-петлевого устройства, который позволяет монтировать образы (ISO, как минимум) так же, как и в собственно в линуксе. В первом grub-е этой возможности не было, поэтому если вам пришлось поставить его, то придётся как-то обходиться без loopback. С другой стороны, хочется заметить, что loopback в grub не решает проблемы, которую мы интуитивно хотели бы решать с его помощью: он не позволяет передавать управление другому загрузчику. То есть нам бы хотелось, чтобы можно было подключить образ через loopback, сказать chainloader+1 и запустить загрузчик с образа (который загрузился бы, если бы мы записали образ на болванку), но так сделать нельзя. Из этого следует не вполне утешительный вывод: просто накидать образов ISO на флешку не получится. Следовательно, нужно посмотреть, какие загрузочные опции используются для загрузчика в образе, и перенести их в конфигурационный файл grub-а на нашей флешке. Как правило, это означает «прочитать конфиг syslinux.cfg/isolinux.cfg и переписать нужные пункты в стиле grub». Впрочем, это надо сделать в общем-то один раз и навсегда. Да и не так уж это сложно.
Спрашивается, что же тогда за выгода от loopback? Как минимум, он может решить проблему с некоторыми образами, где тем или иным образом положение файлов на носителе «зафиксировано» — в скриптах ли, в образе initrd или ещё где-то. То есть, может получиться так, что образ — если скопировать его содержимое на флешку — будет работать только при неизменных названиях каталогов; и если обнаружатся два образа, где каталоги называются одинаково (boot, syslinux, live или ещё как-то), то переименовать для разрешения конфликта их будет нельзя — не будут работать. В таком случае мы можем зато использовать loopback и обращаться напрямую «вовнутрь» образа ISO, который может называться как угодно и лежать где угодно, так что содержимое флешки будет аккуратным и структурированным.
Как уже можно было заметить, я допускаю копирование на носитель не собственно образов ISO, но и их содержимого (например, можно открыть образ ISO меджером архивов file-roller и легко извлекать из него файлы). Смысл в этом есть, например, когда в образе есть что-то лишнее, что будет только занимать место на флешке. Или если образ занимает более 4 гигабайт, а составляющие его файлы по отдельности — все меньше. Мне же лично так как-то ближе и приятнее. С другой строны, хранить образы ISO в неизменном виде имеет смысл тогда, когда флешку предполагается использовать и как архив образов, чтобы потом при случае записывать их на болванки и, например, раздавать друзьям. Выбор того или иного метода — в основном на совести «компоновщика» флешки.

 

В целом, общая картина различий между конфигурационными файлами GRUB и isolinux/syslinux такая:
В GRUB:
 menuentry "название_пункта_меню" {
 	linux /путь/к/ядру параметры --
 	initrd /путь/к/образу/временной/файловой/системы
 }
 
В sys/isolinux:
 LABEL название_пункта_меню
 KERNEL /путь/к/ядру
 APPEND параметры initrd=/путь/к/образу/временной/файловой/системы параметры
 
В grub можно указать ещё множество дополнительных команд, как и в isolinux, но костяк всё же сводится к вышеуказанным схемам.

 

Live-CD
Итак, разберу ряд пунктов моего меню, поясняя принцип их составления. Для начала, Knoppix 6.7.1, образ для CD. По правде сказать, я пробовал запускать его через loopback, и в итоге получал только долгий поиск своей сжатой файловой системы и ошибку. Чтобы он работал нормально, проще всего оказалось выложить файлы из образа (то есть извлечь из образа каталог knoppix с его содержимым) прямо на флешку и перенести linux и minirt.gz из каталога /boot/isolinux (в образе диска) в каталог knoppix (уже на флешке). Запись для кноппикса в grub.cfg выглядит так:
 menuentry "Knoppix 6.7.1" {
 	linux /knoppix/linux  ramdisk_size=100000 lang=en vt.default_utf8=0 apm=power-off nomce libata.force=noncq loglevel=1 tz=localtime --
 	initrd /knoppix/minirt.gz
 }
 
В оригинале (см. файл /boot/isolinux/isolinux.cfg в образе ISO) было так:
 LABEL knoppix
 KERNEL linux
 APPEND ramdisk_size=100000 lang=en vt.default_utf8=0 apm=power-off initrd=minirt.gz nomce libata.force=noncq hpsa.hpsa_allow_any=1 loglevel=1 tz=localtime
 
Как мне кажется, принцип «вынести initrd=что-то-там в отдельную команду grub и kernel заменить на linux» довольно прозрачен (кстати, в linux — это во втором грабе; в первом тоже kernel). В конфиге isolinux кноппикса ещё много вариантов, я не стал их копировать, но при желании это несложно.

 

А вот Puppy Linux 4.31:
 menuentry "Puppy 4.31" {
 	linux /puppy/vmlinuz pmedia=cd --
 	initrd /puppy/initrd.gz
 }
 
В оригинале было:
 label puppy
 kernel vmlinuz
 append initrd=initrd.gz pmedia=cd
 
Тут ещё яснее, чем с кноппиксом, как переделать формат записи.

 

Puppy 5.2.8 грузится с переменным успехом — в вирутальной машине нормально, на нетбуке почему-то нет.
 menuentry "Puppy LuPu 5.2.8" {
         linux /lupu-528/vmlinuz pmedia=usbflash pupsfs=sda1:/lupu-528/lupu_528.sfs --
         initrd /lupu-528/initrd.gz
 }
 
Но тут главное, на что хотелось бы указать, это на то, что иногда можно найти параметры для указания расположения нужных файлов — как здесь с помощью параметра pupsfs, который сообщает puppy, где, собственно, находится главный образ с его файловой системой. Пусть конкретно у меня это решение нестабильно, но на будущее можно запомнить: если распакованный на диск образ не грузится после переименования каталога, может быть, есть параметр, который это исправит.
Ах да, я почти забыл сказать, что Puppy не нужен, если есть Knoppix.

 

Slitaz 2.0 спокойно загружается с флешки, лежа в одноименном каталоге:
 menuentry "Slitaz 2.0" {
 	linux /slitaz/boot/bzImage  rw root=/dev/null vga=normal autologin --
 	initrd /slitaz/boot/rootfs.gz
 }
 

 

Debian
Хорошо ещё и иметь возможность что-нибудь с флешки установить полезное. В моём случае это Debian Squeeze. Я раньше расказывал про то, как сделать загрузочную флешку с помощью syslinux, но на этот раз мы провернём это с grub-ом.
Прежде всего, нам понадобится загрузочный образ. Например, netinstall, хотя, насколько я могу судить, это не принципиально. Во-вторых, нам понадобятся загрузочные ядра и рамдиски hd-media (т.е. ищущие инсталляционные файлы на соответствующем носителе). Их можно взять здесь: http://ftp.debian.org/debian/dists/testing/main/installer-i386/current/images/hd-media/ — в каталоге gtk лежат версии с графическим интерфейсом. Файл boot.img.gz нам, строго говоря, ни к чему, только vmlinuz и initrd.gz.
Теперь надо создать на флешке каталог под эти файлы, скажем, Debian6, положить в него наши файлы (и сделать подкаталог gtk с соответствующими vmlinuz и initrd.gz, если нужно). Затем, в конфиг grub-а добавить следующие пункты:
 menuentry "Debian 6.0.3 x86 Netinstall" {
 	linux /Debian6/vmlinuz vga=788 --
 	initrd /Debian6/initrd.gz
 }
 
 menuentry "Debian 6.0.3 x86 Netinstall GTK" {
 	linux /Debian6/gtk/vmlinuz video=vesa:ywrap,mtrr vga=788 --
 	initrd /Debian6/gtk/initrd.gz
 }
 
Особенно хочу обратить внимание на параметр video во втором пункте. Если первый успешно загружается без параметров (консоль она и есть консоль, что с неё взять), то gtk-версия даёт сбой. А откуда взять эти параметры я узнал вот так:
 smacker@Battlestar:~$ gunzip boot.img.gz
 smacker@Battlestar:~$ sudo mount -o loop boot.img /mnt/
 [sudo] password for smacker: 
 smacker@Battlestar:~$ ls /mnt
 adgtk.cfg     f10.txt  f4.txt  f8.txt     gtk.cfg      linux       rqtxt.cfg    syslinux.cfg
 adtxt.cfg     f1.txt   f5.txt  f9.txt     initrdg.gz   menu.cfg    setup.exe    txt.cfg
 disk.lbl      f2.txt   f6.txt  g2ldr      initrd.gz    prompt.cfg  splash.png   vesamenu.c32
 exithelp.cfg  f3.txt   f7.txt  g2ldr.mbr  ldlinux.sys  rqgtk.cfg   stdmenu.cfg  win32-loader.ini
 smacker@Battlestar:~$ more /mnt/txt.cfg 
 default install
 label install
 	menu label ^Install
 	menu default
 	kernel linux
 	append vga=788 initrd=initrd.gz -- quiet 
 smacker@Battlestar:~$ more /mnt/rqgtk.cfg 
 label rescuegui
 	menu label Graphical rescue mode
 	kernel linux
 	append video=vesa:ywrap,mtrr vga=788 initrd=initrdg.gz rescue/enable=true -- quiet  
 smacker@Battlestar:~$ more /mnt/rqtxt.cfg 
 label rescue
 	menu label ^Rescue mode
 	kernel linux
 	append vga=788 initrd=initrd.gz rescue/enable=true -- quiet 
 

 

Parted Magic, подменю и разделители
Страница http://partedmagic.com/doku.php?id=creating_the_liveusb учит нас, что мол для создания Live USB нужен unetbootin, правда мол старые версии unetbootin создавали нерабочие образы, так что использовать надо тот, что идёт в комплекте. Это, товарищи, чушь собачья. Правильный ответ — нужно использовать GRUB.
Для начала, перенесём основные варианты загрузки в наш конфиг:
 menuentry "Parted Magic 6.7 - normal boot" {
 	 loopback loop /pmagic/pmagic-6.7.iso
 	 linux (loop)/pmagic/bzImage edd=off load_ramdisk=1 prompt_ramdisk=0 rw vga=normal loglevel=9 max_loop=256 vmalloc=256MiB --
 	 initrd (loop)/pmagic/initramfs
 }
 
 menuentry "Parted Magic 6.7 - live with default settings" {
 	 loopback loop /pmagic/pmagic-6.7.iso
 	 linux (loop)/pmagic/bzImage edd=off load_ramdisk=1 prompt_ramdisk=0 rw loglevel=9 vga=normal livemedia noeject max_loop=256 vmalloc=256MiB --
 	 initrd (loop)/pmagic/initramfs
 }
 
 menuentry "Parted Magic 6.7 - low RAM boot" {
 	 loopback loop /pmagic/pmagic-6.7.iso
 	 linux (loop)/pmagic/bzImage edd=off load_ramdisk=1 prompt_ramdisk=0 rw vga=normal lowram livemedia noeject nogpm nolvm nonfs nofstabdaemon nosmart noacpid nodmeventd nohal nosshd nosound nobluetooth nowicd nontpd loglevel=9 xvesa max_loop=256 vmalloc=256MiB --
 	 initrd (loop)/pmagic/initramfs
 }
 
 menuentry "Parted Magic 6.7 - Xvesa boot" {
 	 loopback loop /pmagic/pmagic-6.7.iso
 	 linux (loop)/pmagic/bzImage  edd=off load_ramdisk=1 prompt_ramdisk=0 rw vga=normal xvesa loglevel=9 max_loop=256 vmalloc=256MiB --
 	 initrd (loop)/pmagic/initramfs
 }
 
Здесь видно, как я использую модуль loopback: создается устройство loop, связывается с образом ISO, далее пути к файлам указываются начиная с (loop), а далее как внутри образа. Собственно содержательная часть настроек берётся из файла /boot/syslinux/syslinux.cfg в самом образе ISO; этот файл большой, прикладывать его я не вижу смысла. Но наша задача тут — освоить создание подменю, а огромное количество разных опций в Parted Magic служит благодатным примером. Итак, есть два способа сделать подменю: для grub-а постарей нужно добавить пункт вида:
 menuentry " More tools from Partition Magic CD >>> " {
 	configfile /boot/grub/grub-pmagic-extras.cfg
 }
 
Файл grub-pmagic-extras.cfg — это копия grub.cfg (чтобы тема оформления была та же), только пункты меню там другие. И есть в начале аналогичный пункт для возврата в первое меню:
 menuentry " <<< Back to main menu " {
 	configfile /boot/grub/grub.cfg
 }
 
Обладателям grub-а посвежее (1.99+) повезло: там работает опция подменю. Формат её простой — в неё «оборачиваются» соответствующие menuentry:
 submenu "Название подменю" {
 	menuentry "Пункт 1" {
 	}
 	menuentry "Пункт n" {
 	}
 }
 
- так что им создавать отдельный файл не нужно.
Какие же пункты вошли в подменю? А вот какие:
 menuentry "Parted Magic 6.7 - MHDD" {
 	 loopback loop /pmagic/pmagic-6.7.iso
 	 linux (loop)/boot/syslinux/memdisk
 	 initrd (loop)/boot/mhdd/mhdd.gz
 }
 
 menuentry "Parted Magic 6.7 - Memtest86+" {
 	 loopback loop /pmagic/pmagic-6.7.iso
 	 linux16 (loop)/boot/syslinux/memtest
 }
 
 menuentry "Parted Magic 6.7 - Plop Boot Manager" {
 	 loopback loop /pmagic/pmagic-6.7.iso
 	 linux16 (loop)/boot/plpbt/plpbt.bin
 }
 
 menuentry "Parted Magic 6.7 - Hardware detection tool" {
 	 loopback loop /pmagic/pmagic-6.7.iso
 	 linux16 (loop)/boot/syslinux/memdisk
 	 initrd16 (loop)/boot/syslinux/hdt.gz
 }
 
 menuentry "Parted Magic 6.7 - Super Grub Disk" {
 	 linux16 /boot/syslinux/memdisk
 	 initrd16 /boot/sgd/sgd.gz
 }
 
 menuentry "Parted Magic 6.7 - Super Grub2 Disk" {
 	 linux16 /boot/syslinux/memdisk iso --
 	 initrd16 /boot/sgd/sgd2.gz
 }
 
Обратите внимание на кучу linux16 и initrd16. Это специальные команды grub, которые грузят ядра в 16-ти битном режиме, что необходимо для ряда ОС и программ. Признаком, что надо писать linux16 является, например, упоминание memdisk, или если программа является менеджером загрузки вроде Plop. И в любом случае, команды linux16 и initrd16 всегда используются вместе. В последних же двух примерах я переместил файлы в /boot на флешке — мало ли, понадобятся, а образ я могу и удалить к тому времени.

 

О разделителях — на этом этапе меню стало достаточно большим, чтобы захотелось вставить разделители. Простой способ этого достичь (такой пункт можно выбрать, но нажатие перебросит обратно в меню):
 menuentry " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "{
 	true
 }
 
- главное, не надо начинать название пункта сразу с минуса — граб примет это за служебную информацию; оставляйте пробел в начале строки.

 

GParted Live
Это как раз пример того, как распакованный образ не работает, если каталог с ним переименовать:
 menuentry "GParted 0.9.1-1" {
 	linux /live/vmlinuz  boot=live config  noswap  ip=frommedia  nosplash --
 	initrd /live/initrd.img
 }
 
Если live переименовать во что-то ещё, будет ошибка, потому что какой-то скрипт на этапе загрузки настаивает, что искать надо непременно в каталоге с названием live. Я с этим смирился, но для второго желающего быть непременно в каталоге live придется использовать loopback.

 

FreeDOS
Наконец, последнее, что я добавил — уже из спортивного интереса — FreeDOS. Вдруг потребуется перепрошить BIOS или что-то вроде этого.
 menuentry "FreeDOS 1.0" {
 	loopback loop /freedos/fdbasews.iso
 	linux16 (loop)/isolinux/data/memdisk 
 	initrd16 (loop)/isolinux/data/fdboot.img
 }
 
Флешка для FreeDOS после загрузки становится диском C:

 

Заключительные замечания
В процессе подготовки флешки неоценимую помощь может оказать qemu — свободная виртуальная машина. С её помощью можно быстро посмотреть, что и как получилось. Я, например, делал просто и безо всяких дополнительных функций (типа звука):
 qemu -boot c -hda /dev/sdb -m 512
 
Нужно отметить, что после внесения изменений в конфиг граба qemu их почему-то не хочет видеть до перемонтирования флешки. Разбираться с причинами этого явления мне лень.
  1. olegwhite
    Email: olegwhiteregistracia гав-гав gmail.com  URL: http://smacker.fatal.ru/Cases/1319400445.shtml
    Puppy 5.2.8
    Спасибо огромное, очень помогло. Проблему загрузки Puppy 5.2.8 решил следующим образом - вместо
    linux /lupu-528/vmlinuz pmedia=usbflash pupsfs=sda1:/lupu-528/lupu_528.sfs -- , т.е. реального пути пути к sfs указал директорию где его искать
    linux /Puppy/xlupu-528/vmlinuz pmedia=usbflash psubdir=Puppy/xlupu-528

    вот мой кусочек grub.cfg (У меня все работает)

    menuentry "xLupuRus528_IvannaSE" {
    linux /Puppy/xlupu-528/vmlinuz pmedia=usbflash psubdir=Puppy/xlupu-528
    initrd /Puppy/xlupu-528/initrd.gz
    [ Запись от 14.02.2012, отправлена в 12:42 ]
  2. agentsmith
    Email: agentsmith.aspari.corp гав-гав gmail.com  
    Кэш
    Qemu нехочет видеть до перемонтирование по простой причине - когда размонтируем раздел все изменения недавние записываются из кеша на носитель.
    [ Запись от 05.04.2013, отправлена в 19:51 ]
    Действительно. Просто раньше у меня сложилось впечатление, что это распространяется только на изменения, связанные с грабом. Сейчас посмотрел - нет, и правда на любые изменения файловой структуры.
  3. Я буду рад, если вы оставите свой отзыв об этой заметке:

    Никнейм

    Email

    URL

    Заголовок комментария

    Проверка на человечность
    - Введите буквы:
    The CAPTCHA image