Европейский Университет в Санкт-Петербурге
Опубликован: 10.10.2005 | Доступ: свободный | Студентов: 1581 / 256 | Оценка: 4.30 / 3.85 | Длительность: 16:22:00
ISBN: 978-5-94774-820-8
Лекция 5:

Файловая система: идеология и структура

Разметка нового диска

Предположим, мы подключили новый диск, и это IDE primary slave диск. Для того чтобы создать на нем файловую систему, потребуется создать на новом диске разделы (по крайней мере один) и затем в каждом из разделов создать новую файловую систему.

Создание разделов на диске выполняется с помощью команды format или fdisk. Последняя применяется только для платформы x86. Однако из format можно вызвать fdisk, и предпочтительнее делать именно так. Почему - будет ясно из следующего описания.

После подключения нового диска нет надобности перенастраивать ядро Solaris, если диски этого типа в системе уже есть. Например, если у вас уже есть один IDE-диск и система с ним уже работает, незачем перезапускать систему с ключом r или создавать файл /reconfigure и перезапускаться для обнаружения нового устройства. Достаточно создать новые файлы устройств в каталогах /devices и /dev. Для этого в более ранних версиях Solaris использовалась программа disks, а в Solaris 9 следует запустить devfsadm. При запуске без параметров новый диск будет обнаружен и требуемые файлы будут добавлены в каталоги /devices, /dev/dsk и /dev/rdsk.

Теперь любая программа работы с диском, требующая файл устройства в каталоге /dev/rdsk, уже может работать с диском. Запустим программу format. В меню программы следует выбрать диск, а затем выбрать запуск fdisk. После этого мы будем работать в среде программы fdisk. Ее интерфейс нам знаком по другим системам, нужно лишь обратить внимание на то, что есть возможность создавать разделы нескольких типов. Если мы добавляем дополнительный диск для работы с ним из среды Solaris, то следует выбрать тип Solaris. Раздел на новом диске не должен быть помечен как "активный", если только с него не будет загружаться какая-нибудь система в будущем.

Можно запустить программу fdisk самостоятельно, без предварительного вызова программы format, но последняя все равно будет нужна на следующем этапе.

После создания раздела следует выйти из fdisk и в программе format выбрать partition->print.

Если определен размер только одного подраздела (partition), а именно - подраздела номер 2, это говорит о том, что для созданного раздела fdisk следует определить подразделы. Если это отвечает вашим намерениям, достаточно создать всего один подраздел размером с весь раздел fdisk. Это можно сделать через меню Partition программы format. Выбрав partition->номер подраздела (например, 0), будет легко задать его размер.

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

После этого можно создать новую файловую систему на получившемся подразделе. Помните: разделы fdisk для Solaris - это лишь место для размещения подразделов типа Solaris (slices). А на этих подразделах как раз и существует файловая система UFS и располагаются файлы и каталоги. Файловую систему на новом диске создадим командой newfs.

Программа mkfs позволяет создавать файловые системы разных типов, включая UFS, а newfs является более удобным интерфейсом к mkfs исключительно для создания файловых систем UFS:

# newfs /dev/rdsk/c0d1s0
newfs: construct a new file system /dev/rdsk/c0d1s0: (y/n)? y
/dev/rdsk/c0d1s0: 2060352 sectors in 2044 cylinders of 16
tracks, 63 sectors
    1006,0MB in 128 cyl groups (16 c/g, 7,88MB/g, 3776 i/g)
super-block backups (for fsck -F ufs -o b=#) at:
 32, 16224, 32416, 48608, 64800, 80992, 97184, 113376, 129568,
145760, 161952, 178144, 194336, 210528, 226720, 242912, 258080,
274272, 290464, 306656, 322848, 339040, 355232, 371424, 387616,
403808, 420000, 436192, 452384, 468576, 484768, 500960, 516128,
532320, 548512, 564704, 580896, 597088, 613280, 629472, 645664,
661856, 678048, 694240, 710432, 726624, 742816, 759008, 774176,
790368, 806560, 822752, 838944, 855136, 871328, 887520, 903712,
919904, 936096, 952288, 968480, 984672, 1000864, 1017056, 1032224,
1048416, 1064608, 1080800, 1096992, 1113184, 1129376, 1145568,
1161760, 1177952, 1194144, 1210336, 1226528, 1242720, 1258912,
1275104, 1290272, 1306464, 1322656, 1338848, 1355040, 1371232,
1387424, 1403616, 1419808, 1436000, 1452192, 1468384, 1484576,
1500768, 1516960, 1533152, 1548320, 1564512, 1580704, 1596896,
1613088, 1629280, 1645472, 1661664, 1677856, 1694048, 1710240,
1726432, 1742624, 1758816, 1775008, 1791200, 1806368, 1822560,
1838752, 1854944, 1871136, 1887328, 1903520, 1919712, 1935904,
1952096, 1968288, 1984480, 2000672, 2016864, 2033056, 2049248,

Смонтируем получившуюся файловую систему в каталог /test:

# mount -F ufs /dev/dsk/c0d1s0 /test
# ls test
lost+found

Обратите внимание, при создании файловой системы в ней сразу создается каталог lost+found, это делается для того, чтобы при автоматическом восстановлении файлов после сбоя (при перезагрузке, например) программе fsck было куда записать потерявшиеся фрагменты файлов. Кроме того, в некоторые блоки (их список выводится при работе newfs или mkfs ) записана резервная копия суперблока новой файловой системы.

Количество индексных дескрипторов в файловой системе

Количество индексных дескрипторов в создаваемой файловой системе типа UFS можно задать посредством указания параметра с ключом -i:

newfs -i nbpi raw_device_name

Например

newfs -i 2048 /dev/rdsk/c0d0p0

Параметр nbpi обозначает число байтов, приходящихся на один индексный дескриптор1Имеется в виду число байт данных в файлах этого раздела, а не длина индексного дескриптора, последняя фиксирована и равна 128 байтам (прим. авт.). , что при известном объеме диска однозначно определяет число индексных дескрипторов в файловой системе.

Программы mkfs и newfs поддерживают еще ряд ключей, которые позволяют гибко описывать параметры создаваемой файловой системы.

Игорь Ермачков
Игорь Ермачков
Латвия, Рига
Андрей Мальщуков
Андрей Мальщуков
Россия