Содержание


План перехода с Windows на Linux

Часть 6. Работа с разделами и файловыми системами

Использование дисков и устройств в Linux

Comments

Серия контента:

Этот контент является частью # из серии # статей: План перехода с Windows на Linux

Следите за выходом новых статей этой серии.

Этот контент является частью серии:План перехода с Windows на Linux

Следите за выходом новых статей этой серии.

Работа с файлами и устройствами хранения данных в Linux отличается от Windows. Есть файлы и иерархическая структура каталогов, но кроме этого, вам придется развить другой способ мышления.

Листинг 1. Структура каталогов
/
|-- bin
|-- boot
|-- dev
|-- etc
|-- mnt
|-- opt
|   |-- IBM
|   |   |-- WebSphereStudio
|   |   `-- db2
|   |-- IBMHttpServer
|-- root
|-- sbin
|-- tmp
|-- usr
|   |-- X11R6
|   |   |-- bin
|   |   |-- include
|   |   |-- lib
|   |   |-- man
|   |   `-- share
|   |-- bin
|   |-- dict
|   |-- doc
|   |-- etc
|   |-- include
|   |-- lib
|   |-- libexec
|   |-- local
|   |   |-- OpenOffice
|   |   |   |-- sbin

Нет букв, обозначающих диск!

В системе Linux нет букв, обозначающих диски. На самом деле, это очень полезно. Если вы работали в системе Windows в сложном сетевом окружении, на надежной машине с несколькими устройствами, алфавита могло просто не хватить. В Linux есть только одна файловая структура. Она начинается от корня (/), и все локальные файловые системы, все локальные устройства и все удаленные системы представлены в этой структуре подкаталогами.

Когда Linux загружается впервые, он строит эту файловую структуру на основе информации из /etc/fstab файла. Там, где Windows присваивает разделам жесткого диска и другим устройствам хранения данных буквы, Linux определяет им каталоги в корневой файловой структуре. Структуру иерархии можно полностью настраивать и менять на лету.

Подмонтируй!

Слово, обозначающее добавление устройства к файловой системе -- монтирование (mounting). Linux автоматически монтирует корневую (/) файловую систему. Отдельно может присутствовать файловая система /boot, в которой расположены загрузочные файлы ядра. Linux также монтирует некоторые особые файловые системы. Область свопинга не показывается как часть файловой системы, но управляется ядром. Однако, другие особые файловые системы, такие как proc, видны как нормальная часть файловой системы, а ее содержимое можно обрабатывать, как обычные файлы.

Другие файловые системы, такие как сменный носитель или удаленные файловые системы необходимо монтировать вручную. Монтируя файловую систему, вы должны знать правильный путь, чтобы сослаться на него из Linux и иметь пустой каталог, чтобы использовать его как точку монтирования (mount point). Для сменных носителей Linux, вероятно, создаст точки монтирования во время инсталляции. В Red Hat Linux устройство чтения компакт-дисков предполагается монтировать к каталогу /mnt/cdrom. Это означает, что когда вы вставляете CD в устройство CDROM, вы вводите команду:

mount /mnt/cdrom

CD добавляется в файловую систему и устройство чтения CD блокируется так, что случайно оно не откроется. Для доступа к содержимому компакт-диска просто используйте каталог /mnt/cdrom. Когда вы закончите работать с CD, можно будет удалить его из файловой системы при помощи команды:

umount /mnt/cdrom

Каталог /mnt/cdrom будет очищен, а устройство чтения CD разблокировано. Точно также следует поступать и с остальными сменными носителями информации, такими как дискета (/mnt/floppy).

Если выполнить mount без аргументов, то будут показаны файловые системы, подмонтированные в настоящий момент.

Файл /etc/fstab

Связь между устройством и его точкой монтирования настраивается в файле /etc/fstab. Его можно редактировать вручную или оставить программе администрирования. Вот пример /etc/fstab/:

