Создание файла Casper-RW

Довольно часто в мой блог попадают с вопросом о создании файла casper-rw. Что это за файл такой? Это файл в котором хранятся изменения на загрузочной флешке с Ubuntu. Создание самой флешки уже я описывал на странице «Живая» флешка с Linux-ом (в разделе Persistent mode). Там же есть несколько ссылок на готовые файлы casper-rw. Но, всегда найдется тот, кому имеющиеся варианты не подходят, и нужно создать свой собственный. Вот для таких и написана данная заметка.

Должен сразу сказать, что данная инструкция предполагает ее выполнение на компьютере, работающем под управлением операционной системы Linux.  Как это сделать из под Windows, я увы не знаю (ниже я скажу — почему).

Итак приступим. Первым делом нужно запустить консоль и авторизоваться в ней root-ом (ввести команду su, а потом в ответ на запрос — пароль администратора системы). После этого запускаем команду:

dd if=/dev/zero of=casper-rw bs=1M count=280

По этой команде:

  • запускается программа dd;
  • которая в выходной файл casper-rw (of=casper-rw);
  • записывает нули (if=/dev/zero);
  • в количестве 280 блоков (count=280);
  • каждый блок размером в 1 Мегабайт (bs=1M)

По окончании работы программа выдает вот такой отчет о выполнении:

280+0 записей считано 280+0 записей написано скопировано 293601280 байт (294 MB), 5,72013 c, 51,3 MB/c

Таким образом мы получили тот самый файл с размером …. правильно — 280х1024х1024=293601280 байт. Чтож, задача выполнена? Почти! Файл действительно создан, размер выдержан (и при необходимости, я думаю, вы уже поняли, как сможете задать свой собственный любой требуемый размер). Единственный нюанс — пока что это по прежнему просто файл, забитый нулями. А casper-rw — это не «просто так файл», а файл … внутри которого создана файловая система ext3 (по крайней мере именно такая ФС требуется, если делать файл для использования с загрузочными флешками, создание которых описано в упоминавшейся выше заметке).

И вот теперь пару слов собственно, о том, почему я не знаю, как создать файл casper-rw из под Windows. Бог с ней, с командой dd — уже есть ее аналог для Windows. И устройство «zero», думаю, при необходимости найдется. Но вот как отформатировать файл и создать внутри него файловую систему, работая в ОС Windows, я увы не знаю…

Но вернемся к инструкции, тем более, что мы выполняем ее в Linux-е, и в нем «создать файловую систему внутри файла» я знаю как :)…

Для этого вводим команду:

mkfs.ext3 casper-rw

Первое сообщение, которое программа выведет, это будет запрос подтверждения указанного действия, так как мы пытаемся отформатировать не блочное устройство (читай — не диск). (В принципе, программа очень правильно утверждает — мы ведь действительно форматируем не диск, а файл 😉 ).

mke2fs 1.41.9 (22-Aug-2009) casper-rw is not a block special device. Proceed anyway? (y,n) 

Естественно, соглашаемся и вводим на клавиатуре «y». Процесс займет некоторое время, после чего будет выведен отчет о его выполнении:

Filesystem label= OS type: Linux Block size=1024 (log=0) Fragment size=1024 (log=0) 71680 inodes, 286720 blocks 14336 blocks (5.00%) reserved for the super user First data block=1 Maximum filesystem blocks=67633152 35 block groups 8192 blocks per group, 8192 fragments per group 2048 inodes per group Superblock backups stored on blocks: 8193, 24577, 40961, 57345, 73729, 204801, 221185 Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 29 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.

Текста много, не спорю… Но весь он «о хорошем». Иными словами — «done» — это «выполнено». Таким образом форматирование завершено, и мы получили файл casper-rw, внутри которого сформирована файловая система ext3. (Кстати, если нужна другая ФС, просто используйте соответствующую команду, например, mkfs.ext2 для файловой системы ext2). Как нам проверить, что все хорошо? Есть простой способ — смонтируем для этого наш «файл-диск» в какую-нибудь папку:

mount casper-rw /mnt/temp -o loop

Обращаю внимание, что папка /mnt/temp, у меня уже была создана ранее. Вы можете использовать другую, а можете создать и такую же (команду mkdir никто не отменял)… Вернемся к монтированию — если ответом на команду «будет молчание», а не сообщения о каких бы то ни было ошибках, значит, монтирование прошло успешно. Перейдем в папку, куда смонтирован наш «диск»:

cd /mnt/temp

И введем команду:

ls

В ответ мы должны получить следующее:

lost+found/

То есть, на данном этапе единственным содержимым нашего диска является папка lost+found, которую полагается иметь каждому … диску (или разделу диска). Значит, все у нас хорошо! Проверка завершена. Отмонтируем наш «диск»:

umount /mnt/temp

Результатом выполнения описанной выше процедуры стал файл casper-rw, размером 280 Мб. Кстати, те, кому нужен именно такой файл, или те, у кого нет возможности выполнить это все в Linux-е, могут скачать готовый файл по вот этой ссылке. (Естественно, качать 280 Мб нулей не придется — файл сжат zip-ом, и его размер равен ~300 кб).

Ну и теперь вкратце об изменении в процедуре создания флешки с persistent mode, которые нужно нести в процедуру описанную на упоминавшейся уже странице. Перед запуском файла U810.bat (пункт 3-й инструкции) нужно новый (созданный или скачанный) файл casper-rw поместить в папку U810p, заменив им уже имеющийся там такой-же файл размером 1 Гб.

