Создание файла 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-ом

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