Понимание /etc/fstab
/dev/hda5/ext3defaults1 1
/dev/hda2/bootext3exec,dev,duid,rw1 2
/dev/hda6swapswapdefaults0 0
/dev/scd0/mnt/cdromautoro,noauto,exec0 0
none/dev/ptsdevptsid=5,mode=6200 0
none/procprocdefaults0 0
none/dev/shmtmpfsdefaults0 0

Каждая строка представляет монтируемую файловую систему. Первая колонка определяет устройство, которое должно быть подмонтировано. Во второй колонке находится точка монтирования -- местоположение данного устройства в файловой системе. Третья колонка определяет тип файловой системы. В четвертой содержатся опции, показывающие как эта файловая система будет обрабатываться. В последней колонке написаны флаги, относящиеся к файловой системе. Первая цифра, 0 или 1, показывает, должна ли система копироваться при помощи команды dump (это нужно для системных резервных копий). Вторая цифра может быть 0, 1 или 2, она показывает порядок, в котором файловая система должна быть проверена при загрузке. 0 -- не должна проверяться вовсе. 1 -- должна проверяться первой и использоваться как корневая (/). Для всех остальных систем ставится 2.

В файле fstab, приведенном выше, корневая файловая система расположена на первом IDE жестком диске, в пятом разделе, первый логический диск в расширенном разделе. Файловая система /boot, где находятся файлы запуска ядра, расположена на первом IDE жестком диске, во втором первичном разделе. Пространство свопинга расположено на первом IDE жестком диске, в шестом разделе, втором логическом диске в расширенном разделе. Другие перечисленные файловые системы показывают свое устройство, как "none". Мы осветим это вкратце. А сейчас давайте сконцентрируемся на физических дисках.

Опции в четвертой колонке будут меняться в зависимости от типа файловой системы. В приведенном выше примере / и /boot подмонтированы с опциями "default". Это означает, что они монтируются автоматически, доступны для чтения и записи с асинхронным I/O (вводом/выводом). Только root может монтировать и отмонтировать устройства, но пользователи могут выполнять бинарники и использовать "sticky bit" (будет описан позже). Файловая система будет управляться как блочное устройство. Для /mnt/cdrom, однако, опции другие. Он не монтируется автоматически и будет открыт только для чтения. Пользователи смогут выполнять скрипты и программы в этой файловой системе.

Добавление файловых систем

Вы можете добавить файловые системы в /etc/fstab, дописав в файл новые строки. В качестве полезного примера приведу устройство RAID с файловыми ресурсами для использования отделом. Данное устройство будет содержать файлы данных и храниться отдельно от операционной системы, так что можно будет легко переместить его в другую систему в случае поломки оборудования. RAID уже сконфигурирован и распознается Linux как /dev/sdc, третье устройство SCSI. Журналируемая файловая система ext3 создана на первом разделе, и мы можем обращаться к ней как /dev/sdc1. Я хочу, чтобы этот RAID автоматически монтировался в файловую систему при загрузке компьютера.

Я добавляю следующую строку в /etc/fstab:

/dev/sdc1 /data ext3 defaults 0 0

В результате RAID подмонтируется при загрузке точно так же как системы / и /boot. Теперь я просто создаю каталог, который указал в качестве точки монтирования:

mkdir /data

Создав этот пустой каталог, мы теперь можем монтировать в него файловую систему:

mount /data

RAID теперь соответствует /data. Если система когда-либо будет перезагружаться, то /data подмонтируется автоматически.

Разделы

Разделы в Linux работают в общем так же как и в Windows. Консольная команда fdisk используется для создания и управления разделами. При выполнении этой команды вы должны указать ей устройство. Чтобы посмотреть доступные устройства, воспользуйтесь командой fdisk -l.

Листинг 2. Использование fdisk
[root@cmw-t30 root]# fdisk -l

Disk /dev/hda: 240 heads, 63 sectors, 7752 cylinders
Units = cylinders of 15120 * 512 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/hda1             1         8     60448+  8e  Linux LVM
/dev/hda2             9        15     52920   83  Linux
/dev/hda3   *        16      1403  10493280    c  Win95 FAT32 (LBA)
/dev/hda4          1404      7751  47990880    f  Win95 Ext'd (LBA)
/dev/hda5          1404      5565  31464688+  83  Linux
/dev/hda6          5566      5635    529168+  82  Linux swap
/dev/hda7          5636      7751  15996928+   b  Win95 FAT32

