Довольно часто бывает нужно создать образ оптического диска. В Windows для создания образа диска обычно используются посторонние программы, например, Nero или WinImage. В Linux мы будем пользоваться только средствами операционной системы.
1. Создание и монтирование образов
Образ 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 доступен по интернет-адресу 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 исходный_каталог каталог_назначения