Безопасное монтирование файловых систем (для 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
