3.5. Дискова организация

Най-малката организационна единица, която FreeBSD използва за да намира файлове е името на файл. Имената на файловете чувствителни към размера на буквите (малки и големи), което означава, че readme.txt и README.TXT за два различни файла. FreeBSD не използва разширението (.txt) на файл за да разграничава дали файлът е програма, документ или друга форма на данни.

Файловете се записват в директории (папки). Една директория може да не съдържа никакви файлове, или да съдържа стотици, Директориите също могат да съдържат други директории, позволявайки ви да изградите йерархия от директории една в друга. Това позволява лесно да организирате данните си.

Файлове и директории се указват като се използват имената им следвани от наклонена черта (forward slash), /, последван от името на друга директория или файл ако това е необходимо. Ако имате директория с име foo, съдържаща друга директория bar, която от своя страна съдържа файлът readme.txt, тогава пълният път до този файл би бил foo/bar/readme.txt.

Директориите и файловете се записват във файлова система. Всяка файлова система съдържа само една директория в основното си ниво, наречена основна (root) директория за тази файлова система. Тази файлова система може да съдържа други директории.

Всичко това вероятно ви изглежда подобно на всяка друга операционна система която сте използвали. Все пак има някои разлики; например MS-DOS® използва \ като разделител на имената на директориите, докато Mac OS® използва :.

FreeBSD не използва букви за обозначаване на дисковете. Не можете да напишете c:/foo/bar/readme.txt под FreeBSD.

Вместо това има зададена основна файлова система . Коренът на основната файлова система се обозначава с /. Всяка друга файлова система се монтира под основната. Без значение колко диска имате всяка директория ще изглежда като част от един и същ диск.

Да предположим, че имате три файлови системи наречени A, B, и C. Всяка файлова система има една основна директория, която съдържа две други директории наречени A1, A2 (и съответно B1, B2 и C1, C2).

Да наречем A коренна (основна) файлова система. Ако използвате командата ls за да видите съдържанието на тази директория ще видите две поддиректории, A1 и A2. Дървото на директориите изглежда подобно на това:

Всяка файлова система трябва да бъде монтирана в директория на друга файлова система. Тогава какво става ако монтирате файлова система B в директория A1. Основната директория на B заменя A1, и съответно B ще изглежда така:

Всички файлове, които са в B1 или B2 директориите, могат да бъдат открити в пътя /A1/B1 или /A1/B2 както се очаква. Всички файлове които са били в /A1 са временно скрити. Те ще се появят ако B е демонтирана от A.

Ако B беше монтирана в A2 диаграмата би изглеждала така:

и пътищата биха били /A2/B1 и /A2/B2 респективно.

Файловите системи могат да бъдат монтирани една върху друга. Продължавайки предишния пример, файловата система C може да бъде монтирана върху B1 папката в B, което би изглеждало така:

Или C може да бъде монтирана директно във файловата система A под A1 директорията:

Ако сте запознат с MS-DOS, нещата са подобни, но не напълно.

Това не е нещо за което е необходимо да се притеснявате. Обикновено създавате файловите системи когато инсталирате FreeBSD и решавате къде да бъдат монтирани, след това не се налага да променяте нищо освен ако не се наложи да добавите нов диск.

Напълно възможно е да имате една голяма файлова система и да не създавате никакви други. Има няколко неудобства с този подход и едно предимство.

Предимства при множество файлови системи

Предимства при единична файлова система

Файловите системи се съдържат в раздели (partitions). Това няма същото значение както в често използвания термин раздел (partition) (например, MS-DOS дял), заради наследството от FreeBSD UNIX®. Всеки дял се идентифицира с буква от a до h. Всеки раздел може да съдържа само една файлова система, което означава, че те често се описват или чрез точката на монтиране в йерархията или чрез буквата на разделът в които се намират.

FreeBSD също така използва дисково пространство като поделено пространство (swap space). То предоставя виртуална памет. Това позволява вашият компютър да работи с повече памет от колкото всъщност има. Когато FreeBSD остане без памет, част от неизползваните в момента данни се премества в това поделено пространство, и се връща обратно (или се мести другаде), когато те са необходими отново.

