Можно записывать диск из консоли, можно воспользоваться программой с графическим интерфейсом. Во втором случае обычно используются программы K3B для KDE и Gnomebaker и Brasero для Gnome, отличающиеся дружественным интерфейсом, посему вопросов по их использованию почти не возникает.
Запись из консоли немного сложнее. Для начала определимся - можно писать "на лету", а можно сначала собрать образ, а потом записать его.
При работе с cdrtools, чтобы записать компакт-диск с русскими названиями файлов, чтобы MS Windows видела русские буквы, нужно собрать образ следующим образом:
user@linux$ mkisofs -jcharset koi8-r /one_of_your_folder | cdrecord -опции
или
user@linux$ mkisofs -r -jcharset koi8-r -o /path/to/image.iso /one_of_your_folder user@linux$ cdrecord -опции /path/to/image.iso
Вышеприведенный пример работает для локали KOI8-R. Если у вас иная локаль, подставьте свое название!
У mkisofs опция -o указывает файл, в который будет записан образ. Опция -r почти наверняка нужна, без нее диск будет читабелен только под MS Windows. Опция -J при использовании -jcharset не нужна. Параметр у опции -jcharset - это кодировка (набранная в нижнем регистре), в которой "хранятся" имена записываемых файлов. Список поддерживаемых кодировок можно узнать из вывода mkisofs -jcharset help.
После создания образа его нужно записать с помощью программы cdrecord. Например, так:
user@localhost$ cdrecord dev=1,1,0 -dao -v image.iso
Если вы хотите писать на лету, то делаете простой pipeline:
user@linux$ mkisofs -v -jcharset koi8-r -r /one_of_your_folder | cdrecord -dao -v fs=6m speed=24 dev=1,1,0 -
Обратите внимание на "лишний" знак -. Он нужен для того, чтобы программа брала данные из потока, а не из конкретного файла.
Рекомендуем прочесть man cdrecord - там хорошее и подробное описание с объяснением команд.
Проверить качество записи можно несколькими способами.
Для записи DVD-дисков из консоли нужен или патченный cdrecord, или growisofs.
Да, безусловно, смотрите секцию LightScribe.
Только для ядер версий 2.4.х и ниже.
Чтобы mkisofs сохраняя структуру, например, папки images и htmls, выполните:
user@linux$ mkisofs -v -J -r -graft-points images=~/images htmls=~/htmls | cdrecord ...
В K3B такой проблемы при правильно настроенной локали не возникает, но нужно при выставлении настроек записи отметить в закладке "Файловая система" галочки "Создать расширение RockRidge" и "Создать расширение Joliet", после чего нажать кнопку "Сохранить настройки пользователя" - тогда вам не придется делать это каждый раз.
Воспользоваться командой dd, например
user@linux# dd if=/dev/cdrom of=cd.iso
снимает образ с cdrom (аналогично делается для дискеты, только устройство /dev/fd0). Таким образом можно снять образ с любого раздела с любой файловой системой. Или поставить cdrtools и использовать readcd, например
user@linux# readcd dev=0,0,0 speed=16 -clone
Устройство вычисляется таким же образом, как и в cdrecord (cdrecord -scanbus)
Еще можно пользоваться командой cat:
user@linux# cat /dev/cdrom > ~/cdrom.iso
Есть два способа - один простой, другой чуть сложнее :) Для обоих в ядре нужна поддержка loopback
Первый способ смонтирует образ x.img с файловой системой fstype в директорию /mnt/x.
root@linux# mount -o loop -t fstype x.img /mnt/x root@linux# umount /mnt/x
Второй способ состоит в том, чтобы через losetup ассоциировать образ с /dev/loopX:
root@linux# losetup /dev/loop1 x.img root@linux# mount -t fstype /dev/loop1 /mnt/x root@linux# umount /mnt/x root@linux# losetup -d /dev/loop1
Этот способ дает возможность работать с образами, на которых несколько разделов - такое часто встречается у пользователей Apple. Для этого надо только знать смещение начала раздела, которое указывается параметром -o у losetup.
Для начала давайте разберемся с форматами.
Формат .img - понятие относительное, потому что в .img пишет и Nero и K3B, но в случае K3B это обычный iso9660 (часто такие файлы имеют расширения .iso).
Закрытые форматы .bin или .cue можно сконвертировать с помощью программы bchunk.
Образы .dmg можно сконвертировать утилитой dmg2iso или poweriso. Последней хорошо извлекаются файлы из сжатых .dmg образов.
Образы с clonecd (ccd) можно преобразовать с помощью утилиты ccd2iso
Формат .nrg можно сконвертировать с помощью программы nrg2iso. Так же можно смонтировать nrg-образ вообще без никаких дополнительных утилит (выдержка из mount-iso-image):
mount -t udf,iso9660 -o loop,ro,offset=307200 file.nrg /каталог/монтирования
Отсюда вытекает, что конвертацию nrg - > iso можно вообще сделать тривиальным dd с опцией skip.
Создаем файл нужного размера, делаем на нем файловую систему и монтируем ее в каталог:
root@linux:~# dd if=/dev/zero of=aaa.fs bs=1024 count=100000 root@linux:~# mkfs.ext3 -F aaa.fs root@linux:~# mount -t ext3 -o loop aaa.fs /каталог/монтирования
Здесь имя файла - aaa.fs, и размер файловой системы - 100000 блоков по 1024 байта.
Если на диске фильм, например, и потеря некоторых данных не критична, можно снять образ с него вот такой командой:
user@linux# dd if=/dev/cdrom of=~/cd-image.iso bs=4b conv=noerror
Также можно использовать recoverdm, sdd или readcd из пакета cdrtools.
Простой способ - хватит подавляющему большинству людей:
user@linux# dd if=/dev/cdrom of=/dev/null
Если это IDE-устройство и не используется ide-scsi (в ядрах 2.4 для записи CDR/RW), то можно пользоваться hdparm (опция -E):
root@linux# hdparm -E 8 /dev/cdrom
Если CDROM SCSI-устройство или используется ide-scsi, то hdparm не сработает. В этом случае можно попробовать программу cdspeed. Она работает с любым CDROM (IDE/SCSI), но часто сбрасывается при remount :(
root@linux# cdspeed -s 8 -d /dev/cdrom
Возможно, поможет `man hier`. Если нет - Filesystem Hierarchy Standard (он же на русском)
В любой дистрибутив входит программа fdisk. Есть более удобный cfdisk, очень мощный sfdisk и parted с графическими фронтендами на gtk и qt. После создания раздела нужно создать файловую систему (то, что в MS Windows называется "отформатировать"). Делается это с помощью программы mkfs.* Вместо * идет название файловой системы. Например:
mkfs.ext3 mkfs.reiserfs mkfs.reiser4 mkfs.xfs mkfs.vfat
Так обычно мучаются при переходе с UTF8 на KOI8-R и наоборот. Есть специальная програмка на эту тему - convmv. Она точно работает.
Есть хорошая утилита explore2fs, помимо ext2/ext3 она понимает reiserfs. Так же для доступа к reiserfs можно использовать это - http://p-nand-q.com/download/rfstool.html
Драйверы ext2/ext3: http://sourceforge.net/projects/ext2fsd/ и http://sourceforge.net/projects/winext2fsd/
В /etc/fstab должна быть строка такого вида:
/dev/cdrom /mnt/cdrom iso9660 user,unhide,noauto,owner,ro,users,utf8=true 0 0
Добавить в /etc/fstab запись вида:
/dev/hda1 /mnt/dos vfat utf8=true,codepage=866,umask=000,showexec,quiet 0 0
Вот здесь человек с ником h4tr3d всё подробно расписал
Для стандартного ядерного модуля поддержки NTFS прописываем в /etc/fstab такую строчку:
/dev/hda1 /mnt/disk_c ntfs dmask=0,fmask=0111,utf8=true,ro 0 0
Для NTFS-3G:
/dev/hda1 /mnt/windows ntfs-3g silent,umask=0,locale=ru_RU.utf8 0 0
Начнем с того, что это опасно и вы можете повредить свои данные на NTFS. Не говорите, что не предупреждал. Существует три способа:
Для систем с ядрами 2.6 наилучшим способом будет воспользоваться драйвером ntfs-3g, основанным на ntfsmount. Драйвером обеспечивается полная поддержка записи и чтения данных в NTFS разделах, включая зашифрованные, изменение прав и т.п., правда без ведения журнала.
Если необходима только запись в файл без создания его заново и изменения его размера, то можно собрать ядро с поддержкой записи на NTFS. На ядрах 2.4.x запись возможна только на NTFS от NT4.0, на ядрах 2.6 на любой NTFS. Нужно это некоторым дистрибутивам, которые не создают отдельный раздел под linux.
Использовать продукт обратной разработки под названием captive. Позволяет читать и писать на NTFS. Недостаток: он медленно пишет и ему нужна пара файлов из MS Windows (причем один из них - драйвер NTFS).
А здесь можно почитать о состоянии поддержи NTFS на текущий момент - http://www.linux-ntfs.org/.
Штатными средствами - никак. Файловые системы написаны без учета друг друга и поэтому в отличие от fat и ntfs не имеют общих корней. Тем не менее способ есть. Точнее есть утилита, которую вы можете использовать на свой страх и риск.
anyfs-tools - Скрипт anyconvertfs этого пакета позволяет сконвертировать любую файловую систему в Ext2FS/Ext3FS/XFS. Не исключено появление поддержки конвертирования и в другие ФС.
convertfs - Утилита есть в пакетах debian и портежах gentoo. Поддерживает LVM.
Почитать об этом можно здесь. Для восстановления с любых разделов можно использовать утилиту photorec. Единственное ограничение программы - в ограниченном количестве поддерживаемых типов файлов. В настоящий момент поддерживается порядка сотни типов файлов, включая популярные графические форматы, аудио, видео, архивы, тексты, pdf, офисные форматы.
Другая FS-независимая утилита http://foremost.sourceforge.net/. Кроме всего прочего, foremost также поддерживает восстановление данных с образов, созданных командой dd и подобными. Синтаксис программы крайне прост:
foremost -t тип_файлов -o выходной_каталог путь_к_устройству/образу
В отдельных случаях помогает reiserfsck --rebuild-tree, xfs_repair и e2fsck. Как показала практика, восстанавливать reiserfs с помощью reiserfsck, если на разделе лежит файл с образом reiserfs, не стоит.
Также поможет http://anyfs-tools.sourceforge.net/. На сайте программы довольно непонятная документация, поэтому посмотреть, как делать, можно тут.
Попробовать утилиту http://www.stud.uni-hannover.de/user/76201/gpart/gpart, пользуйтесь очень осторожно. Еще есть TestDisk
Для Linux:
root@linux# mount --bind src_dir dest_dir
Для FreeBSD:
root@freebsd# mount -t union src_dir dest_dir
Размонтировать соответственно можно командой umount
В состав e2fsprogs входит программа badblocks. Можно сразу использовать ее. И есть специальный скрипт, написанный под эту программу.
Если
reiserfsck --check /dev/{h,s}daX
выдает can be fixed only with --rebuild-tree, а
reiserfsck --rebuild-tree /dev/{h,s}daX прерывается с криком "не могу прочитать сектор такой-то, покупайте новый винт", информацию все еще можно восстановить. Перегружаемся с livecd, или с этой же системы, указав в параметрах ядра single. Это заставит ядро не монтировать фс и даст нам рутовый шелл. Также нам необходим любой раздел, смонтированый на запись. Подойдет дискета, флешка, в некоторых случаях можно использовать раздел, гарантированно без бэдов, предварительно подмонтировав его.
Итак, запускаем
badblocks -s -o /доступное_на_запись_место/badblocks /dev/sdaX -b 4096
и идем пить чай. Опция -b указывает размер кластера, в reiserfs обычно используется 4кб. Можно указать опцию -n, это увеличит не только точность обнаружения, но и время процедуры, так что решайте сами. Подробности в man badblocks. В любом случае, в зависимости от размера винчестера, это эаймет от 20 минут до нескольких часов. В итоге мы должны получить файл badblocks в том месте, где указали, со списком плохих секторов. Теперь, помолясь, его можно скормить reiserfsck таким образом:
reiserfsck --rebuild-tree -B /доступное_на_запись_место/badblocks /dev/sdaX
Если все пройдет удачно, получим почти целое содержимое, без некоторых файлов, которое можно скопировать в более надежное хранилище. Кстати, если reiserfsck все-равно ругается на невозможность прочесть кластер, это значит что badblocks просто не обнаружило его или посчитало целым. Можно добавить его прямо в текстовый файл /доступное_на_запись_место/badblocks и заново запустить reiserfsck.
В случае, если ФС - ext{2,3} все немного проще: утилита e2fsck имеет опцию -с, которая заставляет ее искать бэды и помечать их.
Запустить программу проверки fsck с ключом -c (для reiserfs не работает).
Внимание! Никогда, ни при каких обстоятельствах, не проверяйте смонтированные разделы!
Файловые unix-системы практически не подвержены фрагментации из-за особенностей своего строения. Фрагментация обычно не превышает 1.5-2 процентов. Вот хорошая цитата на эту тему: "You don't need to defragment Linux filesystems. Not ext3, not ReiserFS. Defragmentation is only a conce". Поэтому с дефрагментаторами тоже туго. Был какой-то defrag, но поверьте, вам не нужны такие утилиты. Хотя существует официальный дефрагментатор для XFS - xfs_fsr. Для того, чтобы встроенные механизмы дефрагментации нормально работали на разделе должно быть некоторое количество свободного места.
Когда работа ведется с большими файлами, рекомендуется использовать xfs. Для множества мелких - reiserfs. Наиболее надежной является ext3. xfs теряет информацию из файлов, в которые велась запись, при потере питания. Опытным пользователям и разработчикам рекомендуем ознакомиться с экспериментальной Reiser4. Следует помнить о том, что утилиты восстановления сбойных разделов лучше всего работают с ext3, а значительного повышения производительности при использовании файловой системы отличной от ext3 на подавляющем большинстве задач не происходит.
Основная статья: Reiser4
Монтировать не по названию раздела, а по его метке. Читайте man mount на предмет опций -U и -L.
Часть места на разделе по умолчанию резервируется для rootа. Это место лишним всё равно не будет --- во первых, если система не может создавать новый файл на корневом разделе, то зайти на неё может быть проблематично, во вторых, немного свободного места нужно для работы встроенных в fs механизмов борьбы с фрагментацией файлов. Отрегулировать количество зарезервированного места на ext2/ext3 можно с помощью tune2fs.