Настройка и работа в Linux
adb5321d

Файловая система


Работа с дисками, файловыми системами и другими блочными устройствами для Linux здорово отличается от аналогичной работы для Windows. Это опять же связано с идеологическими требованиями, с которых я начал. Корневая файловая система - та, которая предоставляет точку отсчета для всех файловых систем в Linux. Для всех файловых систем применяется так называемый механизм монтировки (я знаю, что Windows тоже монтирует файловые системы, но доступ человека к этому процессу крайне ограничен). Это означает, что любая файловая система перед работой должна быть зарегистрирована ядром. В разделе, посвященном ядру, было описано незначительное количество типов файловых систем, поддерживаемых Linux, всего их более 40. Каждая файловая система имеет свой набор параметров, которые можно менять для более эффективной работы (а иногда следует менять просто для работы). Эти параметры свои для каждой файловой системы, и некоторые из них ядро умеет определять самостоятельно. Для тех же, которые ядро не определяет, существует файл fstab. Пусть вас не обманывает его кажущаяся простота - количество параметров, которые можно в него вносить, порядка тысячи. Правда, для обычного домашнего компьютера с файловыми системами для Linux и DOS/Windows вполне можно обойтись десятком.

Поскольку пользователь не должен знать о физической структуре компьютера, то каждый раздел на жестком диске, дисководы для флоппи и CD-ROM, а также каждый стриммер, или иной носитель информации, представляется простым каталогом. Выбор этого каталога - дело администратора, но обычно следуют соглашению о том, что каждый неродной для Linux раздел находится в поддиректории директории /mnt. Для этого в ней создаются директории вроде diskc, cdrom, floppy. После монтирования файловой системы эти директории будут называться точками монтирования. Туда можно записать все что угодно, но после монтирования эти данные станут недоступными, хотя место на диске занимать будут. А потому этого делать не рекомендуется. (Существовало предложение о решении проблемы скрытой массы Галактики, как о гипотетической галактике записанной в Пространство до монтирования нашей.) Эту информацию тоже полезно внести в fstab.




umask=nnn Маска доступа по умолчанию. Для этой и следующей опции по умолчанию используется для FAT пользователь, смонтировавший систему, а для NTFS - root.
uid=n, gid=n GID и UID владельца по умолчанию.
codepage=866 Кодировка родного языка для FAT (показан русский)
quiet Изменения UNIX-атрибутов не происходит и не приводит к ошибке.
uni_xlate Заменять Unicode-символы. Практически всегда следует указывать. Позволяет правильно работать с пробелами в названии файлов.
iocharset=koi8-r Кодировка родного языка для Linux (так же показан русский)
Опции для ISO9660 (или CDFS) автоматически корректно определяются для каждого диска, включая поддержку расширений для работы с длинными именами RockRidge и Joliet. Также к числу часто используемых типов файловых систем относится NFS (Network File System). Она позволяет монтировать каталоги с удаленных компьютеров по сети. Большая часть ее настроек опивается в разделе об установке сети, поскольку они специфичны именно для этого. Также я не буду описывать файловые системы Ext3 (журналируемое расширение Ext2), ReiserFS (наиболее вероятный преемник семейства Ext), и DFS (DVD File System), хотя они тоже достаточно важны, поскольку для Ext3 и ReiserFS практически полностью решены проблемы с кэшированием.

В последнем столбце стоят 2 числа - fs_freq и fs_passno. fs_freq может принимать значение 0 и 1, и отвечает за создание резервной копии раздела в случае сбоя системы. Это полезно на больших корпоративных серверах с RAID'ом и для системных программистов, разрабатывающих модули для ядра. Остальным не требуется. fs_passno определяет порядок проверки файловой системы при первичной загрузке системы. Число 1 обязательно следует указывать для корневой файловой системы. Если вы захотите проверять что-нибудь кроме нее, то ставьте число 2, в противном случае - 0.

Такое монтирование файловых систем имеет свои ограничения. Первое ограничение связано с кэшированием записи в файловую систему. Дело в том, что нельзя извлекать носитель информации до того как его не размонтировали. Если вы просто читали с него, то это часто полбеды. А вот если еще и писали... Последствия могут быть самыми неожиданными, вплоть до полной остановки системы из-за не вовремя вынутой дискеты. Причем именно дисковод являются самым незащищенным носителем. (Это одна из причин, по которым я считаю, что дисководу не место в профессиональной машине.) Привод CD защищается режимом Read-Only и блокировкой лотка. Блокировка лотка приводит к тому, что нажатие на клавишу eject на панели привода не возымеет никакого действия до тех пор, пока не размонтируете файловую систему диска. Другое ограничение это то, что для работы со сменным носителем приходится каждый раз набирать команду mount.

Частично эти ограничения позволяет обойти автомонтирщик. Это программа, которая монтирует сменный носитель при обращении к нему. Для того, чтобы использовать автомонтировщик, следует включить его поддержку в ядре. Самый распространенный автомонтировщик это autofs. Он управляется файлом auto.master. Структура auto.master #каталог управляющий файл /mnt /etc/auto.misc



