1. Создание и монтирование образов

Довольно часто бывает нужно создать образ оптического диска. В Windows для создания образа диска обычно используются посторонние программы, например, Nero или WinImage. В Linux мы будем пользоваться только средствами операционной системы.

Образ CD/DVD-диска можно создать с помощью команды dd:

dd if=/dev/cdrom of=~/cd.iso

Вместо /dev/cdrom надо подставить имя файла устройства вашего привода CD/DVD (обычно этого делать не приходится, поскольку ссылка /dev/cdrom устанавливается самой системой на ваш привод CD/DVD).
Указанная команда создаст файл образа cd.iso, который будет записан в ваш домашний каталог. Аналогично с помощью этой команды можно создать и образ дискеты - только вместо /dev/cdrom нужно указать имя файла устройства /dev/fd0.
Что можно сделать с ISO-образом в Windows? Его можно записать на чистую болванку или же открыть в специальной программе (например, ISOpen или UltraISO) для изменения. В Linux открыть образ можно с помощью средств самой операционной системы.
Для этого его надо просто подмонтировать к корневой файловой системе с помощью команды следующего формата:

# mount -o loop -t iso9660 образ точка_монтирования

- опция -o loop означает, что будет монтироваться не файл устройства, а образ диска, который записан на жесткий диск;
- параметр -t 9660 задает тип файловой системы образа: iso9660 (стандартная файловая система для CD/DVD);
- после файловой системы указывается файл образа, например, ~/cd.iso;
- последний параметр - это точка монтирования, каталог, к которому будет подмонтирован образ (напомню, что каталог должен существовать).

ПРИМЕЧАНИЕ
В большинстве случаев команду mount нужно выполнять от имени пользователя root или с помощью команд sudo ИЛИ su.


В нашем случае для монтирования образа ~/cd.iso к каталогу /mnt/image нужно выполнить команду:

# mount -o loop -t iso9660 ~/cd.iso /mnt/image

После этого можно обращаться к образу как к обычному каталогу:

ls /mnt/image

2. Запись образов на болванку

Предположим, у вас есть файл образа cd.iso, и нужно записать его на компакт-диск, но вы не хотите (или не имеете возможности) использовать графические программы вроде Nero или k3b. В этом случае вам нужно использовать программу cdrecord (пакет называется аналогично). Команда для записи образа на болванку CD-R очень проста и выглядит так:

# cdrecord dev=0,0,0 -dao speed=16 файл_образа

Для записи DVD-R используется аналогичная команда:

# dvdrecord dev=0,0,0 -dao speed=4 файл_образа

В этой команде вам нужно изменить параметр dev - это идентификатор устройства CD/DVD. Если в вашей системе установлен только один привод CD/DVD, и он же является пишущим, тогда, скорее всего, у него будет идентификатор 0,0,0.
Но если у вас несколько приводов CD/DVD (например, обычный и пишущий), вы должны ввести следующую команду:

# cdrecord -scanbus

Команда выведет список CD/DVD, установленных в вашей системе. Вам надо запомнить идентификатор нужного привода и использовать его при записи образа диска

Для очистки DVD-RW диска используется команда:

# dvd+rw-format -f имя_устройства_DVD-RW

Для быстрой очистки CD-RW введите команду:

# cdrecord -v blank=fast dev=0,0,0

Если нужно произвести полную, а не быструю очистку, замените blank=fast на blank=all.

3. Программа mkisofs

Иногда нужно создать образ CD/DVD не с оригинального диска, а с каталогов файловой системы. Другими словами - у вас есть файлы и каталоги, которые вам нужно записать на CD/DVD. Технология CD/DVD не позволяет записывать файлы и каталоги непосредственно на носитель - вам нужно создать каталог, поместить в него все файлы и каталоги, которые вы хотите записать на оптический диск, затем создать по этому каталогу ISO-образ, а потом записать его на болванку.
Скопируйте все необходимые вам файлы в каталог ~/cd. Затем выполните команду:

mkisofs -r -jcharset koi8-r -o ~/cd.iso ~/cd

Эта команда создаст по каталогу ~/cd файл образа cd.iso и поместит его в ваш домашний каталог. Обратите внимание на кодировку локализованной версии - сейчас используется koi8-r. Если у вас другая кодировка, например, utf8, вы должны указать ее:

mkisofs -r -jcharset utf8 -o ~/cd.iso ~/cd

Указание кодировки необходимо для правильного отображения русскоязычных имен файлов и ката┐логов под управлением MS Windows.
После создания ISO-образа его нужно записать на носитель с помощью команды cdrecord, как было показано ранее. После записи не забудьте удалить образ, чтобы он не занимал места на диске.
Существует способ записи каталога на CD/DVD без создания промежуточного ISO-образа. Для этого служит команда:

mkisofs -jcharset кодировка /каталог | cdrecord -опции

4.Преобразование образов дисков

Иногда нужно записать созданный в другой программе образ диска, формат которого отличается от ISO9660. Наиболее часто встречаются образы дисков в форматах IMG, BIN, CUE, NRG, CCD.
Если у файла образа "расширение" (в Linux нет понятия "расширение", поэтому данное слово взято в кавычки) img, то это еще не означает, что формат образа ISO9660. Одни программы, например, k3b, действительно, создают образ в формате ISO9660 и записывают его в файл с расширением img, a другие - могут записывать в файл с таким же расширением образы диска в собственных форматах.
Файлы .bin/.cue можно записать на диск с помощью программы cdrdao или преобразовать в ISO с помощью программы bchunk.
Nero записывает образы диска в формате NRG, который можно преобразовать в ISO с помощью программы nrg2iso. Если вам нужно открыть NRG-образ, чтобы просмотреть его содержимое, вы это можете сделать с помощью команды:

