Безопасное монтирование файловых систем (для Linux)

Материал из -

Перейти к: навигация, поиск

Содержание

Монтирование файловых систем (для блочных устройств)

Команда для монтирования в режиме "только чтение":

mount -o ro,loop /dev/sda1 mnt

Где:

  • /dev/sda1 — блочное устройство с требуемой файловой системой;
  • mnt — директория, в которую будет смонтирована файловая система.

Монтирование файловых систем (для образов dd)

Команда для монтирования в режиме "только чтение":

mount -o ro,loop image.dd mnt

Где:

  • image.dd — файл образа файловой системы формата dd;
  • mnt — директория, в которую будет смонтирована файловая система.

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

Вывод программы mmls для образа диска:

DOS Partition Table
Offset Sector: 0
Units are in 512-byte sectors

     Slot    Start        End          Length       Description
00:  Meta    0000000000   0000000000   0000000001   Primary Table (#0)
01:  -----   0000000000   0000000062   0000000063   Unallocated
02:  00:00   0000000063   0000048383   0000048321   Linux (0x83)
03:  -----   0000048384   0000049151   0000000768   Unallocated

Смещение (для раздела Linux) = 63 * 512 = 32256 байт.

Команда для монтирования в режиме "только чтение":

mount -o ro,loop,offset=32256 disk.dd mnt

Монтирование поврежденных файловых систем (на примере ext3)

Для монтирования поврежденных файловых систем ext3 можно использовать альтернативные суперблоки. Для поиска альтернативных суперблоков можно использовать команду mke2fs -n; вывод:

mke2fs 1.41.3 (12-Oct-2008)
ext3.dd 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)
6048 inodes, 24160 blocks
1208 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=24903680
3 block groups
8192 blocks per group, 8192 fragments per group
2016 inodes per group
Superblock backups stored on blocks:
        8193

Копия суперблока находится в блоке 8193. Для передачи положения суперблока программе mount требуется номер блока (в данном случае: 8193) умножить на размер блока, использованный в выводе mke2fs, и разделить на 1024 (в данном случае: размер блока, использованный в выводе mke2fs, равен 1024; т.е. 8193 * 1024 / 1024 = 8193).

Команда для монтирования в режиме "только чтение" с использованием альтернативного суперблока:

mount -t ext2 -o ro,loop,sb=8193 ext3.dd mnt

Отмонтирование

Команда:

umount mnt

Где:

  • mnt — директория, в которую была смонтирована файловая система.

Дополнительно

UTF-8

Для монтирования файловых систем с поддержкой UTF-8 (например, для поддержки русского языка в именах файлов) требуется указывать опцию "utf8". Пример:

mount -o ro,loop,utf8 /dev/sda1 mnt

Целостность данных

В некоторых источниках (например, в книге Форензика – компьютерная криминалистика) содержится информация о том, что для безопасного монтирования файловых систем (т.е. для монтирования в режиме "только чтение") достаточно использовать опцию "-r" (или "-o ro"). К сожалению, некоторые журналируемые файловые системы (например, ext3 и ext4) изменяют данные файловой системы при монтировании с опцией "-r" (или "-o ro"):

EXT3-fs: INFO: recovery required on readonly filesystem.
EXT3-fs: write access will be enabled during recovery.
kjournald starting.  Commit interval 5 seconds
EXT3-fs: recovery complete.
EXT3-fs: mounted filesystem with ordered data mode.

Для безопасного монтирования журналируемых файловых систем можно использовать:

  • Опции отключения журнала файловой системы (например, опция norecovery для файловых систем XFS; для отключения журнала в файловых системах ext3/ext4 требуется производить монтирование с типом файловой системы ext2). Данный метод безопасного монтирования используется в Helix;
  • Блочные устройства обратной связи в режиме "только чтение" (включаются использованием опций "-o ro,loop"). Данный метод безопасного монтирования используется в SMART Linux;
  • Блочные устройства разделов и дисков в режиме "только чтение". Данный метод безопасного монтирования используется в grml. Для перевода блочного устройства в режим "только чтение" можно использовать команду:
blockdev --setro /dev/sda1
Личные инструменты