Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Лекція 6 Розділи в серверних системахСодержание книги
Поиск на нашем сайте
Розглянемо системи розділів FreeBSD, NetBSD і OpenBSD; системи розділів Sun Solaris. Розділи BSD Комп'ютерним аналітикам все частіше доводиться мати справу з серверними системами BSD UNIX – такими, як FreeBSD, OpenBSD і NetBSD. Такі системи використовують власні схеми формування розділів, і в цій частині опишемо відповідні структури даних. На практиці частіше зустрічається система Linux, але вона використовує тільки розділи DOS і не має власних структур даних. Більшість систем BSD працюють на обладнанні IА32 (тобто x86/i386), а при їх проектуванні враховувалася можливість їх спільного існування на одному диску з продуктами Microsoft. Такі системи будуються на базі розділів DOS, описаних нами вище. Системи BSD, ті, що працюють на іншому устаткуванні, ймовірно, не використовуватимуть розділи DOS. Перш ніж переходити до розгляду, необхідно зрозуміти одну важливу обставину: під час роботи операційна система може вибрати розділи, доступ до яких надається користувачеві. Як буде показано, операційна система FreeBSD використовує системи розділів DOS і FreeBSD, тоді як OpenBSD і NetBSD використовують тільки систему розділів BSD. Для цього розділу потрібно хоч би загальне розуміння розділів DOS. Загальний огляд. Система розділів BSD простіша за систему розділів DOS, але по своїх можливостях вона поступається картам розділів Apple. Необхідні дані зберігаються тільки в одному секторі, який знаходиться в розділі DOS (рис. 6.1). Це було зроблено для того, щоб на тому ж диску могла бути встановлена система Windows, а користувач міг вибрати завантажувану операційну систему. У таблиці розділів DOS створюється запис для розділів FreeBSD, OpenBSD або NetBSD - типи 0ха5, 0ха6 і 0ха9 відповідно. Розділ BSD є одним з первинних розділів DOS. Розділи BSD знаходяться всередині тому, створеного на основі розділу DOS. Як описано вище, це один з прикладів розбиття на розділи тому, створеного на базі розділу. Центральною структурою даних є розмітка диска (disk label). Її розмір складає мінімум 276 байт, і вона знаходиться в другому секторі розділу BSD. В деяких системах, що не використовують платформу IA32, вона може зберігатися в першому секторі із зміщенням. У FreeBSD, OpenBSD і NetBSD використовується одна структура даних, але з деякими відмінностями в реалізації. Структура розмітки диска містить апаратні специфікації диска і таблиці розділів для восьми або шістнадцяти розділів BSD. На відміну від схеми Apple, таблиця розділів має фіксований розмір, а на відміну від розділів DOS, існує тільки одна таблиця розділів. Кожен запис в таблиці розділів BSD містить наступні поля: - початковий сектор розділу BSD; - розмір розділу BSD; - тип розділу; - розмір фрагмента файлової системи UFS; - кількість фрагментів файлової системи UFS на блок; - кількість циліндрів в групі UFS. Адреса початкового сектора відлічується від початку диска, а не від розмітки диска або розділу DOS. Поле типу розділу визначає тип файлової системи, яка повинна знаходитися в розділі BSD, - наприклад, UFS, область підкочування, FAT або невживана область. Останні три значення використовуються тільки в тому випадку, якщо розділ містить файлову систему UFS. Основні принципи схеми розділів BSD прості. Отримання інформації зводиться до читання однієї структури даних і обробки списку розділів. Проте, деякі проблеми можуть виникнути з доступом до розділів. Наприклад, в системі з альтернативним завантаженням аналітик повинен знати, чи мав користувач доступ до розділу Windows і до розділу BSD. У FreeBSD це питання вирішується не так, як в OpenBSD і NetBSD. FreeBSD. FreeBSD надає користувачеві доступ до усіх розділів DOS і BSD на диску. У термінології FreeBSD розділи DOSназиваються сегментами (slice), а розділи BSD називаються просто розділами. Отже, якщо в системі встановлені Windows іFreeBSD, при роботі з FreeBSD користувач матиме доступ сегментам Windows. Структура розмітки диска в FreeBSD використовується для організації секторів тільки в межах розділу DOS, що містить розділи FreeBSD. На перший погляд це здається очевидним, але насправді це одна із принципових відмінностей між реалізаціями OpenBSD і FreeBSD. На рис. 6.2розмітка диска описує три розділи, що знаходяться в розділі DOS з типом розділу FreeBSD, але для опису розділу з типом NTFS вона не потрібна. FreeBSD, як і інші різновиди UNIX, зв'язує з кожним розділом і сегментом спеціальний файл пристрою. Ім'я цього файлу задається у відповідності з номером розділу DOS і номером розділуBSD. Первинному диску АТА привласнюється базове ім'я /dev/ad0. Для кожного сегменту, також названого розділом DOS, до базового імені додається буква "s" і номер сегменту. Наприклад, перший сегмент позначається ім'ям /dev/ad0s1, а другий - /dev/ad0s2. На будь-якому сегменті з типом розділу FreeBSD система шукає структуру розмітки диска. Розділам в сегменті привласнюються буквені позначення на підставі положення їх записів в таблиці розділів розмітки диска. Наприклад, якщо другий розділ DOS належить FreeBSD, першому розділу BSD буде присвоєно ім'я /dev/ad0s2a, а другому - /dev/ad0s2b. Також іноді для розділів BSD створюється друга група імен пристроїв, що не включає номера сегментів. Наприклад, ім'я /dev/ad0a може використовуватися як скорочене позначення розділу /dev/ad0s2a (якщо розділ FreeBSD є другим розділом DOS). Деякі розділи BSD мають особливий сенс. Розділ "а" зазвичай виконує функції кореневого, в ньому знаходиться завантажувальний код. Розділ "b" зазвичай містить область підкачки, розділ "с" зазвичай представляє увесь сегмент, а починаючи з "d", розділи можуть містити довільну інформацію. Я говорю "зазвичай" тому що ці розділи створюються більшістю системних програм BSD, але користувач може відредагувати таблицю розділів в розмітці диска і змінити її вміст. Отже, система FreeBSD надає доступ до усіх розділів DOS і розділам FreeBSD. В процесі повного аналізу системи експерт повинен проаналізувати кожен розділ DOS і кожен розділ BSD, присутній в розмітці диска. NetBSD і OpenBSD. NetBSD і OpenBSD надають користувачеві доступ тільки до записів, які присутні в структурі розмітки диска BSD.На відміну від розмітки диска FreeBSD, в OpenBSD і NetBSD ця структура може описувати розділи, які знаходяться в будь-якому місці диска. Інакше кажучи, розмітка диска може описувати розділи за межами того розділу DOS, в якому вона знаходиться. Говоритимемо тільки OpenBSD, але насправді йдеться про обидві системи, OpenBSD і NetBSD. ПроектOpenBSD відокремився від NetBSD багато років тому. Після завантаження ядра OpenBSD розділи DOS ігноруються. Система використовує їх тільки для виявлення початку розділу OpenBSD. Отже, якщо в системі встановлені як Windows, так і OpenBSD, а користувачам наданий доступ до розділу FAT з OpenBSD, то розділ FAT буде присутнім як в таблиці розділів DOS, так і в розмітці диска BSD. Ситуація показана на рис. 6.3 для розділів DOS, показаних на рис. 6.2. Проте цього разу в розмітці диска знадобиться додатковий запис для звернення до розділу DOS з типом NTFS. Імена файлів пристроїв в OpenBSD схожі на ті, що використовуються в FreeBSD. Первинному пристрою АТА призначається базове ім'я /dev/wd0. Поняття "сегментів" відсутнє, а імена розділів BSD позначаються буквами. Звідси, першому розділу BSD привласнюється ім'я /dev/wd0a, а другому - /dev/wd0b. Як і в FreeBSD, перший розділ зазвичай є кореневим, а другий призначається для області підкачки. Третій розділ, /dev/wd0c в нашому випадку, є пристроєм, що представляє увесь диск. Згадуємо, що в FreeBSD третій розділ призначався тільки для одного сегменту, або розділу DOS. Підведемо підсумок: система OpenBSD надає доступ тільки до розділів, описаних в розмітці диска OpenBSD. Аналіз системи OpenBSD слід зосередити на розділах, перерахованих в розмітці диска. Завантажувальний код. Завантажувальний код в системі BSD "оточує" структуру розмітки диска, яка знаходиться в секторі 1 тому. У секторі 0 томів зберігається завантажувальний код, який виконується при виявленні завантажувачем MBR завантажувального розділу з типом BSD. Якщо завантажувальний код не поміщається в секторі 0, він триває в секторі 2 і може тривати до початку даних файлової системи, зазвичай в секторі 16. Структури даних Опишемо структури даних розмітки диска BSD і приводиться приклад обробки системних даних в системах FreeBSD і OpenBSD. Також наводяться приклади результатів деяких службових програм. Розмітка диска. Подивимося, як влаштована структура даних, названа розміткою диска. В таблиці 6.1 перераховані поля цієї структури даних. Врахуйте, що деякі поля можуть бути не задіяні у визначенні структури диска, але при цьому потрібні для виконання інших операцій.
Таблиця 6.1 – Структура даних розмітки диска BSD
Структура 16-байтового запису з таблиці розділів BSD приведена в таблиці 6.2.
Таблиця 6.2. Структура даних розмітки диска BSD
Поле типу визначає тип файлової системи, яка може знаходитися в розділі BSD. Припустимі значення перераховані в таблиці 1.11.
Таблиця 6.3 – Типи розділів BSD
Найпоширенішою файловою системою для FreeBSD і OpenBSD є 4.2BSD FFS (Fast File System). Для цієї системи також створюється мінімум один розділ підкачки. Розділ NTFS зазвичай має тип "використовується, але має невідомий вміст". Тепер розглянемо приклад системи, в якій встановлені як FreeBSD, так і OpenBSD. Вміст таблиці розділів DOS виглядає так: # mmls - t dos bsd - disk.dd Units are in 512 - byte sectors Slot Start End Length Description 0000: 0000000000 0000000000 0000000001 Primary Table (#0) 001: 0000000001 0000000062 0000000062 Unallocated 002: 00:00 0000000063 0002056319 0002056257 Win95 FAT32 (0x0В) 003: 00:01 0002056320 0008209214 0006152895 OpenBSD (0xA6) 004: 00:02 0008209215 0019999727 0011790513 FreeBSD (0xA5) Ми бачимо, що диск містить розділ FAT (1 Гбайт), розділ OpenBSD (3 Гбайт) і розділ FreeBSD (6 Гбайт). У кожному з розділів OpenBSD і FreeBSD знаходиться структура розмітки диска з описом додаткових розділів. Приклад образу OpenBSD. Почнемо з обробки розмітки диска OpenBSD. Розділ починається в секторі 2 056 320, і розмітка диска знаходиться в другому секторі: # dd if=bsd - disk.dd skip=2056321 bs=512 count=l | xxd 00000000000000: 5745 5682 0500 0000 4553 4449 2f49 4445 WEB ESDI/IDE 000000000016: 2064 6973 6b00 0000 4d61 7874 6f72 2039 disk..Maxtor 9 000000000032: 3130 3234 4434 2020 0002 0000 3f00 0000 1024D4...?.. 000000000048: 1000 0000 ff3f 0000 f003 0000 f02b 3101? +1. 000000000064: 0000 0000 0000 0000 lOOe 0100 0000 0000 [.. НУЛІ ] 00000000128: 0000 0000 5745 5682 Ь65е 1000 0020 0000...WEV.A 00000000144: 0000 0100 501f 0300 8060 lfOO 0004 0000... P...v 00000000160: 0708 1000 e061 0900 d07f 2200 0004 0000 a..". 00000000176: 0108 1000 f02b 3101 0000 0000 0000 0000 +1 00000000192: 0000 0000 501f 0300 bOel 2b00 0004 0000...P _ 00000000208: 0708 1000 8056 0200 0001 2f00 0004 0000 V.../ 0000224: 0708 1000 0000 0000 0000 0000 0000 0000 00000000240: 0000 0000 3f4b ЗеОО 00f8 4000 0004 0000...?K<. 00000000256: 0708 1000 80a0 Of00 8057 3100 0004 0000 W1 00000000272: 0708 1000 4160 lfOO 3f00 0000 0000 0000...A\.? 00000000288: 0800 0000 9dae ЬЗОО 3f43 7d00 0000 0000?C} 00000000304: OaOO 0000 0000 0000 0000 0000 0000 0000 0000320: 0000 0000 0000 0000 0000 0000 0000 0000 0000336: 0000 0000 0000 0000 0000 0000 0000 0000 0000352: 0000 0000 0000 0000 0000 0000 0000 0000 0000368: 0000 0000 0000 0000 0000 0000 0000 0000 0000384: 0000 0000 0000 0000 0000 0000 0000 0000 0000400: 0000 0000 0000 0000 0000 0000 0000 0000 [..] У байтах 0-3 і 132-135 є присутніми сигнатури 0x825644557. Потім другої сигнатури байти 138-139 показують, що таблиця розділів містить 16 (0x0010) записів. Таблиця починається в наступному рядку з байта 148, продовжується шістнадцятьма 16-байтовими структурами і завершується у позиції 403. Записи 11-16 не використовуються і містять нулі. Частина сектора, що залишилася, не використовується структурою розмітки диска. У таблиці 6.4 приведені основні дані шістнадцяти записів таблиці розділв. Десяткові еквіваленти поміщені в дужки.
Таблиця 6.4 – Вміст структури розмітки диска BSD в образі диска
Перш ніж переходити до детального розгляду розділів, потрібно познайомитися із спеціальними розділами BSD. Перший розділ - кореневий - містить завантажувальний код. Другий розділ зберігає область підкачки, третій представляє увесь диск, а четвертий і всі наступні - довільні розділи BSD. Образ, використаний в нашому прикладі, відповідає цій схемі. Перший розділ починається разом з розділом DOS в секторі 2056320. в другого розділу поле типу дорівнює 1, що відповідає області підкачки. Третій розділ посчинається в секторі 0, а його розмір відповідає розміру усього диска. Розділи 4, 5, 7 і 8 відносяться до типу 4.2BSD FFS, а їх початкові сектори збільшуються аж до розділу 9. Розділ 9 починається з сектора 63, а його тип відповідає файловій системі FAT. Він представляє розділ FAT, описаний в першому запису таблиці розділів DOS, в розмітці диска BSD. Розділ 10 має невідомий тип. Він представляє розділ FreeBSD, який описаний третім записом в приведеній раніше таблиці розділів DOS. Оскільки розділу 9 відповідає буква "i", користувач може звертатися до розділу FAT через ім'я /dev/wd0i. Як говорилося раніше, OpenBSD ігнорує вміст таблиці розділів DOS після завантаження. Таблиця 6.5 показує, які розділи будуть доступні для користувача в системі OpenBSD.
Таблиця 6.5. Файлові системи, доступні в системі OpenBSD
Розділ FreeBSD не можна змонтувати, тому що для цього потрібно спочатку прочитати розмітку диска для визначення місцезнаходження файлової системи. Для перегляду тих же даних з розмітки диска можна скористатися утилітою mmls, вказавши в командному рядку тип bsd. Зміщення розділу BSD повинно задаватися з ключем -о, оскільки ми працюємо з образом диска. # # mmls - t bsd -о 20563210 bsd - disk.dd BSD Disk Label Units are in 512 - byte sectors Slot Start End Length Description 0000: 02 0000000000 0019999727 0019999728 Unused (0x00) 001: 08 0000000063 0002056319 0002056257 MSDOS (0x08) 002: 00 0002056320 0002260943 0000204624 4.2BSD (0x07) 003: 01 0002260944 0002875823 0000614880 Swap (0x01) 004: 03 0002875824 0003080447 0000204624 4.2BSD (0x07) 005: 04 0003080448 0003233663 0000153216 4.2BSD (0x07) 006: 07 0003233664 0004257791 0001024128 4.2BSD (0x07) 007: 06 0004257792 0008209214 0003951423 4.2BSD (0x07) 008: 09 0008209125 0019984859 0011776454 Unknown (OxOA) Нагадуємо, що програма mmls сортує вихідні дані по початковому сектору розділу, тому розділ FAT знаходиться на початку, хоча він і займає восьму позицію в таблиці розділів (позиція вказується в стовпці Slot). Приклад образу FreeBSD. Тепер давайте подивимося, як виглядає розділ BSD в образі з нашого прикладу. Розділ починається з сектора 8 209 215, а розмітка диска знаходиться в другому секторі: # # dd i f=bsd - di sk.dd skip=8209216 bs=512 count=l | xxd 00000000000000: 5745 5682 0500 0000 6164 3073 3300 0000 WEV ad0s3.. 0000016: 0000 0000 0000 0000 0000 0000 0000 0000 000000000032: 0000 0000 0000 0000 0002 0000 3f00 0000?.. 000000000048: 1000 0000 814d 0000 f003 0000 f02b 3101 M +1. 000000000064: 0000 0000 0000 0000 lOOe 0100 0000 0000 [.. НУЛІ ] 00000000128: 0000 0000 5745 5682 b9ab 0800 0020 0000...WEV 00000000144: 0000 0000 0000 0800 3f43 7d00 0008 0000?C} 00000000160: 0708 0880 a073 1700 3f43 8500 0000 0000 s.?C 00000000176: 0100 0000 Ые8 ЬЗОО 3f43 7d00 0000 0000?C 00000000192: 0000 0000 0000 0800 dfb6 9c00 0008 0000 00000000208: 0708 0880 0000 0800 dfb6 9c00 0008 0000 00000000224: 0708 0880 1175 8400 dfb6 a400 0008 0000 u 00000000240: 0708 886f 0000 0000 0000 0000 0000 0000..o 0000256: 0000 0000 0000 0000 0000 0000 0000 0000 00000000272: 0000 0000 ebOe 4254 5801 0180 f60f 8007 BTX 00000000288: 0020 0000 fa31 c08e dObc 0018 8ec0 8ed8...1 00000000304: 666a 0266 9dbf OOle b900 3957 f3ab 5fbe fj.f 9W._. 00000000320: e296 ac98 91e3 ldac 92ad 93ad b608 dleb 00000000336: 730b 8905 8875 0288 5505 83c0 048d 7d08 S...U.U }. [..] По вмісту байтів 138-139 видно, що на диску створено вісім розділів. Записи цих розділів знаходяться в байтах 148-275, а їх розшифровка приводиться в таблиці 6.6 (десяткові еквіваленти поміщені в дужки).
Таблиця 6.6 – Вміст структури розмітки диска BSD в образі диска FreeBSD
Ми бачимо, що початковий сектор першого розділу BSD співпадає з початковим сектором розділу DOS, в якому знаходиться розмітка диска, і цей розділ відноситься до типу 4.2BSD FFS. Другий запис визначає область підкачки, а третій відноситься тільки до секторів розділу DOS. Записи 4, 5 і 6 визначають розділи з файловою системою FFS. У таблиці 6.7 перераховані імена пристроїв і приведені дані про місцезнаходження кожного розділу, доступного для користувачів FreeBSD.
Таблиця 6.7 – Файлові системи, доступні в системі FreeBSD
Для перегляду вмісту розмітки диска можна скористатися програмою mmls з пакету The Sleuth Kit. Результат виглядає так: # # mmls - t bsd -о 82092165 bsd - disk.dd BSD Disk Label Units are in 512 - byte sectors Slot Start End Length Description 0000:--- 0000000000 0008209214 0008209215 Unallocated 001: 00 0008209215 0008733502 0000524288 4.2BSD (0x07) 002: 02 0008209215 0019999727 0011790513 Unused (0x00) 003: 01 0008733503 0010270430 0001536928 Swap (0x01) 004: 03 0010270431 0010794718 0000524288 4.2BSD (0x07) 005: 04 0010794719 0011319006 0000524288 4.2BSD (0x07) 006: 05 0011319007 0019999727 0008680721 4.2BSD (0x07) Простір, виділений під розділи FAT і OpenBSD, помічений як "нерозподілений", оскільки для нього відсутні записи в розмітці диска. Для розподілу даних по розділах потрібна таблиця розділів DOS. Фактори аналізу. Кожен розділ BSD в структурі розмітки диска містить поле типу, але в системах BSD воно грає менш важливу роль, ніж в Microsoft Windows, оскільки Windows по вмісту поля типу визначає, чи треба привласнювати розділу букву диска або ні. У системах BSD для кожного запису в розмітці диска створюється пристрій, тому розділи можуть монтуватися з будь-яким типом. Отже, необхідно переконатися в тому, що розділ не містить відомої файлової системи, навіть якщо тип ідентифікує його як старий формат UNIX, оскільки розділ може містити іншу поширену файлову систему (наприклад, FAT). Максимальний розмір розмітки диска дорівнює 404 байтам. Для розміток дисків, що містять тільки вісім записів, структура даних займає всього 276 байт. Це означає, що частина 512-байтового сектора, що залишилася, може використовуватися для зберігання прихованих даних (хоча і відносно невеликих). Якщо в результаті ушкодження таблиці розділів DOS визначити місцезнаходження розділу BSD не вдається, проведемо пошук сигнатури 0x82564557. Сигнатура повинна знаходитися в байті 0 і байті 132 структури розмітки диска. Варто пам'ятати, що в системі FreeBSD користувач дістає доступ як до разділів DOS, так і до розділів BSD. Таким чином, в ході експертизи необхідно аналізувати як розділи DOS, так і розділи BSD. Варто врахувати, що в системі може бути відсутньою підтримка NTFS, щоб користувач не міг змонтувати розділ NTFS (якщо він існує). В OpenBSD користувач має доступ тільки до розділів, перерахованих в розмітці диска. Оскільки OpenBSD ігнорує таблицю розділів DOS, може бути корисно порівняти вміст таблиці розділів DOS з розміткою диска BSD. Проаналізувати розділи BSD і DOS, виявити можливі перекриття і проміжки. На рис. 6.4 показані цікаві приклади розділів BSD. Один з розділів BSD зберігається в розділі DOS з типом NTFS. Якщо розділ NTFS містить файлову систему NTFS, така ситуація малоймовірна, і її слідує проаналізувати детальніше. На рисунку також показаний розділ BSD, створений в просторі, який не був виділений розділу DOS. З точки зору системного адміністратора так поступати не рекомендується, тому що інша програма може виділити простір під розділ DOS і знищити дані BSD, проте така можливість існує. Сегменти Sun Solaris Операційна система Solaris компанії Sun Microsystems використовується на великих серверах і на настільних системах. В ній застосовуються дві різні схеми формування розділів, вибір залежить від розміру диска і версії Solaris. У Solaris 9 з'явилася підтримка файлових систем, розмір яких перевищує 1 Тбайт, і використовуються таблиці розділів EFI з 64-розрядним полем адреси. У всіх інших версіях Solaris використовуються структури даних, які нагадують вже описану розмітку диска BSD. Більше того, головна структура даних теж називається розміткою диска, хоча і має дещо іншу будову. Втім, цьому не доводиться дивуватися, якщо врахувати, що структури відрізняються навіть на Solaris для платформ Sparc і i386. Ситуація додатково ускладнюється тим, що імена структур даних Solaris співпадають з іменами BSD, але змінюється сенс термінів. Наприклад, в Solaris сегментом (slice) називається будь-який з розділів цієї системи. Для простоти будемо використовувати в цьому розділі термін "розділ Solaris", проте слід пам'ятати, що частіше зустрічається офіційна термінологія. Почнемо із загальних характеристик архітектури Solaris, потім познайомимося із специфічними особливостями структур даних Sparc і на завершення займемося специфікою структур даних i386. Загальний огляд. При встановленні Solaris на диску створюється структура розмітки диска. Її точне місцезнаходження залежить від апаратної платформи. Максимальна кількість розділів, що описуються розміткою диска, обмежена: для систем Sparc вона 8, а для i386 - 16. Опис кожного розділу на диску складається з початкового сектора, розміру, набору прапорів і типу. Прапори вказують, чи доступний розділ тільки для читання і чи не заборонено його монтування (як для областей підкачки). В інших системах розділів поле типу використовувалося для опису типу файлової системи, але в Solaris воно зазвичай описує точку монтування розділу. Наприклад, деякі типи означають розділи home, usr або var, інші - область підкачки або нерозподілений простір. Повний список типів приведений нижче. У Solaris використовується хитромудра, але добре масштабована схема вибору імен розділів. В середовищі Solaris блокові пристрої знаходяться в каталозі /dev/dsk, а неструктуровані пристрої (raw devices) - в каталозі /dev/rdsk. У цих каталогах розділам Solaris (чи сегментам) привласнюються імена виду cWtXdYsZ в системах Sparc і cWdYsZ в системах i386. У цьому шаблоні W - номер контролера, X - ідентифікатор фізичної шини (SCSI ID), Y - номер диска на шині, a Z - номер сегменту на диску. Наприклад, якщо в системі Sparc є тільки один контролер, ідентифікатор SCSI ID диска рівний 6, то для звернення до сегменту 5 слід використовувати ім'я /dev/rdsk/c0t6d0s5. У Solaris записи розділів в таблиці розмітки диска зазвичай створюються на основі точки монтування. Це не є обов'язковою вимогою, але на дисках з операційною системою часто використовується схема, представлена в таблиці 6.8.
Таблиця 6.8 – Типова структура розмітки диска
На додаткових дисках, що включаються в систему, часто створюється всього один розділ, для якого використовується запис 5, 6 або 7. Структури даних Sparc. У системах на базі Sparc структура розмітки диска створюється в першому секторі диска (сектор 0). Сектори 1-15 містять завантажувальний код системи, а в секторах 16 і далі створюються розділи для зберігання файлових систем і областей підкачки. У Solaris використовується файлова система UFS, ця файлова система починається з сектора 16. Приклад будови диска Sparc показаний на рис. 6.5 і в таблиці 6.9.
Таблиця 6.9 – Структура даних розмітки диска Sun Sparc
У байтах 128-261 знаходиться зміст тому (VTOC). Ця структура містить загальну кількість розділів (байти 12-13), а також прапори, тип і часовий штамп для кожного розділу. Поля VTOC перераховані в таблиці 6.10.
Таблиця 6.10 – Структура даних VTOC в розмітці диска Sun Sparc
Поле типу кожного розділу VTOC вказує, для чого використовується цей розділ і де він повинен монтуватися. Проте при монтуванні файлових систем операційна система керується спеціальним конфігураційним файлом. Таким чином, навіть якщо розділ позначається типом /usr/, це ще не означає, що він буде змонтований як /usr/. На відміну від інших систем, структура розмітки диска Solaris не задає тип файлової системи для кожного розділу. Допустимі значення типів розділів перераховані в таблиці 6.11.
Таблиця 6.11 – Типи розділів Sun (для Sparc і І386)
Кожен розділ також має поле прапорів. Допустимі значення прапорів пераховані в таблиці6.12 (установка хоч би одного прапора для розділу не обов'язкова).
Таблиця 6.12 – Значення прапорів для розділів Sun (для Sparc і І386)
Вся ця інформація корисна, але в контексті обговорення самою важливою частиною розмітки диска є місцезнаходження розділів. Початкові циліндр і розмір кожного розділу зберігаються в структурах карти диска, а не в VTOC. Карта диска знаходиться у кінці структури розмітки диска, а поля її записів перераховані в таблиці 6.13.
Таблиця 6.13 – Структура даних карти диска Sun Sparc
Проте нас цікавить початковий сектор, а не циліндр, тому значення прийдеться перетворити – на щастя, це робиться нескладно. Циліндр X складається з доріжок X на кожній пластині диска. Щоб перетворити адресу циліндра на адресу сектора, слід помножити адресу циліндра на кількість секторів в доріжці і кількість головок (обидва значення знаходяться в структурі розмітки диска). Для прикладу візьмемо диск із 15 головками і 63 секторами на доріжку. Якщо адреса початкового циліндра дорівнює 1 112, обчислення дає наступний результат: 63 * 15 * 1112 - 1 050 840 Таким чином, ми повинні звернутися до сектора 1050840 і проаналізувати дані за допомогою програм з підтримкою схеми адресації LBA. Розглянемо приклад з реальними структурами в шістнадцятковому вигляді. Приведемо вміст першого сектора жорсткого диска Solaris Sparc: # dd іf=sparc - disk.dd bs=512 count=l | xxd 00000000000000: 4d61 7874 6f72 2038 3532 3530 4136 2063 Maxtor 85250A6 з 0000016: 796c 2031 3038 3534 2061 6c74 2032 2068 yl 10854 alt 2 h 000000000032: 6420 3135 2073 6563 2036 3300 0000 0000 d 15 sec 63 0000048: 0000 0000 0,000 0000 0000 0000 0000 0000 [.. НУЛІ ] 0000128: 0000 0001 0000 0000 0000 0000 0008 0002 0000144:0000 0003 0001 0005 0000 0000 0000 0000 0000160: 0000 0007 00
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-09-19; просмотров: 294; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.146.107.144 (0.016 с.) |