Диски, приводы CD DVD-RW и файловые системы
Как записать компакт-диск (CD-R/CD-RW/DVD-RW)?
Можно записывать диск из консоли, можно воспользоваться программой с графическим интерфейсом. Во втором случае обычно используются программы 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. Могу ли я печатать эмблемы на диски прямо в Linux?
Да, безусловно, смотрите секцию LightScribe.
Нужно ли включать эмуляцию SCSI для пишущего привода CD/DVD-RW?
Только для ядер версий 2.4.х и ниже.
Как сделать, чтобы mkisofs писал файлы вместе с папками, а не скидывал все в корень?
Чтобы mkisofs сохраняя структуру, например, папки images и htmls, выполните:
user@linux$ mkisofs -v -J -r -graft-points images=~/images htmls=~/htmls | cdrecord ...
Как сделать, чтобы русские имена файлов, записанные K3B правильно читались на MS Windows?
В K3B такой проблемы при правильно настроенной локали не возникает, но нужно при выставлении настроек записи отметить в закладке «Файловая система» галочки «Создать расширение RockRidge» и «Создать расширение Joliet», после чего нажать кнопку «Сохранить настройки пользователя» — тогда вам не придется делать это каждый раз.
Как снять образ с компакт-диска (CD/DVD), с дискеты?
Воспользоваться командой 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
Третий и самый быстрый способ
root@linux# isoinfo -d -i /dev/cdrom | grep size Volume set size is: 1 Logical block size is: 2048 Volume size is: 2158464 root@linux# dd if=/dev/cdrom of=cd_dvd.iso bs=2048 count=2158464 conv=notrunc,noerror
Как смонтировать образ компакт-диска?
Есть два способа — один простой, другой чуть сложнее :-) Для обоих в ядре нужна поддержка 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, .bin, .cue, .nrg, .ccd, .dmg? Как сконвертировать образ из формата .img, .bin, .cue, .nrg, .ccd в iso9660?
Для начала давайте разберемся с форматами.
Формат .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, и размер файловой системы — 100 000 блоков по 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
Как мне установить скорость CDROM?
Если это 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
Для приводов NEC вышеприведённое может не сработать. Для них существует утилита speedcontrol
Что где должно «лежать» в системе?
Возможно, поможет man hier. Если нет — Filesystem Hierarchy Standard (он же на русском)
Чем и как создать/«отформатировать» разделы под Linux?
В любой дистрибутив входит программа fdisk. Есть более удобный cfdisk, очень мощный sfdisk и parted с графическими фронтендами на gtk и qt. После создания раздела нужно создать файловую систему (то, что в MS Windows называется «отформатировать»). Делается это с помощью программы «mkfs.*» Вместо «*» идет название файловой системы. Например:
mkfs.ext3 mkfs.reiserfs mkfs.reiser4 mkfs.xfs mkfs.vfat
Я поменял локаль и все русские названия файлов на ext3 (по вкусу) стали нечитаемыми. Как перекодировать названия/имена файлов?
Так обычно мучаются при переходе с UTF8 на KOI8-R и наоборот. Есть специальная програмка на эту тему — convmv. Она точно работает.
Как получить доступ к разделу с ext2/ext3 под MS Windows?
Есть хорошая утилита 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/
Как правильно смонтировать CD-ROM?
В /etc/fstab должна быть строка такого вида:
/dev/cdrom /mnt/cdrom iso9660 user,unhide,noauto,owner,ro,users,utf8=true 0 0
Как правильно смонтировать FAT-раздел?(vfat)
Добавить в /etc/fstab запись вида:
/dev/hda1 /mnt/dos vfat utf8=true,codepage=866,umask=000,showexec,quiet 0 0
Как заставить монтироваться флэш-карты в KDE4 с UTF-8
Вот здесь — http://hatred.homelinux.net/wiki/zhurnal:2008-08-12_09.22_kde4_i_montirovanie_fleshki — человек с ником h4tr3d всё подробно расписал.
Есть раздел под NTFS, как мне его увидеть из-под Linux? Как сделать видимыми русские буквы на NTFS?
Для стандартного ядерного модуля поддержки 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?
Да, это уже давно не проблема. Практически во всех дистрибутивах из коробки есть ntfs-3g.
Как без потери данных перевести раздел с ext3 на reiserfs, reiserfs на ext3, xfs на reiserfs и т. п.
Штатными средствами — никак. Файловые системы написаны без учета друг друга и поэтому, в отличие от fat и ntfs, не имеют общих корней. Тем не менее способ есть. Точнее есть утилита, которую вы можете использовать на свой страх и риск.
anyfs-tools — скрипт anyconvertfs этого пакета позволяет сконвертировать любую файловую систему в Ext2FS/Ext3FS/XFS. Не исключено появление поддержки конвертирования и в другие ФС.
convertfs — утилита есть в пакетах debian и портежах gentoo. Поддерживает LVM.
Как восстановить удалённый файл?
Почитать об этом можно на http://linuxdoc.ru/HOWTO/mini/index-E.html. Для восстановления с любых разделов можно использовать утилиту photorec. Единственное ограничение программы — в ограниченном количестве поддерживаемых типов файлов. В настоящий момент поддерживается порядка сотни типов файлов, включая популярные графические форматы, аудио, видео, архивы, тексты, pdf, офисные форматы.
Другая FS-независимая утилита — http://foremost.sourceforge.net/. Кроме всего прочего, foremost также поддерживает восстановление данных с образов, созданных командой dd и подобными. Синтаксис программы крайне прост:
foremost -t тип_файлов -o выходной_каталог путь_к_устройству/образу
В отдельных случаях помогает reiserfsck --rebuild-tree, xfs_repair и e2fsck. Как показала практика, восстанавливать reiserfs с помощью reiserfsck, если на разделе лежит файл с образом reiserfs, не стоит.
Также поможет [1]. На сайте программы довольно непонятная документация, поэтому посмотреть, как делать, можно тут.
Как восстановить таблицу разделов?
Попробовать утилиту [2], пользуйтесь очень осторожно. Еще есть TestDisk
Как подмонтировать одну директорию к другой?
Для Linux:
root@linux# mount --bind src_dir dest_dir
Для FreeBSD:
root@freebsd# mount -t union src_dir dest_dir
Размонтировать соответственно можно командой umount
Чем проверить жесткие диски на наличие плохих секторов (badblocks)?
В состав e2fsprogs входит программа badblocks. Можно сразу использовать ее. И есть специальный скрипт, написанный под эту программу.
Как восстановить раздел reiserfs, если на нем bad сектора?
Если
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.
В случае, если ФС — ext2 или ext3 все немного проще: утилита 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 на подавляющем большинстве задач не происходит.
!! Cтоит переработать вышестоящий параграф. Вообще ext4 подходит и для множества мелких файлов и для больших файлов, так-что не экспериментируйте над своими данными, ну и JFS не упомянут ни разу, хотя стоило !!
Я слышал про Reiser4, но в ядре её нет…
Основная статья: Reiser4
Я собрал новое ядро и названия разделов поменялись с sda на hda или наоборот. Что делать? Как сделать чтобы мои две флешки всегда монтировались каждая в свой каталог?
Монтировать не по названию раздела, а по его метке. Читайте man mount на предмет опций -U и -L.
Почему Linux показывает меньше свободного места на разделе, чем есть на самом деле?
Часть места на разделе по умолчанию резервируется для rootа. Это место лишним всё равно не будет — во первых, если система не может создавать новый файл на корневом разделе, то зайти на неё может быть проблематично, во вторых, немного свободного места нужно для работы встроенных в fs механизмов борьбы с фрагментацией файлов. Отрегулировать количество зарезервированного места на ext2/ext3 можно с помощью tune2fs.
Я вставляю флешку в кардридер, но ничего не происходит
Возможно, проблема с ядром: не скомпилированы нужные модули. Стоит проверить ключи в файле /proc/config.gz или /boot/config-версия_ядра в разделе сменных накопителей. Если все в порядке, но кардридер так и не работает, есть способ запуска вручную: после подключения флешки (скажем, в разъем, соответствующий /dev/sdd) сказать: sg_start /dev/sdd. Правами рута для этого обладать не надо. После этого флешка «оживет» (если, конечно, нет более серьезных проблем).