Приведенный выше список был создан на лэптопе, поэтому показывает довольно необычную для сервера структуру. Можно видеть один жесткий диск IDE с несколькими разделами. Если бы там были другие устройства, их бы тоже перечислили. Например, второй жесткий диск IDE мог быть показан как /dev/hdb.

Снова запустите fdisk с устройством и вы получите короткое приглашение.

Листинг 3. fdisk на устройстве
[root@cmw-t30 root]# fdisk /dev/hda

The number of cylinders for this disk is set to 7752.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
 (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help):

Ввод "m" даст вам меню команд. Текущая таблица разделов отобразится по нажатию "p". Вы можете создавать, удалять и изменять тип существующих разделов. "l" покажет вам полный список доступных типов разделов. Свои изменения в таблицу разделов вносите с помощью "w", закрывайте программу или выходите без сохранения используя "q". Некоторые изменения вступят в силу незамедлительно. Некоторые могут потребовать перезагрузки системы.

Правила создания разделов в Linux те же, что и в Windows. Доступно четыре первичных раздела, каждый из них может быть расширен.

Типы файловых систем

Linux может обслуживать любой тип файловой системы, о котором знает ядро. Изрядное их количество компилируется по умолчанию, а новые можно добавлять. Наиболее интересные из них:

  • ext2: Стандартная файловая система Linux
  • ext3: Стандартная файловая система Linux с добавленным протоколированием
  • vfat: Файловая система Microsoft Fat32
  • jfs: Журналируемая файловая система IBM
  • reiserfs: Еще одна популярная журналируемая файловая система

Форматирование разделов

Созданные разделы форматируются подходящей версией команды mkfs. У файловых систем есть свои собственные версии mkfs, например, mkfs.ext2 или mkfs.ext3. Эти вспомогательные скрипты позволят создать файловую систему, просто указав на раздел. Вот несколько примеров:

Листинг 4. Использование mkfs
 # Create an ext2 file system on the third
 # parition of the first IDE hard drive
mkfs.ext2 /dev/hda3

 # Create an ext3 file system on the first
 # partition of the 2nd SCSI hard drivemkfs.ext2
mkfs.ext3 /dev/sdb1

 # Create a jfs file system in an extended
 # partition on the first IDE hard drive.
mkfs.jfs /dev/hda5

Существуют различные продвинутые параметры, чтобы влиять на то, как будет форматироваться раздел, но в общем случае вполне подходят значения по умолчанию. Отформатированный раздел может быть смонтирован в корень (/). Файловую систему следует отмонтировать перед переформатированием.

Другие программы файловой системы

Давайте рассмотрим другие полезные программы.

Консольные программы

Есть несколько программных средств для просмотра состояния дисков и файловых систем.

df
df означает "disk free". Эта команда сообщает, сколько места на диске используется и доступно в подмонтированной файловой системе. Полезные ключи:

Проверка дискового пространства
df -hЧитабельно; использует дружественные индикаторы k, M и G, чтобы показывать размер файла, а не отображать его в байтах.
df -lОграничивает список до локальных файловых систем; по умолчанию показываются еще и удаленные

du
du означает "disk usage" (использование диска). Команда выводит, сколько дискового пространства используется определенными файлами и для каждого подкаталога (если аргумент -- каталог) Полезные ключи:

Проверка использования диска
du -aПоказывает счетчики для всех файлов, не только каталогов
du -hЧитабельность; использует дружественные индикаторы k, M и G, чтобы показывать размер файла, а не отображать его в байтах.
du -cПечатает общую сумму всех аргументов после того, как все они были обработаны; может использоваться, чтобы узнать полное использование диска заданным набором файлов или каталогов
du -sПоказывает только итог для каждого аргумента