Каждый раз, когда происходит обращение к каталогу /mnt, запускается автомонтировщик с управляющим файлом /etc/auto.misc. #auto.misc #подкаталог опции :устройство cdrom -fstype=iso9660 :/dev/hdc floppy -fstype=auto :/dev/fd0

Тогда при дальнейшем обращении к /mnt/cdrom происходит запуск mount для устройства /dev/hdc с указанными опциями. Указание в опциях файловой системы для носителя обязательно, остальные опции могут браться из fstab.

Проведение проверок дисков является необходимостью, независимо от используемой файловой и операционной систем. В Linux для этого служит целый набор команд. Команда badblocks проводит проверку поверхности диска на читаемость и записываемость, она действует независимо от используемой файловой системы. Для ее выполнения файловую систему необходимо размонтировать (ГРАБЛИ! все проверки дисков это ПОСИМВОЛЬНЫЕ команды), а затем отдать команду badblocks /dev/hda3 > /tmp/bblcks3

После этого вся информация о поврежденных участках поступит в файл /tmp/bblcks3. Это необходимо, т.к. далее она понадобится для проверки файловой системы.

Проверка файловой системы на носителях проводится различными (ПОСИМВОЛЬНЫМИ!) командами, в зависимости от типа файловой системы (есть общая fsck, которая занимается только тем, что вызывает специфическую, и для работы требует указывать тип файловой системы). Обычно требуется только e2fsck. Она проводит проверку суперблока файловой системы, структуры директории, а также может проводить проверку читаемости поверхности. Однако последнее не требуется, если вы использовали команду badblocks. Еще раз обращу ваше внимание на то, что для запуска проверки файловая система должна быть размонтирована, или, в крайнем случае, смонтирована read-only. e2fsck -l /tmp/bblcks3 /dev/hda3

Тогда при проверке будет предпринята попытка перенести информацию с поврежденного блока на целый. Иногда это удается.

Файловая система, продолжение


Содержание:

Linux Navigator. Консоль
Linux Navigator. Инсталляция
Linux Navigator. Опции ядра
Linux Navigator. Администрирование
Linux Navigator. Файловая система 1. Монтирование.
Linux Navigator. Файловая система 2.
Linux Navigator. Настройки сети.

 

Содержание:

Linux Navigator. Консоль
Linux Navigator. Инсталляция
Linux Navigator. Опции ядра
Linux Navigator. Администрирование
Linux Navigator. Файловая система 1. Монтирование.
Linux Navigator. Файловая система 2.
Linux Navigator. Настройки сети.

 

dd if=/dev/zero of="/tmp/cdimage" bs=1024k count=650

В нем создается файловая система iso9660 (можно создать любую другую, например ext2, fat или ntfs, но прочесть такие диски будет можно только под Linux)

mkisofs /tmp/cdimage

Команда выругается, попробует послать вас подальше, но вы не поддавайтесь, и ответьте yes на вопрос о продолжении работы. Затем полученный образ монтируется как обычное блочное устройство

mount -t iso9660 -o loop=/dev/loop1 /tmp/cdimage /mnt/cdrw

После это вы просто записываете желаемые файлы в директорию /mnt/cdrw. В этом состоит весь второй этап. В последнем или третьем этапе происходит непосредственно запись.

cdrecord -v speed=8 -data /tmp/cdimage

В большинстве дистрибутивов установка программ автоматизирована с помощью системы пакетов. Системами пакетов управляют пакетные менеджеры, самый удачный из которых - rpm (Redhat Packet Manager). Он устанавливается на многих дистрибутивах, а не только на Red Hat Linux. Есть и другие пакетные менеджеры, но их возможности только частично покрывают возможности rpm. Наиболее удобной возможностью rpm является прослеживание взаимосвязи между отдельными пакетами. Все пакеты rpm имеют специальную форму, в которой пишутся их названия.

имя-версия-модификация.архитектура.rpm

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

rpm -i [опции] Установка пакета. rpm -U [опции] Обновление пакета. rpm -e [опции] Удаление пакета.

Дополнительные опции для установки и обновления

-oldpackage - Разрешить замену нового старым.

-replacefiles - Разрешить замену любых файлов. Будьте осторожны.

-replacepkgs - Устанавливать пакет, даже если он уже установлен.



-force - Все три предыдущих вместе.

-nodeps - Не проверять зависимости перед установкой.

-allfiles - Устанавливать все файлы, не обращая внимание, на их возможное отсутствие.

-notrigger - Запретить триггеры (программы, которые запускаются автоматически после установки).

-excludedocs - Не устанавливать документацию.

-includedocs - Обратно предыдущему.

-test - Только проверить будущую установку.

Дополнительные опции для удаления:

-allmatches - Удаление всех версий пакета.

-noscript - Запрет preunistall и postuninstall.

-nodeps - Не проверять зависимости.

-notrigger - Запрет триггеров.

-test - Только проверка.

