Жила-была у меня флешка. Та самая, «живая», с 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«…