Ну и о размере, использованном в данном примере — он был выбран равным 280 Мб для того, чтобы загрузочную флешку Ubuntu с сохранением изменений можно было создать на драйве размером 1 Гб.

Форматирование флешки в Linux

Как показывает учет статистики моего блога, периодически сюда попадают люди, которые ищут ответ именно на этот вопрос — «Как отформатировать флешки в Linux?»

Итак, наиболее просто это можно сделать с помощью программы Gparted. Как ей пользоваться для изменения разделов жесткого диска, я уже вкратце писал тут. Для форматирования флешки не нужно загружаться в режиме Live-CD, можно просто запустить программу из меню. После этого в программе первым делом нужно выбрать саму флешку (вверху справа, нечто вида /dev/sdx, сориентироваться можно по объему диска в Мб) а потом на выбранном разделе щелкнуть правой кнопкой и выбрать пункт «Форматировать»….

А теперь перейдем к консоли. Зачем? На тот случай, если вдруг графика подводит…

Тезис первый — ниже описаны команды, выполнение которых разрешено только администратору. То есть, рядовой пользователь просто получит ответ, что команда не найдена. Посему, сначала в консоли становимся администратором:

su

…и в ответ на запрос вводим пароль администратора. Как стать root-ом в Ubuntu (точнее, задать root-у свой собственный пароль) я уже писал.  Теперь поищем нашу флешку (собственно, как это сделать, я упоминал тут). Повторюсь — для этого вводим следующую команду:

fdisk -l

В ответ получим данные обо всех разделах всех жестких дисков компьютера. В том числе и данные о разделах флешки тоже. Причем, у флешек, плотно эксплуатировавшихся (и форматировавшихся в том числе) под Windows в таблице разделов зачастую такая каша, что линуксовый fdisk выводит весьма «веселые» комментарии:

Диск /dev/sdc: 125 МБ, 125829120 байт
4 heads, 60 sectors/track, 1024 cylinders
Units = цилиндры of 240 * 512 = 122880 bytes
Disk identifier: 0x6f20736b

Это не похоже на таблицу разделов
Возможно, вы выбрали неверное устройство.

Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/sdc1   ?     3242233     7998524   570754815+  72  Неизвестный
Раздел 1 имеет различные физические/логические начала (не-Linux?):
физ=(357, 116, 40) логич=(3242232, 3, 49)
Раздел 1 имеет различные физические/логические окончания:
физ=(357, 32, 45) логич=(7998523, 0, 19)
Раздел 1 не заканчивается на границе цилиндра.
/dev/sdc2   ?      702874     8769658   968014120   65  Novell Netware 386
Раздел 2 имеет различные физические/логические начала (не-Linux?):
физ=(288, 115, 43) логич=(702873, 0, 3)
Раздел 2 имеет различные физические/логические окончания:
физ=(367, 114, 50) логич=(8769657, 1, 22)
Раздел 2 не заканчивается на границе цилиндра.
/dev/sdc3   ?     7791173    15857957   968014096   79  Неизвестный
Раздел 3 имеет различные физические/логические начала (не-Linux?):
физ=(366, 32, 33) логич=(7791172, 3, 6)
Раздел 3 имеет различные физические/логические окончания:
физ=(357, 32, 43) логич=(15857956, 3, 37)
Раздел 3 не заканчивается на границе цилиндра.
/dev/sdc4   ?    12023672    12023903       27749+   d  Неизвестный
Раздел 4 имеет различные физические/логические начала (не-Linux?):
физ=(372, 97, 50) логич=(12023671, 1, 53)
Раздел 4 имеет различные физические/логические окончания:
физ=(0, 10, 0) логич=(12023902, 2, 51)
Раздел 4 не заканчивается на границе цилиндра.

Пункты таблицы разделов расположены не в дисковом порядке

Ну да ладно, нас не шуточные комментарии интересовали. Главную информацию мы получили — в системе наша флешка определилась как /dev/sdc.

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

fdisk /dev/sdc

(Естественно, вместо /dev/sdc вы указывайте нужный вам диск). В ответ получим следующее приглашение:

Команда (m для справки):

Чтобы, как говорили в небезызвестной комедии, «огласить весь список, пожалуйста» нажмем на клавиатуре как нам и предлагают букву «m». В ответ получим список возможных команд:

Действие команды
   a   переключение флага загрузки
   b   редактирование метки диска bsd
   c   переключение флага dos-совместимости
   d   удаление раздела
   l   список известных типов файловых систем
   m   вывод этого меню
   n   добавление нового раздела
   o   создание новой пустой таблицы разделов DOS
   p   вывод таблицы разделов
   q   выход без сохранения изменений
   s   создание новой чистой метки диска Sun
   t   изменение id системы раздела
   u   изменение единиц измерения экрана/содержимого
   v   проверка таблицы разделов
   w   запись таблицы разделов на диск и выход
   x   дополнительная функциональность (только для экспертов)

Первым делом удалим все те «смешные и странные» разделы. Как удалим? Да так, полностью, окончательно и бесповоротно! Зачем удалим? Так вы ж ведь флешку вобще-то форматировать собирались…