Управляется rpm файлом rpmrc. Менеджеры пакетов очень удобны, не следует только ставить несколько разных на одну систему. В пакетах rpm например распространяются драйвера для видеокарт nVIDIA. Тогда если у вас чистый дистрибутив, вам следует только скачать с сайта www.nvidia.com необходимые пакеты и установить, как описано в файле Nvidia Linux Driver Installation. Установка этого драйвера отличается от обычной, а потому расскажу, как она происходит. Она делится на 2 основных этапа - установка драйвера видеокарты и библиотеки GLX. Библиотека GLX это библиотека функций OpenGL для Linux и XFree86 4. Сначала прочтите файл readme, поверьте, лучшего описания драйвера я не встречал никогда. Загрузитесь без графической оболочки (режим init 4), и выполните

rpm -i NVIDIA_kernel-1.5-2880.i386.rpm

Это ставится драйвер nVIDIA. Его название kernel немного обескураживает, но думаю, можно сделать скидку на манию величия разработчиков. Он распространяется в виде откомпилированного модуля для ядра (все нужные функции в ядре Linux указали?). При установке запустятся триггеры, которые создадут устройства /dev/nvidia1, /dev/nvidia2, /dev/nvidia3 и /dev/nvidia4. А также добавят новый ядреный модуль в список загружаемых. Имейте в виду, что для работы GLX вам потребуется версия графической оболочки X Window XFree86 не ниже 4. В противном случае Quake III Arena, Return to Castle Wolfenstein и др. не запустятся.



rpm -i NVIDIA_GLX-1.0-2880.i386.rpm

Самым последним ( и самым сложным) является внесение изменений в конфигурационный файл X Window. Это файл /etc/X11/XF86Config-4. Не перепутайте, есть похожий XF86Config, он не подойдет. В этом файле необходимо заменить строку

device "nv"

на

device "nvidia"

А строки

Load "dri" Load "GLcore"

закомментируйте. Запустите X командой startx и работайте (в смысле играйте). Однако этот простой метод не подойдет, если вы поставили иную версию ядра, отличную от стандартной для данного дистрибутива. Тогда самым лучшим выходом будет установка драйвера из архива. Библиотеки NVIDIA_GLX это не касается.

Для этого скачайте файл NVIDIA_kernel-1.0-2880.tar.gz и распакуйте командой

tar xzf kernel-NVIDIA_1.0-21880.tar.gz

После это в получившемся каталоге выполните команду

make install

Теперь можно играть. Другие устройства в современных дистрибутивах устанавливаются и конфигурируются автоматически демоном kunzu, интерфейс которого очень похож на аналогичный сервис Windows. Понятно, при условии, что у вас есть уже поддержка этого устройства в ядре или диск с модульным драйвером. Этот демон умеет очень много и почти полностью освобождает администратора от необходимости устанавливать прерывание, область DMA, и многих других часто ненужных вещей. Он умеет даже после установки новой видеокарты сделать нормальную загрузку графической среды.

Установка программ для пакетных систем - занятие несложное, не требуется даже знать где находится сама программа, ссылки на нее обычно автоматически появляются сами в /bin или /usr/bin. Однако есть класс программ, о которых следует поговорить отдельно. Я говорю об играх. На мой взгляд, столь сильная популярность Windows на отечественном рынке не связана ни с простотой установки, ни с легкостью управления, ни даже с доступностью в ларьках у метро. Первые два это просто не правда, а второе - следствие Главной Причины. Главная причина - это Огромное Количество Разнообразных Игрушек на Рынках Нашей Бескрайней Родины. Большинство статьей, посвященных операционным системам, говорят "система XXX предназначена для игр и медиа, система YYY для научных расчетов, система ZZZ - исключительно для сети". Никому из них, видимо, даже не приходит в голову, что операционная система, которая НЕ предназначена для работы ВСЕХ ВОЗМОЖНЫХ программ, просто не нужна. Так же и с Linux, но если пройти по рынкам, скорее всего вы игр не найдете (а если найдете, напишите мне, я тоже туда схожу). Тем не менее, игры есть, и достать их не сложно, достаточно скачать из Интернета.

Для того чтобы получить игрушку для Linux, зайдите на сайт производителя игры и скачайте демку для Linux, которую установите в директорию к полной версии игры для Windows. (Я считаю унизительным использование эмуляторов.) Иногда после этого следует убрать остатки демки. Для Quake III после такой установки, в основной директории игры появляются файл quake3.x86 и поддиректория q3demo. Эту поддиректорию можно (но не обязательно) стереть для сохранения места, поскольку она больше не имеет значения для самой игры. Причем версия для Windows сохранилась, поскольку сохранился файл quake3.exe. Есть способ удобнее, но сложнее. Необходимый файл quake3.x86 также можно вынуть из патча для Linux.

С Unreal Tournament все незначительно сложнее. UTdemo для Linux не следует сразу устанавливать в директорию полной игры, установите во временную. Вам потребуется только поддиректория System демки, которую и перенесите в основную директорию полной игры. Самым последним этапом установки UT является установка последнего патча, также с сайта производителя, для того чтобы не произошел конфликт версий. Найти большое количество демок можно на сайте компании Loki Games, производителя и портера игр для Linux, по адресу http://www.loki.com.


Содержание раздела