fsck
Эта программа используется для проверки и исправления файловых систем, соответствует chkdsk в Windows. У нее будут разные версии для разных типов файловых систем, как например mkfs. fsck следует выполнять на неотмонтированных томах, хотя она вряд ли потребуется, если только файловая система не была правильно отмонтирована. man fsck и info fsck дают подробную информацию, также как и Ресурсы, в конце этой статьи.

Webmin

Webmin предоставляет несколько инструментов для работы с файловыми системами и разделами.

Рисунок 1. Программа работы с разделами в Webmin
Рисунок 1. Программа работы с разделами в Webmin

Техника, разделы на локальных дисках

Каждый диск и раздел показан с текущей информацией об использовании. Щелкните по названию файловой системы, чтобы узнать подробности. У отмонтированных разделов можно менять их тип и форматировать файловые системы.

Система, диск и сетевые файловые системы

Подмонтированные и отмонтированные файловые системы перечислены в /etc/fstab. У обычных файловых систем есть мастер для создания записей. Системы незнакомых типов можно монтировать и отмонтировать отсюда, но придется вручную редактировать /etc/fstab. Большинство серверных файловых систем вполне можно обслуживать отсюда.

Целое -- это сумма разделов

Хотя есть много общего в том, как Windows и Linux работают с разделами и файловыми системами, к переходу от букв, соответствующих дискам, к полностью иерархическому дереву придется привыкать. Как всегда есть программы надежной консоли для работы с этими функциями и конфигурационными файлами в каталоге /etc. Программа с интерфейсом-браузером вроде Webmin предлагает несколько вспомогательных инструментов.


Ресурсы для скачивания


Похожие темы

  • Оригинал этого учебного пособия на developerWorks
  • Прочитайте другие части из серии на английском Windows-to-Linux roadmap (developerWorks, November 2003) или на русском План перехода с Windows на Linux языке.
  • Linux Partition HOWTO более внимательно рассматривает механизм создания разделов и дает больше подробностей о доступных программных средствах.
  • Хотя Linux Administration Made Easy -- более старая ссылка, она тем не менее полезна, поскольку общие процедуры и технологии для Linux остаются неизменными.
  • Multi Disk System Tuning HOWTO описывает, как лучше всего использовать множество дисков и разделов в системе Linux.
  • "Installing and configuring SuSE Linux Enterprise Server (SLES) 8" показывает, как установить и настроить SuSE Linux Enterprise Server (SLES) 8, включая шаги для графической настройки с помощью YaST.
  • Linux System Administrator's Guide -- введение в администрирование системы Linux для новичков.
  • Серии developerWorks IBM Advanced filesystem implementor's guide имеют дело с продвинутыми темами, но тоже познакомят вас с различными опциями файловой системы, которые доступны под Linux.
  • Научитесь, как Put virtual filesystems to work (Заставить работать виртуальные файловые системы) в вашем коде в статье IBM developerWorks.
  • Форматируете новую систему? Сначала прочитайте это: "Partition planning tips" и "Partitioning in action", оба источника из IBM developerWorks.
  • "Dual-booting Linux" от IBM developerWorks объясняет, как легко завести Windows и Linux на одной машине.
  • Статья IBM developerWorks "Maximum swappage" может помочь улучшить эффективность использования свопинга на вашем Linux сервере.
  • Загрузчик Linux Loader или LILO, был заменен! Прочитайте об этом в учебнике developerWorks "Getting to know GRUB".
  • Ознакомившись с руководством от IBM developerWorks "Burning CDs on Linux", вы легко сможете записать CD в Linux.
  • О правах доступа к файлу и безопасности рассказывается в Части 3 руководства Introduction to Linux (Введение в Linux) в проекте Linux Documentation Project.
  • Ищите еще источники для разработчиков Linux в Linux зоне developerWorks.

Комментарии

Войдите или зарегистрируйтесь для того чтобы оставлять комментарии или подписаться на них.

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Linux
ArticleID=207223
ArticleTitle=План перехода с Windows на Linux: Часть 6. Работа с разделами и файловыми системами
publish-date=04052007