Данный этап процедуры я позволю себе назвать «первой красной меткой». Суть данного маркера в том, что выполняемые нами далее действия выглядят как деструктивные — мы что-то вроде как удаляем, что-то создаем. Однако, на данном этапе мы на самом деле еще не будем вносить какие-либо изменения в таблицу разделов диска. Реальные изменения будут выполнены позже, и об этом я вас извещу «второй красной меткой»…

Начинаем удалять — а именно — нажимать на клавиатуре букву «d». На предложение выбрать раздел, нажимаем последовательно сначала «1» (чтобы удалить первый раздел диска) :

Команда (m для справки): d
Номер раздела (1-4): 1

…потом снова «d» и «2» (второй раздел), «d» и «3» (третий раздел) и возможно «d» и «4» (четвертый). Показателем того, что уже пора остановиться, будет следующее сообщение от fdisk, появляющееся в ответ на очередное нажатие кнопки «d» :

Разделы еще не определены!

То есть, все разделы мы удалили. Теперь создадим новый. Для этого нажмеме кнопку «n» на клавиатуре:

Команда (m для справки): n
Действие команды
e   расширенный
p   основной раздел (1-4)

Создавать мы будем основной раздел. И для этого нажмем кнопку «p» на клавиатуре:

Номер раздела (1-4):

Создадим первый раздел. Для этого нажмем «1» на клавиатуре:

Первый цилиндр (1-1024, по умолчанию 1):

Значение по умолчанию нас полностью устраивает (нам же не нужно пустое место вначале флешки?). По этому чтобы создать разел начиная с самого первого «цилиндра» просто нажимаем «Enter» на клавиатуре:

Используется значение по умолчанию 1
Last цилиндр, +цилиндры or +size{K,M,G} (1-1024, по умолчанию 1024):

По умолчанию программа нам предлагает номер самого последнего «цилиндра». При этом новый раздел будет создан на весь размер флешки. Если Вы как и я, планируете всю флешку использовать как один диск, то просто согласитесь с предложенным выбором. Если же Вы хотите разбить флешку на несколько разделов, то тут нужно задать точку окончания первого раздела. Простейший способ — это указать требуемый размер раздела способом, который предложил сам fdisk — «+ КОЛИЧЕСТВО (ЕДИНИЦ ИЗМЕРЕНИЯ)». Например ввод «+1000М» создаст раздел размером 1000 Мегабайт. Лично я создавал один единственный раздел, и потому просто нажал «Enter» на клавиатуре:

Используется значение по умолчанию 1024

На этом лично я с созданием разделов закончил. Если же Вы планировали создание на диске нескольких разделов, то снова возвращайтесь к процессу создания (кнопка «n»), вводите следующий (а не 1-й) номер раздела, соглашайтесь с номером цилиндра начала раздела (fdisk корректно предложит первый свободный после первого раздела), указывайте размер раздела, и т.д. как говорится, до «полного удовлетворения»…

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

И вот пришло время «второй красной метки». Следующая команда запишет на диск новую таблицу разделов, которую мы только что создали. Самое время лишний раз всё перепроверить, и если в чем-то допустили ошибку, вернуться к началу и исправить ее. Если же все нормально, то двигаемся далее.

Итак, вводим команду «w» с клавиатуры:

Таблица разделов была изменена!

Вызывается ioctl() для перечитывания таблицы разделов.
Синхронизируются диски.

ВОТ ИМЕННО В ЭТОТ МОМЕНТ новая таблица разделов и была записана на флешку. После этого Вы снова вернетесь в консоль.

И вот наконец-то мы добрались до … форматирования 🙂 .

Команда форматирования раздела в Linux выглядит следующим образом:

mkfs [-V] [-t тип_фс] [опции_фс] устройство [размер]

Нам в нашем процессе форматирования флешки потребуется указать два параметра. Наиболее важным будет параметр -t — тип файловой системы. Если флешку планируется использовать с Windows, то нужно использовать файловую систему FAT (отформатировать флешку в NTFS Linux,увы, не сможет). В этом случае параметр указывается как «vfat» Если же флешка будет использоваться для работы только с Linux, то можно использовать файловые системы ext2 или ext3. В этих случаях ключу -t тип файловой системы прямо так и указываете (ext2 или ext3).

Второй параметр — это номер того раздела, который мы планируем отформатировать. Раньше мы уже определили, что флешку нашу Linux видит как диск /dev/sdc, а раздел на ней мы создавали 1-й. Но, перепроверим на всякий случай еще раз:

fdisk -l

и получим ответ

Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/sdc1               1        1024      122850   83  Linux

Как видим, «каши» в таблице разделов флешки теперь не наблюдается, там всего один раздел /dev/sdc1, и именно его нам и нужно отформатировать. Чтобы отформатировать флешку в файловую систему FAT, вводим следующую команду:

mkfs -t vfat /dev/sdc1

Если хотим использовать файловую систему ext2, то команда должна быть следующая:

mkfs -t ext2 /dev/sdc1

Ну и для ext3, соответственно:

mkfs -t ext3 /dev/sdc1

Флешка будет отформатирована соответствующим образом.

Кстати, при самой первой попытке отформатировать диск в файловую систему FAT меня ждал сюрприз. Оказывается в моей Mandriva утилита для форматирования в FAT вынесена в отдельный пакет и по умолчанию не устанавливается. Пришлось установить ее следующей командой

urpmi dosfstools

Вот и все…

