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«…