mount -t udf,iso9660 -o loop,ro,offset=307200 файл.nrg точка_монтирования

Образ в формате CloneCD (ccd) можно преобразовать в ISO с помощью программы ccd2iso.

5. Создание и монтирование файлов с файловой системой

Иногда (например, для создания мини-дистрибутива) нужно создать файл, содержащий собственную файловую систему. Первым делом нужно создать пустой файл, потом создать в нем файловую систему, а затем подмонтировать этот файл к корневой файловой системе. Все это можно сделать с помощью трех команд:

# dd if=/dev/zero of=/file.fs bs=1k count=100000
# mkfs.ext2 -F /file.fs
# mount -t ext2 -o loop file.fs /mnt/disk

Первая команда создает пустой файл размером почти 100 Мбайт (100 000 Кбайт), вторая команда создает в этом файле файловую систему типа ext2, третья - монтирует файл к каталогу /mnt/disk.

6. Создание файловой системы
В разд. 5 с помощью команды mkfs.ext2 мы создали файловую систему в файле. С помощью этой команды мы можем создать файловую систему на разделе жесткого диска, например: mkfs.ext2 /dev/hda1.
Вообще, создать файловую систему нужного типа (если эта файловая система поддерживается ядром вашей системы) можно с помощью команды mkf s. <имя_файловой_системы>, например:

mkfs.ext3
mkfs.vfat mkfs.reiserfs

Подробнее прочитать об этом можно, введя команду:

man mkfs.<имя_файловой_системы>

7.Проверка и восстановление файловой системы

Для проверки файловой системы используется программа fsck:

fsck <раздел>

Например: fsck /dev/hda5.
Перед использованием этой команды надо размонтировать проверяемую файловую систему.
Если требуется проверить корневую файловую систему, то следует загрузиться с LiveCD и запустить fsck для проверки нужного раздела.
Если же жесткий диск "посыпался" (то есть появились "плохие" блоки), нужно, не дожидаясь полной потери данных, произвести следующие действия:

1.Выполнить команду fsck -с <раздел> (команда пометит "плохие" блоки).
2.Сделать резервную копию всех важных данных.
3.Отправиться в магазин за новым жестким диском и перенести данные со старого жесткого диска на новый. Проверить жесткий диск на наличие плохих секторов можно программой badblocks.

ПРИМЕЧАНИЕ
Программа fsck может проверять не только файловые системы ext2/ext3. Для проверки, например, vfat можно использовать команду fsck.vfat <раздел>.


Для восстановления "упавшей" таблицы разделов можно использовать программу gpart. Только будьте осторожны и внимательно читайте все сообщения, выводимые программой.

8.Смена корневой файловой системы.Команда chroot

Предположим, мы поставили Windows после Linux, и программа установки Windows перезаписала начальный загрузчик. Теперь Windows загружается, a Linux - нет. Что делать? Нужно загрузиться с LiveCD и выполнить команду:

# chroot <раздел, содержащий корневую файловую систему>

Например, если Linux была установлена в раздел /dev/hda5, то нужно ввести команду:

#chroot /dev/hda5

Данная команда сменит корневую файловую систему - то есть вы загрузите ядро Linux с LiveCD, a затем сделаете подмену корневой файловой системы. Вам останется только ввести команду записи загрузчика (например, lilo) для восстановления начального загрузчика.

9. Подробно о монтировании NTFS
Как уже было отмечено ранее, Linux умеет только читать информацию из NTFS-разделов, но не умеет записывать в них информацию. Если при перекомпиляции ядра включить опцию записи информации в NTFS-разделы, то поддержка записи появится, но очень ограниченная.
Существуют средства, позволяющие добавить поддержку записи NTFS-разделов. Самым оптимальным из них является модуль ntfs-3g. Модуль ntfs-3g доступен по интернет-адресу http://www.ntfs-3g.org/. На этом сайте доступны как исходные коды, так и уже собранные пакеты для разных дистрибутивов. Все, что вам нужно - это установить скачанный пакет:

# rpm -i ntfs-3g*

ИЛИ

sudo dpkg -i ntfs-3g*

После установки пакета можно примонтировать NTFS-раздел:

# mount -t ntfs-3g раздел точка_монтирования

Понятно, что нужно указать ваш раздел и вашу точку монтирования. Если надо обеспечить автоматическое монтирование NTFS-раздела, то в файл /etc/fstab следует добавить запись, подобную этой:

раздел каталог ntfs-3g defaults,nls=utf8,umask=007,gid=46

У модуля ntfs-3g все равно есть ограничения - например, вы не сможете изменять сжатые файлы (хотя сможете их читать) и читать зашифрованные файлы.

10. Ограничение скорости CD/DVD

Программа hdparm позволяет ограничить скорость оптического привода (CDROM/DVDROM) - иногда это требуется, чтобы информация была считана без ошибок (как правило, если поверхность носителя информации немного повреждена). Рассмотрим команду ограничения скорости:

# hdparm -q -E<множитель> <устройство>

Множитель - это и есть скорость, например, I× соответствует скорости 150 Кбит/с для CD и 1385 Кбит/с для DVD. Чтобы установить вторую (2×, 300 Кбит/с) скорость чтения для CD, используется команда:

# hdparm -q -E2 /dev/cdrom

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

# hdparm -q -E1 /dev/dvd

11. Монтирование каталога к каталогу

В Linux можно подмонтировать не только каталог к устройству, но и каталог к каталогу. Делается это с помощью все той же команды mount, запущенной с параметром --bind:

# mount --bind исходный_каталог каталог_назначения