PS. Те же самые процедуры используются и для работы с жестким диском…

«Живая» флешка «многоцелевого назначения»

Я уже писал о загрузочных флешках. Тогда речь шла о создании флешки с которой загружался Linux. А тут почитал про то, как люди на одной флешке размещают несколько вариантов загрузки и сам «загорелся»…

Зачем такое нужно? С одной стороны, некоторые из утилит имеют довольно небольшой размер, а сдругой — флешки с каждым годом становятся все больше и больше. И идея на одну флешку сложить несколько разных загружаемых утлит (образов) уже не кажется лишенной здравого смысла. А в некоторых случаях, и с технической, и с экономической точки зрения, альтернативные варианты однозначно проигрывают. Например, загрузочная дискета — и сама недолговечна, и дисководов теперь во многих даже стационарных компьютерах, не говоря уже о ноутбуках, днем с огнем не сыщешь!

1. Создаем саму загрузочную флешку

Инструкция эта не моя, я прочел ее тут:

http://itbg.wordpress.com/2008/12/14/загрузочная-flash-с-помощью-grub4dos/

На указанной странице вариантов несколько. В моем случае рабочим тоже оказался второй вариант. Флешку я создавал из под Windows XP SP3. Флешка в процессе выполнения указанной инструкции форматируется, следовательно, если на ней есть критически нужные и полезные файлы, их на время нужно скопировать куда-то. Итак…

  1. Я скачал и установил HP USB Disk Storage Format Tool. На всякий случай, сложил у себя на ftp.
  2. Вставил флешку в компьютер. Запустил HP USB Disk Storage Format Tool. В поле «Device» выбрал свою флешку (право, не стОит форматировать винчестер компьютера 🙂 ). В поле «File System» выбрал «NTFS» (и это — обязательное условие, именно благодаря этому флешка после форматирования станет загрузочной). Указывать свое имя диска в поле «Disk Label» на этом этапе совсем не обязательно — это еще не последнее форматирование диска. Нажал кнопку «Start«. Программа по быстрому отформатировала флешку.
  3. После форматирования флешку из компьютера я извлек и снова вставил. Затем открыл «Мой компьютер», щелкнул правой кнопкой мыши на ярлыке флешки и выбрал «Форматировать». В этот раз при форматировании флешки средствами Windows я выбрал уже файловую систему FAT32. И вот уже при этом форматировании можно, при желании, задать свое имя диска для флешки.
  4. Теперь пришло время записать загрузочный код в MBR флешки. Для этого я скачал пакет утилит grubutil-1.1-bin-w32-19. (Его  также теперь можно найти и у меня на ftp). Распаковал архив в (произвольную) папку, перешел в нее и запустил утилиту с графическим интерфейсом — grubinst_gui.exe. В этой программе все, что я сделал — выбрал свою флешку из выпадающего списка в поле «Device Name» (вверху), и щелкнул кнопку «Install» (внизу). Выпрыгнуло окно командного интерпритатора Windows, сообщившее об успешной установке MBR, и предлагающее нажать ENTER для продолжения (The MBR/BS has been successfully installed. Press <ENTER> to continue...)
  5. Оставалось сделать последний шаг. Для этого я скачал собственно сам GRUB4DOS. (Копия архива также доступна и с моего ftp). Распаковал архив в (произвольную) папку и перешел в нее. В указанной папке я нашел два файла — grldr и menu.lst — и скопировал их в корневой каталог флешки.

Все! Перезагружаем компьютер и в его bios-е выбираем загрузку с USB-HDD. Как вариант, можно не перенестраивать bios, а воспользоваться клавишей временного выбора загрузочного устройства. У разных версий bios это могут быть различные клавиши. Мне доводилось встречать варианты — F8, F10, F11, F12. Какая кнопка используется в Вашем случае — лучше всего прочитать в документации на материнскую плату. В любом случае, при удачной загрузке с флешки примерно на секунду появляется сообщение:

Try (hd0,0): FAT32:

А после него появляется меню с возможными вариантами загрузок (определяется файлом menu.lst, который записан в корневом каталоге флешки).

ЗЫ. Эту проверку (тестовую загрузку) лучше все-таки разок выполнять перед последующими действиями. Она позволяет отсеять флешки с более старой весрсией контроллера. Для использования с grub4dos эти флешки не подходят, т.к. опредеяются bios-ами материнских плат как USB-FDD, а не USB-HDD, и как следствие, grub4dos с них загружаться не может…

2. Загружаемся с «флопика».

Точнее, не с дисковода, а с ОБРАЗОВ ЗАГРУЗОЧНЫХ ДИСКЕТ. Вопрос простой — а оно надо? Как показывает практика, а особенно  с поправкой на тот факт, что во многих новых компьютерах (не говоря уже о ноутбуках) флопик просто отсутствует, хоть иногда, но надо. Например, для прошивки нового bios-а в материнку, и т.п.

Смотрим в файл menu.lst. в нем есть такой вот пример:

