Д. Колисниченко - Ubuntu 10. Краткое руководство пользователя
Все перечисленные файловые системы (кроме ext2) ведут журналы своей работы, что позволяет восстановить данные в случае сбоя. Осуществляется это следующим образом — перед тем как выполнить операцию, журналируемая файловая система записывает эту операцию в журнал, а после выполнения операции удаляет запись из журнала. Представим, что после занесения операции в журнал произошел сбой (например, выключили свет). Позже, когда сбой будет устранен, файловая система по журналу выполнит все действия, которые в него занесены. Конечно, и это не всегда позволяет уберечься от последствий сбоя — стопроцентной гарантии никто не дает, но все же такая схема работы лучше, чем вообще ничего.
Файловые системы ext2 и ext3 совместимы. По сути, ext3 — та же ext2, только с журналом. Раздел ext3 могут читать программы (например, Total Commander и Ext2Fsd в Windows), рассчитанные на ext2. В современных дистрибутивах по умолчанию задана файловая система ext3 или ext4. При необходимости можно выбрать другие файловые системы. Давайте кратко рассмотрим их особенности, чтобы понять, нужно ли их использовать или же остановить свой выбор на стандартной ext3/ext4.
□ Файловая система XFS была разработана компанией Silicon Graphics в 2001 году. Основная особенность данной системы — высокая производительность (до 7 Гбайт/с). XFS может работать с блоками размером от 512 байтов до 64 Кбайт. Ясно, что если у вас много маленьких файлов, то в целях экономии места можно установить самый маленький размер блока. А если вы работаете с файлами большого размера (например, мультимедиа), то нужно выбрать самый большой размер блока — так файловая система обеспечит максимальную производительность (конечно, если «железо» позволяет). Учитывая высокую производительность этой файловой системы, ее нет смысла устанавливать на домашнем компьютере, поскольку все ее преимущества будут сведены на нет. А вот если вы будете работать с файлами очень большого размера, XFS проявит себя с лучшей стороны.
□ Файловая система ReiserFS считается самой экономной, поскольку позволяет хранить несколько файлов в одном блоке (другие файловые системы могут хранить в одном блоке только один файл или одну его часть). Например, если размер блока равен 4 Кбайт, а файл занимает всего 512 байтов (а таких файлов очень много в разных каталогах), то 3,5 Кбайт просто не будут использоваться. А вот ReiserFS позволяет задействовать буквально каждый байт вашего жесткого диска!
Но у этой файловой системы есть два больших недостатка: она неустойчива к сбоям и ее производительность сильно снижается при фрагментации. Поэтому, если вы выбираете данную файловую систему, покупайте UPS (источник бесперебойного питания) и почаще дефрагментируйте жесткий диск.
□ Файловая система JFS (разработка IBM) сначала появилась в операционной системе AIX, а потом была модифицирована под Linux. Основные достоинства этой файловой системы — надежность и высокая производительность (выше, чем у XFS). Но у нее маленький размер блока (от 512 байтов до 4 Кбайт). Следовательно, она хороша на сервере баз данных, но не при работе с данными мультимедиа, поскольку блока в 4 Кбайт для работы, например, с видео в реальном времени, будет маловато.
Как видите, оптимальным выбором для домашнего или офисного компьютера является все-таки ext4 или же, в крайнем случае, ReiserFS. Остальные файловые системы довольно специфические: XFS больше подходит для мультимедиастанции, а JFS — для сервера.
5.2. Имена файлов в Linux
По сравнению с Windows в Linux несколько другие правила построения имен файлов, вам придется с этим смириться. Начнем с того, что в Linux нет такого понятия, как расширение имени файла. В Windows, например, для файла Document1.doc именем файла является фрагмент Document 1, а doc — это расширение. В Linux Document1.doc — это имя файла, никакого расширения нет.
Максимальная длина имени файла — 254 символа. Имя может содержать любые символы (в том числе и кириллицу), кроме / ? < > * " |. Но кириллицу в именах файлов я бы не рекомендовал вообще. Впрочем, если вы уверены, что не будете эти файлы передавать Windows-пользователям (на флешке, по электронной почте) — используйте на здоровье. А при обмене файлами по электронной почте (кодировка-то у всех разная, поэтому вместо русскоязычного имени пользователь может увидеть абракадабру) имя файла лучше писать латиницей.
Также вам придется привыкнуть к тому, что Linux чувствительна к регистру в имени файла: FILE.txt и FiLe.Txt — это два разных файла.
Разделение элементов пути осуществляется символом / (прямой слэш), а не (обратный слэш), как в Windows.
5.3. Файлы и устройства
А сейчас Windows-пользователи будут вообще удивлены — в Linux есть файлы устройств, позволяющие обращаться с устройством, как с обычным файлом. Файлы устройств находятся в каталоге /dev (сокращение от devices).
Вот самые распространенные примеры файлов устройств:
□ /dev/sdx — файл устройства жесткого диска (SATA/SCSI/ATA), x — это порядок подключения диска к шине;
□ /dev/sdxN — файл устройства раздела жесткого диска, N — это номер раздела;
□ /dev/scdN или /dev/srN — привод CD/DVD;
□ /dev/mouse — файл устройства мыши;
□ /dev/modem — файл устройства модема;
□ /dev/ttySn — файл последовательного порта, n — номер порта (ttyS0 соответствует COM1, ttyS 1 — COM2 и т. д.).
В свою очередь, файлы устройств бывают двух типов: блочные и символьные. Обмен информации с блочными устройствами, например с жестким диском, осуществляется блоками информации, а с символьными — отдельными символами. Пример символьного устройства — последовательный порт.
С жесткими дисками сложнее всего, поскольку одно и то же устройство может в разных версиях одного и того же дистрибутива называться по-разному.
Так, раньше накопители, подключающиеся к интерфейсу IDE (PATA), назывались /dev/hdx, а SCSI/SATA-накопители — /dev/sdx (где в обоих случаях x — буква). Теперь же все дисковые устройства вне зависимости от интерфейса подключения (PATA, SATA, SCSI) называются /dev/sdx, где x — буква. Например, в старой версии дистрибутива мой IDE-диск, подключенный как первичный мастер, назывался /dev/hda, а сейчас — /dev/sda. Это связано с принятием udev[2] и глобального уникального идентификатора устройств (Universally Unique Identifier, UUID).
Все современные дистрибутивы (и Ubuntu— не исключение) поддерживают udev и UUID. Так что не удивляйтесь, если вдруг ваш старенький IDE-винчестер будет назван /dev/sda. С одной стороны, это вносит некоторую путаницу. С другой — все современные компьютеры оснащены именно SATA-дисками (так как PATA-диски уже устарели, а SCSI — дорогие), а на современных материнских платах только один контроллер IDE (PATA), потому многие пользователи даже ничего не заметят.
5.4. Стандартные каталоги Linux
Файловая система Ubuntu содержит следующие каталоги (рис. 5.1):
□ / — корневой каталог;
□ /bin — содержит стандартные программы Linux (cat, cp, ls, login и т. д.);
□ /boot — каталог загрузчика, содержит образы ядра и Initrd, может содержать конфигурационные и вспомогательные файлы загрузчика;
□ /cdrom — судя по названию, можно предположить, что к этому каталогу монтируется файловая система CD-ROM, но это не так. CD/DVD монтируется к каталогу /media/<ID>, а этот каталог, судя по всему, не используется;
□ /dev — содержит файлы устройств;
□ /etc — содержит конфигурационные файлы системы;
□ /home — содержит домашние каталоги пользователей;
□ /lib — библиотеки и модули;
□ /lost+found — восстановленные после некорректного размонтирования файловой системы файлы и каталоги;
□ /media — содержит точки монтирования автоматически смонтированных сменных носителей данных;
□ /mnt — обычно содержит точки монтирования;
□ /opt — оставлен из соображений совместимости, в Debian в этот каталог устанавливалось дополнительное (опциональное), то есть не входящее в состав дистрибутива, программное обеспечение;
□ /proc — каталог псевдофайловой системы proofs, предоставляющей информацию о процессах;
□ /root — каталог суперпользователя root;
□ /sbin — каталог системных утилит, выполнять которые имеет право пользователь root;
□ /selinux — служебный каталог системы SELinux;
□ /srv — содержит служебные каталоги различных сетевых служб, например, FTP- и WWW — серверов;
□ /sys — каталог псевдофайловой системы sysfs, предоставляющей информацию о системе;
□ /tmp — каталог для временных файлов;
□ /usr — содержит пользовательские программы, документацию, исходные коды программ и ядра;
□ /var — постоянно изменяющиеся данные системы, например, спулы системы печати, почтовые ящики, протоколы, замки и т. д.
5.5. Команды для работы с файлами