Някои раздели имат имена определени от конвенция.

Раздел Конвенция
a Обикновено съдържа основната файлова система (root)
b Обикновено съдържа поделеното (swap) пространство
c Обикновено с размер на съдържащия дял (slice). Това позволява инструменти които трябва да работят с целия дял (например при тестване за повредени сектори) да работят с c раздела. Обикновено не би трябвало да създавате файлова система в този раздел (partition).
d Раздел d имаше специално значение преди, така че някои инструменти може да се държат странно ако им се каже да работят с раздел d, така че sysinstall обикновено няма да създаде автоматично раздел d.

Всеки раздел съдържащ файлова система е записан в това, което FreeBSD нарича дял (slice). Дял е терминът във FreeBSD за това което другите често наричат раздели (partitions), и отново това е заради UNIX основата на FreeBSD. Дяловете са номерирани започвайки от 1, до 4.

Номерата на дяловете следват имената на устройствата, предхождани от s, започвайки от 1. Така, че ``da0s1'' е първият дял на първият SCSI диск. Може да съществуват само четири физически дяла на един диск, но можете да имате логически раздели вътре във физическия дял от подходящ тип. Тези разширени дялове са номерирани започвайки от 5, така че ``ad0s5'' е първият разширен дял на първият IDE disk. Тези устройства се използват от файловата система която ще използва дяла.

Дялове, ``опасно посветени'' физически дискове и други дискове съдържащи раздели, които се представят като буквите от a до h. Тази буква се добавя към името на устройството, така че ``da0a'' е раздел на първият da диск който е ``опасно посветен''. ``ad1s3e'' е петият раздел на третия дял от втория IDE диск.

И накрая, всеки диск на системата се идентифицира. Името му започва с код, които показва типа на диска и след това номер показващ кой точно диск е това. За разлика от дяловете, номерирането на дисковете започва от 0. Често използвани кодове които ще видите са описани в Table 3-1.

Когато има обръщение към раздел FreeBSD изисква да укажете името на дяла и диска който съдържа раздела, когато се обръщате към дял трябва да упоменете и името на диска. Правете това като слагате името на диска, s, номера на дяла и след това буквата за раздел. Примери за дадени в Example 3-1.

Example 3-2 показва концептуално изображение на диск, което трябва да направи нещата малко по-ясно.

За да инсталирате FreeBSD трябва първо да конфигурирате дисковите дялове, след това в тях да създадете раздели в ще използвате за инсталирането на FreeBSD и след това да създадете файлова система или поделено пространство (swap space) във всеки раздел и накрая да решите къде да трябва да бъде монтирана файловата система.

Table 3-1. Кодове на дискови устройства

Код Значение
ad ATAPI (IDE) диск
da SCSI диск за директен достъп
acd ATAPI (IDE) CDROM
cd SCSI CDROM
fd флопи диск

Example 3-1. Примерни имена за диск, дял и раздел

Име Значение
ad0s1a Първият раздел (a) на първият дял (s1) на първият IDE диск (ad0).
da1s2e Петият раздел (e) на вторият дял (s2) на вторият SCSI диск (da1).

Example 3-2. Концептуален модел на диск

Тази диаграма показва как FreeBSD вижда първият IDE диск на системата. Да предположим, че диска е 4 GB и съдържа два 2 GB дяла (MS-DOS partitions). Първият дял съдържа MS-DOS диск, C:, а вторият FreeBSD инсталация. В този пример FreeBSD инсталацията има три раздела и поделено пространство.

Всеки от трите разделя ще съдържа файлова система. Раздел a ще бъде използван за основната файлова система e за /var йерархията и f за /usr директориите.

Този и други документи можете да намерите в ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

За въпроси относно FreeBSD, прочетете документацията преди да попитате в <questions@FreeBSD.org>.
За въпроси относно този документ, e-mail <doc@FreeBSD.org>.