title MAXDOS.IMG
find --set-root --ignore-floppies /boot/MAXDOS.IMG
map --mem /boot/MAXDOS.IMG (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

Прекрасно, образец есть, осталось найти и загрузить образы интересующих дискет, записать их на флешку и добавить аналогичные пункты в меню загрузки grub4dos (файл menu.lst). Лично я первым делом нашел образ загрузочной дискеты «старого-доброго» Windows 98. Именно для случаев прошивки новых bios-ов в материнские платы. Для этого записал в корень флешки файл winb98se.IMA (сам образ дискеты), а в файл menu.lst добавил следующие строки:

title Windows 98 boot floppy
find --set-root --ignore-floppies /winb98se.IMA
map --mem /winb98se.IMA (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

Как видим, от приведенного выше образца из исходного файла menu.lst, мой вариант отличается именем строки в меню загрузки (задается параметром title и в моем случае строка будет выглядеть как «Windows 98 boot floppy»), а также указанием на имя и месторасположение самого файла образа дискеты.

Загрузившись с такого «флопика» в первый раз, я подумал и решил, что неплохо было бы добавить файловый менеджер. По этому, на флешку перекочевал «старый-добрый» VC. А можно и NC — кому как больше нравится. Впоследствии, также на флешку была записана dos-версия программы Victoria, которую можно скачать с сайта автора. Ведь зачастую «лечить» приходится такие винчестеры, с которых загружаться уже не получается 🙁 .

Что стоит учесть при такой загрузке. Главное — это тот факт, что первым «винчестером» в системе становится … флешка. А как же, мы же ведь загружались с «USB-HDD»… В итоге, диск C после такой загрузки — это Ваша флешка, а первый раздел винчестера компьютера — это уже диск D.

Какие еще можно использовать варианты загрузочных дискет? Можно порыться в дебрях файлов, установленных программой Nero (или Вы такой не пользуетесь?). С ней идет файл образа загрузочной дискеты, которая позволяет получить доступ к разделам жесткого диска, отформатированным в файловую систему NTFS. Правда, увы, только в режиме чтения, но это все же больше, чем упоминавшийся ранее «Windows 98 boot floppy», который такие разделы не видит вообще. Можно еще нагуглить в интернете такой диск — «Emergency Master Rescue Disk». Меню на нем много и всяких, но я так толком в них и не вник. В своих меню эта дискета указывает на следующий сайт авторов. Но и там я ничего вразумительного не нашел. Плюс дискеты — в поддержке NTFS и наличии файловых менеджеров… Нашел я еще вот такой проект — All In One Boot Floppy. Из того, что заинтересовало — тест памяти, поддержка NTFS, возможность снятия паролей с bios-а, тест максимальной нагрузки процессора. Ну и еще один возможно полезный вариант я нашел тут. Образ дискеты, позволяющей устанавливать и рулить GRUB-ом на жестком диске компьютера…

3. Немножко образов CD.

Ну не только же с «дискет» грузиться! Хорошо бы и с CD, причем без «разворачивания» в файлы, а непосредственно с самого ISO-образа… Снова смотрим в файл menu.lst — есть там примерчик вот такой:

title find and boot 0PE.ISO
fallback 5
find --set-root /0PE/0PE.ISO
map /0PE/0PE.ISO (0xff) || map --mem /0PE/0PE.ISO (0xff)
map --hook
chainloader (0xff)
savedefault --wait=2

Ладно! Что такое OPE, я не знаю, а вот, допустим, Acronis True Image Home запустить не помешало бы. (Кстати, владельцы винчестеров Seagate и Maxtor могут пользоваться им абсолютно бесплатно, и не нарушая авторских прав. Достаточно на сайте Seagate спросить про DiscWizard)… Итак, создал я образ загрузочного CD, записал его на флешку, создал в menu.lst пункт по образу и подобию приведенного выше, но указывающего на нужный мне образ, и … не пошло…

Чтож, «гугл в помощь!» Буквально через пару минут я уже читал тему на этом форуме, где был предложен немного иной вариант:

title Acronis media
find --set-root /acronis10.iso
map /acronis10.iso (hd32)
map --hook
root (hd32)
chainloader (hd32)

Попробовал, и все прекрасно запустилось! Так и оставил. В последствии из «интересного» на флешку добавил образ загрузочного диска программы Paragon Hard Disk Manager 8 Special Edition (одно время они раздавали его у себя на сайте бесплатно), а также совсем маленький образ CD, скачанный вот тут. Последний позволяет сбрасывать или устанавливать свои собственные пароли, а также менять привилегии для пользователей Windows NT/2k/XP/Vista. Иногда и такое бывает нужно…

Тем кто любит много читать (ссылка):

Casper-rw, а ну-ка отдай мои файлы!

Жила-была у меня флешка. Та самая, «живая», с Linux-ом, с сохранением измененй, созданная по методу, описанному мной на этой странице. И вот понадобилось мне как-то в ней покопаться на предмет извлечения файлов, сохраненных мной в процессе работы. А файлы эти (пользовательские), равно как и все, что было изменено от начального варианта (установленные пакеты, обновления, настройки и многое другое), хранятся на самом деле на флешке в одном единственном файле — casper-rw. Проще всего, конечно, загрузиться с этой флешки снова и скопировать эти файлы куда-то. Но мы же легких путей не ищем! 🙂 Да и мало-ли по какой причине еще может потребоваться влезть внуть файла ! Например, по прошествии некоторого периода работы с флешкой захотелось увеличить размер данного файла…

В качестве вводной — все описанное ниже я проделывал на компьютере, на котором установлен Linux (дистрибутив Mandriva 2009.1). Все выполнялось в консоли, запущенной от имени root-а. Требовалось, собственно, смонтировать каким-то образом файл casper-rw в файловую систему Linux, чтобы получить к нему доступ.

Для меня вопрос, собственно, состоял в том, что я не знал, какой командой смонтировать этот файл. Немного погуглив, нашел вот такую команду (цитирую, т.к. на том ресурсе требуется регистрация):

...можно так:

mount -t ext2 /media/MDV_FLASH/.loopbacks/system.loop systemloop -o loop

Чтож, команда есть. Приступаем! (Да, позабыл я в самом начале в вводных написать, что моя Mandriva — это сервер мой, валяющийся на антресоли, следовательно, ни десктопа, ни автомонтирования, ни прочих «благ цивилизации»)… И еще забыл сказать, для всяких там нужд у меня в файловлой системе уже были созданы (заранее) две папки — /mnt/flash и /mnt/temp. А «всякие там нужды» — это монтирование подключаемых внешних дисков. В моем процессе я эти папки и использовал. Вы же можете задействовать свои, либо создать такие же…

Итак, чтобы добраться до файла casper-rw нам нужно первым делом смонтировать флешку, на которой он лежит. Включаем флешку в компьютер. Затем, чтобы знать, что именно монтировать, сначала запускаем команду (выделена красным):.

[root@dmitrykhn ~]# fdisk -l

Диск /dev/sda: 500.1 ГБ, 500107862016 байт
255 heads, 63 sectors/track, 60801 cylinders
Units = цилиндры of 16065 * 512 = 8225280 bytes
Disk identifier: 0x0000e142

Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/sda1   *           1        5099    40957686   83  Linux
/dev/sda2            5100       60801   447426315    5  Расширенны
...
(тут было много чего ещен, я его слегка выкинул, чтоб
сократить объем бесполезной в данном случае информации)
.....
Диск /dev/sdc: 2002 МБ, 2002747392 байт
32 heads, 63 sectors/track, 1940 cylinders
Units = цилиндры of 2016 * 512 = 1032192 bytes
Disk identifier: 0x67a77fae

Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/sdc1   *           1        1940     1955488+   6  FAT16

В ответ на приведенную команду мы получаем информацию обо всех установленных в системе дисковых накопителях и обо всех разделах на них. Интересующую нас в данном случае информацию я выделил синим цветом. Как видим, сама флешка наша определилась системой как /dev/sdc, а (единственный) раздел с файловой системой FAT на ней как /dev/sdc1. Вот его-то и смонтируем

[root@dmitrykhn ~]# mount /dev/sdc1 /mnt/flash

По большому счету для «правильности» приведенной выше команде монтирования не хватает «прямого» указания типа файловой системы используемой монтируемым разделом. Дистрибутив Mandriva в этом плане «дружественен» и зачастую сам «угадывает» файловую систему монтируемого устройства. Но, чтобы все было правильно, в приведенную выше команду нужно добавить ключ «-t vfat«. Так или иначе, но после того, как диск смонтирован, можно перейти в папку /mnt/flash и просмотреть ее содержимое. Среди прочего там должен присутствовать и интересующий нас файл casper-rw. Теперь смонтируем его. Сначала, по аналогии с приведенной выше цитатой я ввел такую команду:

[root@dmitrykhn ~]#  mount -t ext2 /mnr/flash/casper-rw /mnt/temp -o loop

Но увы, в ответ на нее я получил сообщение об ошибке.  Система ругалась на файловую систему монтируемого раздела. И не зря, с учетом того, о чем я напишу далее. Но на данном этапе, памятуя о «дружественности» Mandriva, я ввел ту же команду, но уже без принудительного указания используемой файловой системы. Вот такую:

[root@dmitrykhn ~]#  mount /mnt/flash/casper-rw /mnt/temp -o loop

Раздел смонтировался! Перейдя в папку /mnt/temp, я увидел все файлы, сохраненные внутри файла casper-rw, в том числе, и интересовавшие меня. Всё, задача решена!

PS. Так как мне было интересно, почему же файл не смонтировался по первой команде, «поинтересовался» я и типом файловой системы, использованной файлом casper-rw. Оказалось — ext3. Так что, если при монтировании файла casper-rw есть желание в команде тип файловой системы указать принудительно, то нужно вводить ключ «-t ext3«…

«Живая» флешка с Linux-ом

Сразу же опускаем вопрос — «А зачем это нужно?». Здесь я лишь опишу пару способов, как это сделать. Причем, постараюсь описать те варианты, для которых достаточно мышью в кнопку «ОК» попадать…

Вариант первый — тот же самый Live-CD, но на флешке.

Это то, с чего (я так думаю), начинают все, но долго на этом не задерживаются. Еще недавно процедура была «посложней», но на сегодняшний день ее упростили до невозможности.

Помочь в этом могут, например, следующие программы:

  1. Unetbootin (сайт)
  2. FUSBi (сайт)

Программы эти — практически «близнецы-братья» (что и не удивительно с поправкой на тот факт, что одна — усовершенствованная модификация второй).

Что нужно сделать (рассмотрим вариант использования их из-под Windows).

  1. Естественно, скачать программу и (если она в архиве) распаковать в (какую-нибудь) папку на жестком диске.
  2. Скачать ISO-образ LIVE CD диска выбранного дистрибутива. При этом очень стОит почитать на сайтах указанных программ, с какими дистрибутивами они работают без проблем. Лично я проверял их на «совместимость» с Ubuntu — все было нормально. (Образ диска сохранить на жесткий диск компьютера, единственное, не забыть куда).
  3. Подготовить «объект для установки». В смысле — флешку. С учетом того, что дистрибутив (Ubuntu) умещается на компакт диск, то понадобится флешка размером не менее 700 Мб (в принцие, 1 Гб — будет нормально). Если выбран дистрибутив бОльшего размера, то флешку тоже нужно взять поболее (чтобы ее размер превышал размер образа диска дистрибутива). Теперь про Ваши  личные файлы, уже имеющиеся на флешке. В процессе установки форматирование флешки не происходит, но в нее должен с небольшим запасом помещаться выбранный дистрибутив. То есть, если у Вас флешка 1 Гб, а дистрибутив — 700 Мб, то перед началом установки «посторонних» файлов на флешке  должно быть не более чем на 300 Мб. Но, по большому счету, перед началом установки файлы с флешки лучше убрать, а саму ее отформатировать. Если файлы так уж необходимы, то их можно вернуть на флешку уже после установки дистрибутива.
  4. Запустить программу.
  5. Выбрать тип источника дистрибутива «Disk Image ISO», нажать кнопку «» и найти, куда сохранили ISO-образ установочного диска дистрибутива Linux (указатель 1 а рис. 1 ниже).
  6. Указать, что писать будем на «USB Drive» и выбрать букву диска, соответствующую флешке (указатель 2 на рис. 1 ниже).
  7. Попасть мышью в любимую кнопку «ОК» (указатель 3 на рис. 1 ниже).
screenshot
Рис. 1 Интерфейс программы

Я специально не указываю к какой именно программе относится данная инструкция, т.к. (повторяюсь) обе указанные выше программы являются «братьями-близнецами», в том числе и по алгоритму их использования.

По окончании работы программы Вы получите флешку, с которой будет загружаться выбранный Вами дистрибутив (естественно, если bios Вашего компьютера поддерживает загрузку с USB драйвов). Все будет происходить точно так же, как будто Вы загружаетесь с компакт-диска. Все хорошо, задача выполнена. Правда, через время возникает ощущение, что чего-то не хватает. И это «что-то» называется :

Persistent Mode

Что же это такое? Представим, что Вы в своей работе пользуетесь карандашом. В первый раз, начиная работать, Вы достаете из коробки новый карандаш, точите его и работаете. По окончании работы Вы кладете карандаш назад в коробку. А на следующий день, достав тот же самый карандаш из коробки, Вы вновь вынуждены его точить. Persistent Mode — это возможность сохранять все изменения, которые Вы произвели во время работы с флешкой на самой флешке. Как следствие, при следующей загрузке не будет нужды снова настраивать те же самые параметры (например, язык, пароли доступа к Wi-Fi или почте, и т. д. и т. п.)…

Итак, взглянем на первый метод создания флешки, сохраняющей изменения. В свое время меня даный метод подкупил своей относительой простотой.

Оригинал этой инструкции на английском языке («Ubuntu 8.10 USB Flash Drive Installation tutorial«) опубликован по адресу: http://www.pendrivelinux.com/live-ubuntu-810-usb-persistent-install-windows/. Ниже приведен мой «вольный» перевод этой инструкции на русский язык. «Вводная» — «по умолчанию» данная инструкция предполагает, что Вы используете чистую (отформатированную в FAT) флешку размером 2 Гб. и инструкция выполняется на компьютере под управлением ОС Windows.

  1. Скачайте и запустите файл U810p.exe. Архив распакуется на Ваш компьютер. Автоматически будет создана папка U810p.
  2. Скачайте ISO-образ диска Ubuntu 8.10 и поместите его в папку U810p на Вашем компьютере.
  3. Перейдите в папку U810p на Вашем компьютере и дважды щелкните мышью на файле U810.bat. Начнется выполнение скрипта. (Естественно, не забудьте включить флешку в компьютер). Следуйте инструкциям на экране. (От себя — инструкции будут на английском, но особых сложностей там нет никаких — сначала нужно указать букву диска, присвоенную флешке, а по окончании копирования файлов подтвердить согласие на создание на флешке загрузочной записи). Будьте внимательны, указывая букву диска — иначе Вы рискуете повредить загрузочную запись жесткого диска компьютера!
  4. По окончании работы скрипта перезавгрузите компьютер и настройте его BIOS на загрузку с USB драйва.

Если все ОК, Вы получите дистрибутив Ubuntu 8.10, загружающийся с флешки, и сохраняющий все произведенные изменения и настройки.

Размер файла для сохранения изменений. Как я уже писал выше «по умолчанию» данная инструкция подразумевает установку дистрибутива на фпешку размером 2 Гб. Как следствие, при выполнении данной инструкции на флешке создается специальный файл casper-rw размером 1 Гб. Именно в нем и сохраняются все выполненные Вами в процессе работы изменения. (А второй Гигабайт флешки при этом займет собственно сам дистрибутив)… Если же размер Вашей флешки позволяет, то для сохранения изменений Вы сможете использовать файл бОльшего размера. Для этого нужно скачать файл соответствующего размера по одной из ссылок ниже (пугаться не стоит — по ссылкам выкачиваются zip-архивы, размер которых значительно меньше):

После того, как архив скачали, его нужно распаковать в какую-нибудь папку на жестком диске и потом файлом, полученным из архива, заменить файл casper-rw, созданный на флешке при выполнении данной инструкции. Замену файла casper-rw следует выполнять еще до загрузки с флешки и внесения каких-либо изменений в систему. Или же (в противном случае), все ранее выполненные изменения, записанные в старый файл casper-rw, будут утеряны при замене его новым файлом большего размера…

Если же ни один из предложенных размеров «не подошел», можете создать файл требуемого размера самостоятельно

ЗЫ. На этом же сайте (http://www.pendrivelinux.com/) можно с легкостью найти и такие файлы: U904p.exe, KU904p.exe и XU904p.exe. Думаю, догадаться о их назначении несложно. Для тех, кому все-таки сложно, подсказываю — создание загрузочной флешки из дистрибутивов (соответственно) Ubuntu 9.04, Kubuntu 9.04 и Xibuntu 9.04. При этом, инструкция по их применению практически ничем (кроме используемого файла образа исходного диска) не отличается от описанной выше.

ЗЗЫ. Повторил данную инструкцию, вот только вместо флешки взял внешний USB винчестер. Однако, syslinux отказался ставить загрузчик на диск, мотивируя это тем, что он не флешка. Пришлось подредактировать файл makeboot.bat (причем, я редактировал уже тот, который в результате выполнения инструкции был скопирован на мой винчестер). В нем, в команде запуска syslinux я добавил ключик -f (force), и команда стала выглядеть следующим образом:

sysl\win32\syslinux.exe -f -ma %~d0

(Добавленый ключ выделен красным цветом). После этого я повторно запустил файл makeboot.bat (прямо с внешнего винчестера) и загрузчик syslinux установился на диск. В итоге у меня теперь флешка «чуток поболе» стала 🙂 …

Проще некуда — liveusb-creator

Как я уже писал, предыдущий способ в свое время подкупил меня своей относительной простотой. Но, через некоторое время я нашел ссылку на страницу программы liveusb-creator, которая (на мой взгляд) упростила процесс создания «флешки с Linux-ом с сохранением параметров» до безобразия. Смотрим на рисунок:

liveusb-creator
Рис. 2 Интерфейс программы

Во первых, данная программа устанавливает на флешку дистрибутивы Fedora Linux (версий с 9-й по 11-ю). Во вторых, все управление программой осуществляется мышью — никаких коммандных строк. Итак, что нужно сделать (кроме того, что скачать и запустить саму программу):

  1. Нажать кнопку Browse и указать где лежит скачанный образ дистрибутива. (Естественно, он должен быть выкачан заранее с сайта проекта Fedora. С другой стороны, можно просто выбрать версию дистрибутива в выпадающем списке справа от кнопки Browse. В этом случае сначала программа сама выкачает из интернета образ диска, а уже потом приступит к созданию загрузочной флешки.
  2. В выпадающем списке выбрать букву диска, соответствующую Вашей флешке-«кандидату».
  3. Просто двигая мышью ползунок, установить желаемый размер файла для сохранения изменений. Переживать не стоит — выставить больше, чем сможет влезть на флешку (за вычетом размера самого дистрибутива) — не получится.
  4. Нажать кнопку «Create Live USB» и дождаться окончания процесса…

Пока что все.

А вот и не все (добавлено 24.04.2009)

Ubuntu — «просто разуй глаза!»

Скачал я (как и «положено», в день выхода 🙂 ) Ubuntu 9.04. Записал на болванку и загрузился с нее, чтобы посмотреть — что же там есть нового. И, просматривая пункты меню, «неожиданно наткнулся» вот на такой:

ubuntu_menu
Рис. 3 Меню Ubuntu, запуск программы создания загрузочной флешки

Да уж, воистину: «внимательность — друг идейца»! Сколько вариантов с интернета накачал, программок всяких перепробовал, а оно вот тут, прямо под носом лежало!!! Запустил и получил вот такой интерфейс:

ubuntu_make_usb
Рис. 4 Интерфейс программы

Интерфейс программы «USB Startup Disk Creator» немного напоминает программу liveusb-creator, описанную выше.

  • В поле «Source disk image (.iso) or CD» (если Вы, как и я, загрузились с компакт-диска) будет указан диск, находящийся в приводе. Но, Вы можете, нажав кнопку «Other…«, выбрать другой файл образа диска, если таковой найдется на, допустим, жестком диске Вашего комьютера.
  • В поле «USB disk to use:» будет указана Ваша флешка (если Вы уже включили ее в компьютер), ее полная емкость («Capacity«), а также — свободное место («Free Space«). Запустить установку не получится, если на флешке будет не достаточно места для записи дистрибутива.
  • Если мы хотим, чтобы при работе с флешкой все изменения сохранялись (Persistent mode), то «ставим птичку» в пункте «Stored in reserved extra space«, и затем в поле «How much» движком устанавливаем желаемый объем файла для сохранения.
  • После этого осталось лишь нажать кнопку «Make Startup Disk» и дождаться окончания работы программы.

Первое, что сделал я, увидевши эту программу, проверил на предмет ее наличия в предыдущих релизах дистрибутива Ubuntu. В Ubuntu 8.10 эта программа уже присутствовала, а вот в Ubuntu 8.4 — не нашлось…

добавлено 27.02.2010

LILI

Еще одна программа для создания загрузочных флешек с Linux-ом из различных дистрибутивов с поддержкой Persistent Mode — «LiLi USB Creator«.