Файлова система FreeBSD: ієрархія та монтування. MiniHowTo: FreeBSD монтування дисків Видалення існуючої розмітки




Головна > Операційні системи > UNIX > BSD > FreeBSD

Додати жорсткий диск у FreeBSD за 5 хвилин

Часто звертаю увагу на те, що прості питання найчастіше мало висвітлені в інтернеті. Напевно, це тому, що всі гуру впевнені, що ніхто ніколи не поставить таких дурних питань, адже це знає кожен. Але моя практика показала, що саме такі дрібні прості питання найчастіші не лише у новачків, а й у серйозних адміністраторів, яким просто не доводилося мати із цим справи. Навіть серйозні адміністратори не роблять це щодня, а щоб не забути, ведуть якусь шпаргалку для себе, нікому в цьому не зізнаючись. Давайте все виправимо. Зараз Ви дізнаєтесь, як за 5 хвилин додати жорсткий диск у FreeBSD. Отже. Спочатку буде зроблено повну інструкцію для розуміння процесу, а в кінці буде короткий список дій, який міститиме лише список команд як шпаргалку.

Детальна інструкція з поясненнями

Вибір імені жорсткого диска

Для початку потрібно визначити ім'я пристрою, яке ми щойно додали. У цьому нам допоможе наступна команда:

Geom disk list

Або ось така команда:

Camcontrol devlist

У реальній системіці команди покажуть більше корисну інформацію, а саме: назви пристроїв та їх серійні номери

До встановлення нового пристрою ми знали, що наша система встановлена ​​на ada0, отже, за логікою речей, наш новий диск ada1. Це можна визначити за назвою нового пристрою, його серійному номеруабо ж обсягом.

Тепер перевіримо, чи є розмітка на нашому новому диску

Gpart show ada1

Диск не має жодної розмітки.

Видалення існуючої розмітки

Якщо диск вже використовувався і необхідно видалити з нього розмітку, просто виконайте:

Gpart destroy -F ada1

Створення розмітки GPT

Спочатку ми повинні створити розмітку диска. Вкрай рекомендую забути про MBR і перейти на нову, більш зручну та функціональну - GPT.

Створюємо розмітку GPT на диску, потім перевіряємо, що сталося:

Gpart create -s gpt /dev/ada1 gpart show ada1

Тепер диск має розмітку GPT. З висновку можна побачити, що весь диск, починаючи з LBA 34 і закінчуючи LBA 8388541 порожній. LBA 0-33 – зарезервовані системою під таблицю розділів.

Допустимо, нам необхідно створити два розділи на цьому диску:

  • swap- розділ підкачування
  • data- розділ типу ufs для зберігання будь-яких, необхідних нам, даних.

Створення розділів (слайсів)

Якщо установка виготовляється на сучасні жорсткі диски, у яких розмір сектора = 4 кб, то при створенні розділів (партій) необхідно використовувати вирівнювання. Можна вчинити двома способами:
1) якщо вказуємо параметри розділу в блоках, номер блоку вводити кратним 8, наприклад: -b 40;
2) якщо вказуємо розмір розділу в байтах, або взагалі не вказуємо початок і розмір, використовувати параметр -a 4k, який підганяє початок та кінець розділу під сектори, розміром 4 кб. Тому що ми в даному прикладіВиконуємо тестову установку на віртуальний жорсткий диск, то цього можна не робити. У будь-якому випадку перед створенням розділів потрібно точно знати розмір сектора вашого накопичувача, інакше це виллється моторошними гальмами в роботі.

Тепер створимо розділи. Для цього існує команда gpart add з різними параметрами. Перший параметр -t- Вказує на тип створюваної файлової системи. У нашому випадку буде використано два типи: freebsd-swap та freebsd-ufs. Далі йдуть два необов'язкові параметри: -b- вказує на номер LBA, з якого необхідно створити розділ. Якщо не вказати даний параметр, Розділ буде створено автоматично з першого вільного LBA. -s- Вказує на розмір розділу в LBA. Розмір одного блоку LBA = 512 байт. Бажано вказувати в кількості блоків LBA, але можна і в кіло/мега/гіга/... байтах (суфікс k/M/G). Якщо не вказати цей параметр, розділ буде створено до максимально можливого LBA в межах порожньої області. Також як параметр можна вказати мітку розділу, наприклад: -l swap1- у цьому випадку буде створена мітка /dev/gpt/swap1, за якою можна зручніше звертатися до розділу. Останнім обов'язковим параметром іде шлях до диска. У разі: /dev/ada1.

Давайте створимо два розділи, а потім побачимо, що в нас вийшло. Перший розділ створюватимемо без вказівки початкового LBA, але із зазначенням розміру 1 Гб (2097152 блоків). Другий розділ створимо без вказівки початкового LBA та без вказівки розміру – таким чином він буде створений на всьому вільному просторі.

Gpart add -t freebsd-swap -s 2097152 /dev/ada1 gpart add -t freebsd-ufs /dev/ada1 gpart show ada1

Розмір можна вказувати у байтах, а не блоках. Це значно зручніше. Єдиний мінус – система не завжди може коректно розрахувати кількість блоків. Можливі випадки, коли на диску залишиться порожні кілька блоків при вказівці розміру розділу в байтах.

Створення файлової системи (форматування)

Розділи типу swap форматувати не потрібно. А ось розділи типу ufs перед використанням мають бути відформатовані. Правильніше сказати: на них має бути створена файлова система.

Щоб створити файлову систему на другому розділі, достатньо виконати таку команду:

Newfs -U /dev/ada1p2

В даному випадку використовувався параметр -U - він говорить про те, що в цій файловій системі має використовуватися механізм Soft Updates. Цей параметр не можна використовувати, щоб не включати цей механізм.

Монтування

Наступним кроком буде встановлення розділів. Для початку, щоб не забути, додамо наші нові розділи /etc/fstab. Мій файл після редагування виглядає так:

Для того, щоб перемонтувати всі розділи згідно з файлом /etc/fstab, просто виконаємо команду:

Mount-a

Як очевидно з висновку, розділ /dev/ada1p2 змонтований. Тепер подивимося, що сталося із розділом SWAP. Виконаємо команду:

Як видно, новий розділ SWAP не змонтовано. Щоб змонтуватись SWAP, необхідно його увімкнути спеціальною командою:

Swapon /dev/ada1p1

Так само за допомогою команди swapoff потрібно відключати розділ SWAP перед тим, як зробити над ним якісь дії.

На цьому всі дії щодо додавання нового жорсткого дискау систему завершено.

Коротка інструкція

Дано: жорсткий диск /dev/ada1

Ціль: видалити існуючу розмітку, створити нову розмітку GPT, створити два розділи: підкачування та дані та підключити їх до робочої системи.

Після кожної дії виконуйте gpart show, щоб спостерігати результат. Послідовність дій:

  1. Видалити існуючу розмітку:
    gpart destroy -F ada1
  2. Створити нову розмітку:
    gpart create -s gpt /dev/ada1
  3. Створити два розділи: підкачування та дані:
    gpart add -t freebsd-swap -s 2097152 /dev/ada1 gpart add -t freebsd-ufs /dev/ada1
  4. Створити файлову систему UFSv2на другому розділі:
    newfs -U /dev/ada1p2
  5. Додати у файл /etc/fstab рядки для автомонтування під час завантаження:
    /dev/ada1p1 none swap sw 0 0 /dev/ada1p2 /mnt ufs rw 2 2
  6. Змонтувати новий розділ (команда монтує всі розділи із файлу /etc/fstab):
    mount -a
  7. Включити в роботу новий розділ swap командою:
    swapon /dev/ada1p1 Матеріал взято з сайту:

Стандарт FHS був розроблений спочатку для упорядкування структури каталогів у численних дистрибутивах Linux. І лише пізніше він був пристосований для інших Unix-подібних систем (зокрема і BSD-клану). Однак саме ієрархія каталогів FreeBSD може стати прикладом для зразкового дотримання духу FHS. А буквально штучні відступи у ній від його літери завжди функціонально обумовлені.

Стандарт FHS спочиває на двох основоположних принципах - чіткому відділенні у файловій ієрархії каталогів, що розділяються і нерозділяються, з одного боку, і незмінних і змінюваних - з іншого.

Протиставлення каталогів, що розділяються і нерозділяються, обумовлено спочатку мережевою природою Unix взагалі і FreeBSD зокрема. Тобто дані, що відносяться до локальної машини (наприклад, файли конфігурування її пристроїв) повинні лежати в каталогах, окремих від тих, дані яких доступні з інших машин у мережі, локальної або глобальної (прикладом чого є не тільки дані користувача, а й програми) .

Суть протиставлення незмінних та змінних каталогів легко пояснити на прикладі. Так, ті ж користувальницькі програмиза своєю природою повинні бути незмінними (вірніше, доступними для модифікації тільки адміністратору системи, але не самому користувачу, що застосовує їх у своїй роботі). У той же час ці програми при своїй роботі генерують не тільки файли даних, скажімо, тексти або зображення (змінна їх природа ясна без коментарів), але всякого роду службову інформацію, типу log-файлів, тимчасових файлів тощо). Яка і повинна групуватися в каталогах, відокремлених від файлів програм, необхідних для їх запуску бібліотек, конфігураційних файлів і т.д.

Чітке дотримання концепції відчленування поділяються і нерозділяються, незмінних і незмінних каталогів один від одного дозволяє, в рамках єдиної деревоподібної файлової ієрархії, відокремити окремі її гілки фізично - тобто у вигляді самостійних файлових систем, розміщених на ізольованих пристроях (дисках, дискових слайс); у загальному випадку - і на віддалених, пов'язаних по мережі, носіях, але про це зараз не буде розмови). Резонів до того багато — і підвищення швидкодії, і збільшення надійності, і просто міркування зручності, але про них зараз не йтиметься. Тому що зараз для нас важливим є лише те, що ці гілки файлового древа повинні бути інкорпоровані в загальну файлову систему.

У попередній замітці говорилося, що будь-який файл (у тому числі і каталог) упізнається системою не за її ім'ям, а за унікальним ідентифікатором його запису в таблиці inodes. Існують засоби для того, щоб переглянути ці файлові ідентифікатори. Одне — команда ls з опцією i, яка виведе ідентифікатори кожного іменованого файла. Дана для кореневого каталогу - $ls -i

вона покаже нам дещо несподівану картину (для спрощення з висновку виключено відомості про звичайних файлахі символічних посиланнях в корені, а каталоги, що залишилися, відсортовані за їх ідентифікаторами) 2 ../ 2 ./ 2 dev/ 2 home/ 2 tmp/ 2 usr/ 2 var/ 3 cdrom/ 4 mnt/ 5 root/ 8257 dist/ 82 / 8294 proc/ 8295 sbin/ 16512 stand/ 24768 etc/ 24776 boot/

З цього прикладу (що стосується файлової системи машини, на якій ці рядки пишуться) видно, що аж 7 каталогів мають однакові цифрові ідентифікатори, рівні 2. Постає питання, яка тут унікальність?

З першими двома елементами списку розібратися легко: ./ є позначення поточного каталогу (у разі кореневого), а../ — каталогу, батьківського стосовно поточного; а оскільки вище кореня у файловій ієрархії за визначенням нічого немає, він позначає самого себе. Так що не дивно, що./ і../ мають один і той же ідентифікатор — це різні позначення (жорсткі посилання, або, інакше, імена, що дублюють) для одного і того ж, кореневого, каталогу.

А ось те, як здається на перший погляд, значення ідентифікатора для каталогів /dev, /home, /tmp, /usr, /var вимагає пояснення. Однак воно просте: все це каталоги, в які змонтовані самостійні файлові системи, або розташовані на окремих пристроях - дискових партіях, як каталоги /home, /usr, /var, або віртуальні файлові системи, що не надбудовують будь-яке реальне дисковий пристрій(каталог /dev з файловою системою пристроїв і, в даному випадку, каталог /tmp, в який змонтована файлова система оперативної пам'яті, розмова про яку ще належить). Оскільки таблиця inodes — своя кожної файлової системи, немає нічого дивного у цьому, що корінь кожної їх ідентифікується числом 2 — нумерація inodes у яких йде у власній системі відліку.

Так ось, монтування - це і є включення файлової системи в якій-небудь з існуючих в кореневій системі каталог (не обов'язково безпосередньо в корені, він може бути будь-якої вкладеності, що проілюструється трохи нижче). Без цього каталоги та файли такої системи, що вмонтовується, просто недоступні. Це важливо розуміти, коли стикаєшся на вирази на кшталт «створити файлову систему /usr». Зі сказаного вище очевидно, що створюється (командою newfs) просто абстрактна файлова система, а своє «ім'я» вона знаходить тільки в момент монтування в зазначений каталог.

Цікаво, що і ідентифікатор каталогу для монтування (він ще називається точкою монтування, mount point) знаходиться тільки в момент монтування. Щоб переконатись у цьому, проведемо простий експеримент. У каталозі /mnt, призначеному спеціально для монтування файлових систем, що тимчасово підключаються) можна побачити три підкаталоги - /mnt/disk, mnt/iso, /mnt/usb (це в моїй системі, я їх створив для власної зручності; спочатку каталог /mnt в FreeBSD порожній). При старті системи в них нічого не монтується, і звичайний їхній стан бути порожніми. Якщо переглянути їх ідентифікатори, то можна бачити щось на зразок такого: $ ls -i1 /mnt 16:46 ttyp0 18 disk/ 24 iso/ 19 usb/

Тепер візьмемо та змонтуємо в /mnt/usb флеш-накопичувач з USB-інтерфейсом (саме для цього я його і призначав) та повторимо перегляд. І бачимо: 18 disk/ 24 iso/ 2 usb/

Тобто ідентифікатори каталогів, що залишилися порожніми (/mnt/disk та /mnt/iso) не змінилися, а ідентифікатор каталогу /mnt/usb чарівним чином змінився на 2. Бо в момент монтування він став кореневим для своєї власної файлової системи та точкою відліку для обчислення inodes всіх записаних на ній файлів.

Трохи відвернемося і згадаємо про жорсткі посилання, за допомогою яких одному і тому ж inode і блокам даних, що відносяться до нього, можуть бути присвоєні різні імена. Тепер зрозуміло, чому всі такі файли-дублери повинні лежати в одній файловій системі: адже в різних файлових системах — своя нумерація inodes, що не збігається, і ідентифікувати їх за номерами неможливо (інакше як система відрізнила каталоги /usr і /var з нашого прикладу - адже імена файлів їй глибоко до лампочки). Для символічних посилань, що мають власні inode (власне, і нічого, крім них) зі своїми ідентифікаторами, що нумеруються в системі відліку файлової системи, в якій вони знаходяться, такого обмеження немає. І можуть символічні посилання лежати будь-де (у тому числі і на віддаленій машині — не тільки на іншій партиції).

Повернемося, проте, наприклад нашого кореневого каталогу. З усього розглянутого видно, що ціла низка його гілок лежить на окремих партицях і утворює власні файлові системи (власне, саме для цього ми створювали і ті, й інші). І, отже, всі вони потребують монтування.9. Практика монтування

Цілям монтування служить команда mount, що виконується або в ході завантаження системи автоматично, або — вручну, командного рядка. Власне, в повному розумінні автоматично у будь-якому випадку монтується лише коренева файлова система. Не обов'язково лежить на диску - при старті з rescue CD або іншого страхового носія вона може розташовуватися на віртуальному диску в оперативній пам'яті. Однак процес монтування кореневої файлової системи настільки ж неминучий, як перемога соціалізму у світовому масштабі: також, як соціалізм, не перемігши у світовому масштабі, просто втрачає здатність до існування (що ми нещодавно і спостерігали), так і ОС без кореневої системи існувати не може. У Linux це викликає kernel panic mode — приблизно той стан, який впали наші вожді років 20 тому. Правда, вони виявилися міцнішими за Linux"а і оклималися досить швидко - так що досі нас reboot"ят (або reboot? - а ми міцнішаємо:)). Втім, до справи монтування, яку я спробую вам зараз уявити, це не стосується.

Так ось, для монтування всіх файлових систем, крім кореневої, необхідно вжити деяких дій. Спочатку ми розглянемо, як виконати їх руками, а потім як увічнити у відповідних конфігураційних файлах.

Отже, команда mount. Власне, це — ціла родина програм, кожна з якої покликана монтувати файлові системи певних типів — не тільки UFS, але й будь-який з FreeBSD, що підтримуються. Список таких дуже широкий - отримати про нього уявлення можна, переглянувши на цей предмет каталог / sbin: $ ls / sbin / mount *

що дасть нам відповідь /sbin/mount /sbin/mount_msdosfs /sbin/mount_smbfs /sbin/mount_cd9660 /sbin/mount_nfs /sbin/mount_std /sbin/mount_devfs /sbin/mount_ntfs /sbin/mount_udf / sbin/mount_umapfs /sbin/mount_fdescfs /sbin/mount_nwfs /sbin/mount_unionfs /sbin/mount_linprocfs /sbin/mount_portalfs /sbin/mount_mfs /sbin/mount_procfs

Кожна команда з цього списку відповідає за окремий тип файлової системи, до яких ми повернемося надалі. А поки що помітимо тільки власне /sbin/mount, призначену для роботи з UFS та UFS2.

Викликана з командного рядка, вона вимагає двох аргументів - імені пристрою, що монтується, і точки монтування (тобто каталогу, в який повинна монтуватися файлова система, що лежить на ньому). Ім'я пристрою має позначати вже розмічену на існуючому BSD-слайсі патрицію із створеною на ній файловою системою UFS2 (UFS), наприклад $mount /dev/ads0d /usr

змонтує файлову систему на вказаному розділі каталог /usr кореня файлового древа. Якщо файлова система на пристрої не створена або має тип, відмінний від 4.2BSD, буде повідомлення про помилку - вказівка ​​на incorrect super block: на відміну від однойменної утиліти Linux, сама по собі команда mount у FreeBSD розпізнавати тип файлової системи не вміє.

До точки монтування пред'являються такі вимоги: а) каталог з таким ім'ям повинен існувати до моменту монтування; б) бути по можливості порожнім. Перше обов'язково, друге ж не зовсім. Монтування в каталог з будь-якими файлами пройде безперешкодно (пам'ятається, в Linux недавно це викликало крах системи), але весь його вміст стане недоступним аж до розмонтування. І якщо файли, що містяться в ньому, відіграють істотну роль для будь-якої підсистеми, це може викликати будь-які погані наслідки. Наприклад, якщо вміст каталогу /tmp буде блокований монтуванням туди будь-якої файлової системи під час роботи віконної системи X, результатом буде швидше крах X-сервера. Добре, що при необхідності можна здійснити об'єднане монтування (див. нижче).

У зазначеній формі монтування виконається з деякими умовчальними характеристиками: файлова система буде доступна для читання/запису як т.зв. noasync (тому, у якому операції з метаданими здійснюються синхронно, а операції з даними — асинхронно). Змінити це положення можна за допомогою значень опції -o. Їх досить багато, проте практично головними на цьому етапі для нас будуть:

  • async - забезпечить повністю асинхронний режим (не дивлячись на грізні попередження в попередніх нотатках, я потім розповім про ситуацію, коли це може бути виправдано);
  • sync - навпаки, включення повністю синхронного режиму (щоправда, не дуже уявляю, навіщо це практично потрібно);
  • noatime — дуже корисна опція, яка запобігає оновленню атрибуту часу останнього доступу до файлів, чим чимало сприяє продуктивності;
  • rdonly - монтує файлову систему в режимі тільки для читання (іноді це необхідно);
  • union - та сама опція, яка дозволяє виконати об'єднане монтування, при якому колишній вміст каталогу mount point залишається видимим; правда – з деякими обмеженнями – див. man (8) mount.

Є ще кілька значень опції -o, що забороняють розміщення на змонтованій файловій системі файлів певних різновидів, наприклад, здійсненних (-o noexec), файлів пристроїв (-o nodev) або файлів з т.зв. бітом суїдності (-o nosuid), проте вони мають практичне значення в основному для адміністраторів серверів і служать цілям безпеки. На настільній машині звичайною формою монтування буде щось на зразок цієї: $ mount -o noatime /dev/ads0d /usr; $ mount -o noatime /dev/ads0e /var; $ mount -o noatime /dev/ads0f /home

Все сказане стосувалося лише монтування файлових систем FreeBSD. Однак на практиці часто виникає необхідність інкорпорації у її дерево каталогів файлових систем інших типів. Особливо часто це потрібно для ISO9660 (звичайна файлова система для всіх компакт-дисків, крім Mac"івських) та FAT"ів різного роду. У цьому випадку відповідна нагода команда монтування повинна бути викликана явно, наприклад, $mount_cd9660 /dev/acd0 /cdrom

для монтування компакт-диску, або $ mount_msdosfs /dev/ad## /mnt

для FAT"а будь-якого роду (включаючи FAT32). Втім, зробити це можна і побічно, вказівкою команді mount опції -t тип_файлової_системи. Так, команда $ mount -t ext2fs /dev/ad## /mnt/linux

змонтує файлову систему Linux (якщо відповідна можливість включена до ядра). При цьому стандартний mount для BSD-розділів просто підмінюється командою /mount_ext2fs, покликаною монтувати розділи ext2fs (і ext3fs теж - але, звичайно, без будь-яких функцій журналування). Тобто форма $mount-t fstype...

буде повним еквівалентом команди $mount_fstype...

Усі операції з монтування файлових систем (у тому числі і на змінних носіях) у FreeBSD вимагають прав суперкористувача. У числі значень опції -o тут, на відміну від Linux-варіанту команди mount, немає параметра user, що дозволяє монтування звичайним користувачам. Щоправда, є кілька способів обійти це, але зараз говорити про них недоречно. Налаштування автоматичного монтування

Однак на практиці до ручного монтування вдаються тільки для файлових систем, що рідко використовуються. Всі принципово важливі для функціонування FreeBSD файлові системи монтуються автоматично при старті системи, а часто використовуються - в напівавтоматичному режимі.

Для автоматичного монтування програма mount запускається під час початкового завантаження з ініціалізаційних сценаріїв. Вона шукає свій конфігураційний файл- /etc/fstab і монтує все, що в ньому виявить, за деякими (обумовленими нижче винятками).

Сам собою файл /etc/fstab генерується автоматично при установці FreeBSD, включаючи всі необхідні для забезпечення життєдіяльності файлові системи. Однак надалі він може керуватися вручну з метою внесення нових пристроїв для монтування або додаткових опцій для вже включених пристроїв.

Файл /etc/fstab - це простенька база даних текстовому форматі(поділ полів - пробілами або табуляцією), що включає такі поля:

  • Device — ім'я файлу пристрою, на якому розташована файлова система, аналогічно до першого аргументу команди mount при ручному її використанні;
  • Mountpoint - точка монтування (відповідає другому аргументу команди mount);
  • FStype - тип файлової системи, що вказується також, як значення опції -t;
  • Options - додаткові опції монтування, аналогічно значенням опції -o;
  • Dump - умови виконання резервного копіюванняфайлової системи утилітою утилітою dump;
  • Pass# - умови перевірки файлової системи утилітою fsck.

У свіжовстановленій FreeBSD /etc/fstab обов'язково включатиме наступні записи (приклад для 1-го слайсу Master-диска на 1-му IDE-каналі): # Device Mountpoint FStype Options Dump Pass# /dev/ad0s1a / ufs rw 1 1 /dev/ad0s1b none swap sw 0 0

Якщо наслідувати поради резонних людей (і замовчуванням sysinstall) і виділити зі складу кореня деякі гілки файлової системи, до перерахованих додадуться (при автоматичної розміткислайсу через sysinstall) ще й записи на кшталт /dev/ad0s1d /var ufs rw 0 0 /dev/ad0s1e /usr ufs rw 0 0 /dev/ad0s1f /tmp ufs rw 0 0

відповідальна за файлову систему із домашніми каталогами користувачів.

Очевидно, що в поле Options можна додати будь-які доступні (і розумні) значення опції -o (через кому, без пробілів), наприклад, noatime для всіх файлових систем, а для /tmp - ще й async, адже вміст цього каталогу не передбачається збереження після перезавантаження.

Сказане вище стосувалося файлових систем, монтованих при старті автоматично. Однак ніхто не заважає зробити в / etcfstab записи для систем, що підключаються час від часу - в цьому випадку їх можна буде монтувати за спрощеною схемою (саме це я і мав на увазі вище під напівавтоматичним режимом). Так, для CD-накопичувача можна додати рядок (насправді він автоматично з'являється при генерації файлу /etc/fstab) /dev/acd0 /cdrom cd9660 ro,noauto 0 0

в якій опції, як неважко здогадатися, наказують відмову від монтування при старті (noauto) і режим «тільки для читання» (ro). Після чого для монтування CD достатньо буде вказати тільки mount point – $ mount /cdrom

Аналогічні записи можна зробити для всіх змінних накопичувачів (Zip, USB-драйвів, навіть флоппі-дисків) та для не-BSD розділів (FAT або Ext2fs). До речі, монтувати файлові системи за прощеною схемою можна відразу після внесення змін до /etc/fstab, не чекаючи перезавантаження машини.

Усі файлові системи, що задіяні, перед вимиканням живлення або перезавантаженням машини в обов'язковому порядку повинні бути розмонтовані. При коректному завершенні роботи це здійснюється автоматично, у результаті кожна з доступних для запису файлових систем (вірніше, партиція, що її несе) отримує біт чистого розмонтування у своєму суперблоці.

Однак у ряді випадків (наприклад, при підключенні чи відключенні механізму Soft Updates або для перевірки на цілісність) виникає необхідність ручного розмонтування (і повторного монтування) файлових систем, для чого служить команда umount. Вона вимагає єдиного аргументу - вказівки точки монтування файлової системи, що «вилучається» з дерева каталогів, наприклад: $ umount /tmp

Одним рядком можна розмонтувати кілька файлових систем: $umount/usr/var/home

А можна - всі змонтовані файлові системи або всі файлові системи, перелічені у файлі /etc/fstab (крім кореневої), для чого будуть потрібні опції $ umount -A

або $ umount -a

відповідно. Є можливість розмонтування файлових систем певних типів шляхом вказівки значень опції -t. Так, команда $umount-t ufs

розмонтує тільки BSD-розділи, не торкнувшись CD і решти, що задіяно в системі.

Файлові системи в момент розмонтування не повинні використовуватися, тобто не повинно бути звернень до файлів, що на них знаходяться. Так, знаходження в якомусь каталозі файлової системи - достатня підстава для відмови в її розмонтуванні (з видачею повідомлення типу device busy), чому жодна з перерахованих вище команд і не зможе розмонтувати кореневу файлову систему. А ось зчитування файлу даних якоюсь програмою - не привід для відмови розмонтувати систему, що несе цей файл (адже при цьому в загальному випадку спілкування між файлом у пам'яті і файлом на диску відбувається тільки в момент запису змін.

Втім, можна розмонтувати і файлову систему, що використовується — для цього команду umount потрібно дати з опцією -f. Щоправда, це може призвести до помилок, тому без гострої необхідності краще до неї не вдаватися. І на кореневу файлову систему опція примусового розмонтування впливу не зробить. Масове монтування

Для продовження роботи після виконання низькорівневих операцій із файловими системами їх потрібно змонтувати назад. Це можна зробити не лише без перезавантаження, але й без нудного індивідуального монтування. Досить вдатися до опції -a: $ mount -a

за допомогою якої будуть змонтовані всі файлові системи, для яких є записи /etc/fstab. При цьому буде зроблено спробу змонтувати і ті з них, які позначені прапором noauto. Для цього можна додатково визначити тип файлової системи. Тобто команда $mount-a-t ufs

змонтує тільки BSD-розділи, не роблячи замах на CD або флеш-накопичувачі. А можна, навпаки, виключити з процесу глобального монтування якісь із перелічених у /etc/fstab файлових систем, наприклад, непотрібні в Наразі FAT"и: $ mount -a -t nomsdosfs Преамбула замість ув'язнення

До речі, команда mount без опцій і аргументів (а в такій формі, на відміну від усіх розглянутих вище випадків, її може дати і звичайний користувач) виведе список змонтованих в даний момент файлових систем із зазначенням точки монтування, умов його та режиму роботи. Наприклад, для машини, на якій пишуться ці рядки, висновок її виглядатиме так: /dev/ad0s1a on / (ufs, local, noatime, soft-updates) devfs on /dev (devfs, local) /dev/ccd0e on /var (ufs, local, noatime, soft-updates) /dev/ccd1e on /usr (ufs, local, noatime, soft-updates) /dev/ccd2e on /home (ufs, local, noatime, soft-updates) /dev/ md0 on /tmp (ufs, local, noatime, async)

Перший рядок виводу показує, що партиція /dev/ad0s1a змонтована у нас у кореневому каталозі, несе на собі файлову систему UFS (конкретно в даному випадку — UFS2, але у виведенні команди mount вони не відрізняються) із задіяним механізмом Soft Updates, є локальною ( тобто розташована на диску цієї машини - мережні диски також монтуються командою mount) і не піддається оновленню атрибута atime.

А ось далі йдуть рядки для пристроїв та файлових систем, про які не було мови у попередніх оповіданнях. Більше того, якщо ми подивимося на відповідний конфігурації готівки файл /etc/fstab: $ more /etc/fstab /dev/ad0s1b none swap sw 0 0 /dev/ar0s1b none swap sw 0 0 /dev/ad0s1a / ufs rw, 1 /dev/ccd0e /var ufs rw,noatime 2 2 /dev/ccd1e /usr ufs rw,noatime 2 2 /dev/ccd2e /home ufs rw,noatime 2 2 /dev/acd0 /cdrom cd9660 ro,noauto 0 dev/da0s1 /mnt/usb ext2fs rw,noauto,noatime 0 0 /dev/md0 /tmp mfs rw,noatime,async,-s32m 2 0

то побачимо, що одним із рядків виводу (devfs on /dev (devfs, local) взагалі немає відповідності серед його записів. Що це за пристрої та файлові системи?

Щодо пристроїв типу /dev/ccd0? скажу поки що, що це програмні RAID-масиви (докладніше про них буде говорити пізніше). А ось devfs і mfs — віртуальні файлові системи, про які безпосередньо в наступній замітці.

Відкриваю цикл міні-мануалів "для тих, хто не вміє користуватися пошуком і ставить дурні питання". Сьогоднішня тема - монтування та відключення дисків у FreeBSD.

Отже, ми хочемо отримати доступ до даних на додатковому жорсткому диску або флешці. Для цього ми повинні його підключити (примонтувати) в порожню директорію, після чого ми отримаємо доступ до даних цього диска в створеній нами/папці, що є раніше. (ВАЖЛИВО: не монтуйте диск у вже зайняті директорії, Ви отримаєте вміст свого диска, наприклад замість вмісту папки для файлів з конфігураціями, про наслідки подумайте самі;))

По-перше, створюємо порожню папку. Уявимо, що користувач shitus хоче підключити диск в нову директорію названу pron. Для цього він створює нову папкувсередині його домашньої директорії (напевно, це найбезпечніше місце).

Mkdir /home/shitus/pron Наступним кроком буде підключення жорсткого диска до точки монтування (ми щойно створили папку). Усі пристрої у Вашій системі ви можете знайти у папці /dev/. У моєму випадку я хочу підключити мій пристрій /dev/da2 до папки /home/shitus/pron

Mount /dev/da2 /home/shitus/pron Тепер ви можете переглядати вміст Вашого диска у зазначеній директорії.

Як підключити інші, відмінні від BSD, файлові системи

У моєму випадку ми маємо USB-накопичувач з файловою системою Fat32. Таким чином при монтуванні на BSD повинні чітко вказати тип файлової системи, що використовується.

Mount -t msdosfs /dev/da2s1 /home/shitus/pron/

За іншими файловими системами Ви можете звернутися до документації FreeBSD, посилання не даватиму, бо гугл наше все.

Як вимкнути/розмонтувати файлову систему

Допустимо ви хочете відключити/видалити підключене файловий пристрій. Для цього може бути безліч причин, в основному це робиться у випадку, якщо Ви хочете стерти диск або перепідключити його до іншої точки монтування. Команда дуже проста -

Umount /home/shitus/pron/

Переконайтеся, що ви не знаходитесь всередині цієї папки під час виконання цієї команди, інакше результат буде нульовим.

Якщо Ви хочете монтувати диск при старті системи, то маєте його прописати у файл /etc/fstab за образом та подобою там уже прописаних. Докладніше про це Ви також зможете ознайомитися в документації, ну або я колись всоте про це напишу.

NTFS - "рідна" файлова система Windows. Тому просто так підключити флешки, диски чи інші невідомі нам знімні носіїне вийде (справді вийде, але будуть проблеми). Тому викочуємо наш вичерпний мануал із цього приводу.


  1. Як завжди все починається з . Ставимо драйвер для NTFS: #cd /usr/ports/sysutils/fusefs-ntfs #make install clean
  2. Починаючи з FreeBSD 10, Fuse – це частина ядра. Робимо так, щоб він завантажувався з системними модулями#nano /boot/loader.conf fuse_load="YES"

    Це спрацює після перезавантаження. У поточному сеансі підвантажимо цей модуль вручну

    #kldload fuse

    Перевірити завантажений модуль чи ні можна командою

    #kldstat

    Якщо у списку буде присутній fuse.ko, значить усе добре.

    #kldstat Id Refs Address Size Name 1 3 0xffffffff80200000 1fa7c38 kernel 2 1 0xffffffff821a9000 1a7c8 fuse.ko

  3. Далі ми повинні визначитися, як бачить система флешку чи зовнішній жорсткий диск: #dmesg | grep da

    Висновок буде приблизно таким:

    Da0 at umass-sim0 bus 0 scbus1 target 0 lun 0 da0: s/n 00H79BHRYGX22JBN описаний (da0:umass-sim0:0:0:0): Periph destroyed da0 на umass-sim0 bus 0 scbus1 target 0 lun 0 da0: Removable Direct Access SPC-4 SCSI device da0: Serial Number 00H79BHRYGX22JBN da0: 40.000MB/s transfers da0: 14870MB (30453760 512 byte sectors) da0: quirks=0x12 da1 at umass-sim1 bus 1 scbus2 target 0 lun 0 da1: s/n 8968888304C9BB52 розбитий (da1:umass-sim1:1:0:0): Periph destroyed da1 на umass-sim1 bus 1 scbus2 target 0 lun 0 da1: Removable Direct Access SCSI-2 device da1: Serial Number 8968888306C9BB52 da1: 40.000MB/s transfers da1: 1999MB (4093952 512 byte sectors) da1: quirks=0x2

    Бачимо, що у системі у нас дві флешки з ідентифікаторами da0і da1. У нашому прикладі ми будемо використовувати лише флешку da0.

  4. Монтуємо її наступною командою: ntfs-3g /dev/da0 /mnt

    /dev/da0це наша флешка, ми це з'ясували в пункті 3.
    /mnt- Це точка монтування. Вона може бути будь-якою.

    Якщо виникла помилка, монтуємо розділ флешки. Після введення

    NTFS-3G /DEV/DA0

    тиснемо TAB і бачимо розділи флешки

    Da0 da0s1

    І монтуємо цей розділ

    NTFs-3g /dev/da0s1 /mnt

  5. Переходимо в каталог, куди ми примонтували флешку і бачимо там її вміст: #cd /mnt #ll 13 drwxrwxrwx 1 root wheel 0 4 лист. 17:23 System Volume Information/ -rwxrwxrwx 1 root wheel 9 4 лист. 18:05 xxx.xxx* -rwxrwxrwx 1 root wheel 22 4 лист. 18:04 Архів ZIP- WinRAR.zip* -rwxrwxrwx 1 root wheel 9904 4 лист. 18:04 Аркуш Microsoft Office Excel.xlsx*

    Тепер на флешку можна записувати файли та читати їх з неї.

  6. Для того щоб відмонтувати флешку, спочатку залишимо каталог, куди вона примонтована. Наприклад, #cd/

    А після цього скористаємося командою

    #umount /mnt

    Зверніть увагу, що як аргумент зазначена не флешка, а її точка монтування!
    ВАЖЛИВО: Не висмикуйте флешку відразу після введення команди! Її можна буде витягувати лише за кілька секунд, коли в терміналі знову з'явиться запрошення на введення!

Змінювати права доступу та власника файлів і каталогів у , можна за допомогою команд chmodі chown. Маску для встановлення прав на створювані файли, можна змінити глобально, /etc/profileдля Linux та в /etc/login.confдля FreeBSD. Зазвичай маска за замовчуванням 022 . Значення umaskвіднімається з 777 , таким чином права доступу матимуть значення 755 . exec - дозволено виконання read - право на читання write - право на запис SUID bit - атрибут файлу, разом з атрибутом виконуваного файлу, дозволяє файлу, що запускається виконуватися з ефективним UID власника файлу, а не того, хто запускає файл 1 --x execute # Права 764 = exec/read/write | read/write | read 2 -w- write # Для: |-- Owner --| |- Group-| |Oth| 4 r-- read ugo=a u=user, g=group, o=others, a=everyone# chmod MODE [, MODE] FILE # MODEмає форму: *([-+=]()) # chmod 640 /var/log/maillog # Встановити права доступу рівними -rw-r----- # chmod u = rw, g = r, o = /var/log/maillog # Як і вище # chmod -R o-r /home/* # Рекурсивно змінити права, заборонити читання для Інші # chmod u+s /path/to/prog # Встановити SUIDбіт на виконуваний файл(тут обережніше, ви повинні розуміти, що ви робите)# find / -perm -u + s -print # Знайти всі програми з встановленим SUIDбітом# chown user:group /path/to/file # Встановити користувача та групу як володіють файлом# chgrp group /path/to/file # Змінити групу, що володіє файлом# chmod 640 `find./-type f-print` # Змінити права доступу на 640 для всіх файлів# chmod 751 `find./-type d -print` # Змінити права доступу на 751 для всіх директорій

Інформація про диски

# diskinfo -v /dev/ad2 # Подивитися інформацію про диск ( sector/size) FreeBSD# hdparm -I /dev/sda # Інформація про IDE/ATAдиск (Linux)# fdisk /dev/ad2 # Показати змінити розділи диска# smartctl -a /dev/ad2 # Показати SMARTінформацію диска

Завантаження

FreeBSD

Щоб завантажити старе ядро, в аварійній ситуації, наприклад після невдалого складання та встановлення нового, зупиніть завантаження, натиснувши 6 під час зворотного відліку, щоб потрапити в запрошення командного рядка. # unload # load kernel.old # boot

Точки монтування, використання дисків

# Mount | column -t # Показати змонтовані файлові системи# df # Показати кількість вільного місця та змонтовані пристрої# cat /proc/partitions # Показати всі зареєстровані розділи (Linux)

Інформація про директорії

# du -sh * # Розміри директорій у вигляді списку# du -csh # Сумарний обсяг поточної директорії# du-ks* | sort -n -r # Список директорій, відсортований за обсягом у кілобайтах# ls -lSr # Список директорій, зворотне сортування

Хто які файли відкрив

Іноді необхідно з'ясувати, який файл заблокував розділ, через що команда umountвидає відповідну помилку. # umount /home/ umount: unmount of /home # Розмонтувати розділ неможливо, поки /homeзаблоковано failed: Device busy

FreeBSD та більшість Unix подібних систем

# fstat -f /home # для точки монтування# fstat -p PID # для програми з PID# fstat -u user # для імені користувачаЗнайти відкритий файлдля Xorg: #ps ax | grep Xorg | awk "(print $1)" 1252 # fstat -p 1252 USER CMD PID FD MOUNT INUM MODE SZ | x--x 1679848 r root Xorg 1252 0 /var 212042 -rw-r--r-- 56987 w Знайти файл з inum 212042 у директорії /varможна так: # find -x /var -inum 212042 /var/log/Xorg.0.log

Linux

Знайти відкритий файл у директорії за допомогою fuserабо lsof: # fuser -m /home # Список процесів мають доступ до /home # lsof /home MANUAL PID USER FD TYPE DEVICE SIZE NODE NAME tcsh 29029 eedcoba cwd DIR 0,18 12288 1048587 /home/eedcoba (guam:/home) lsof 29140 eedcoba c8 /home) Знайти по PIDпрограми: ps ax | grep Xorg | awk "(print $1)" 3324 # lsof -p 3324 COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME Xorg 3324 root 0w REG 8,6 56296 12492 /var/log/Xorg.0.log На ім'я файлу: # lsof /log/Xorg.0.log Команда PID USER FD TYPE DEVICE SIZE NODE NAME Xorg 3324 root 0w REG 8,6 56296 12492 /var/log/Xorg.0.log

Монтування/перемонтування файлових систем

Наприклад cdrom, прописаний у /etc/fstab: # mount /cdrom Або можна знайти пристрій у /devабо у висновку dmesg

FreeBSD

# mount -v -t cd9660 /dev/cd0c /mnt # Монтування диска Cdrom(Спосіб перший)# mount_cd9660 /dev/wcd0c /cdrom # Монтування диска Cdrom(Спосіб другий)# mount -v -t msdos /dev/fd0c /mnt # Дискет Запис в /etc/fstab: # Device Mountpoint FStype Options Dump Pass# /dev/acd0 /cdrom cd9660 ro,noauto 0 0 Дозволити користувачам встановлення дисків: # sysctl vfs.usermount=1 # Або впишіть рядок "vfs.usermount=1" в /etc/sysctl.conf

Linux

# mount -t auto /dev/cdrom /mnt/cdrom # Типова команда монтування диска cdrom # mount /dev/hdc -t iso9660 -r /cdrom # Монтування диска IDE # mount /dev/scd0 -t iso9660 -r /cdrom # Монтування диска SCSI cdrom# mount /dev/sdc0 -t ntfs-3g /windows # Монтування диска SCSI Запис у /etc/fstab: /dev/cdrom /media/cdrom subfs noauto,fs=cdfss,ro,procuid,nosuid,nodev,exec 0 0

Монтування FreeBSD розділу з Linux

Подивіться номер розділу fdisk, зазвичай це коренний розділ, але може бути і на іншому BSDслайсі. Якщо на розділі FreeBSD багато слайсів, їх не видно через fdisk, але їх можна знайти в dev/sda*або /dev/hda*. # fdisk /dev/sda # Знайти FreeBSD розділ/dev/sda3 * 5357 7905 20474842+ a5 FreeBSD # mount -t ufs -o ufstype=ufs2,ro /dev/sda3 /mnt /dev/sda10 = /tmp; /dev/sda11 /usr # Інший слайс

Перемонтування

Перемонтувати пристрій без попереднього розмонтування, наприклад, fsck# mount -o remount,ro / # Linux # mount -o ro / # FreeBSD Копіювати потік даних з CDROM"а у файл ISO образу. # dd if=/dev/cd0c of=file.iso

Створення swap розділу на льоту

Припустимо вам потрібно збільшити swap розділ, скажімо до 2 гігабайт, /swap2gb(для Linux) # dd if=/dev/zero of=/swap2gb bs=1024k count=2000 # mkswap /swap2gb # Створити swap # swapon /swap2gb # Увімкнути swap, тепер його можна використовувати# swapoff /swap2gb # Вимкнути swap # rm /swap2gb

Монтування SMB розділу

CIFS- Common Internet File System SMB- server message blockПрипустимо вам потрібно отримати доступ до розшарованого SMBрозділу myshareна сервері smbserver, адреса набирається на Windows машинібуде \\smbserver\myshare\. Монтувати будемо на /mnt/smbshare. Не забувайте, для cifsпотрібна IP-адреса або доменне ім'я.

Linux

# smbclient -U user -I 192.168.16.229 -L //smbshare/ # List the shares # mount -t smbfs -o username=winuser //smbserver/myshare /mnt/smbshare # mount -t cifs -o username=winuser, password=winpwd //192.168.16.229/myshare /mnt/share Крім того пакет mount.cifsдозволяє зберігати привілеї у файлі, наприклад /home/user/.smb: username=winuser password=winpwd І тепер монтуємо: # mount -t cifs -o credentials=/home/user/.smb //192.168.16.229/myshare /mnt/smbshare

FreeBSD

Використовуйте ключ -I, щоб задати IP адресу (або DNS); smbserver, це ім'я Windows. # smbutil view -I 192.168.16.229 // [email protected] # Список розшарованих ресурсів# mount_smbfs -I 192.168.16.229 // [email protected]/myshare /mnt/smbshare

Монтувати образ

Linux loop-back

# mount -t iso9660 -o loop file.iso /mnt # Монтувати образ CD# mount -t ext3 -o loop file.img /mnt # Монтувати образ із файловою системою ext3

FreeBSD

Використовуючи md- пристрій пам'яті (якщо потрібно, зробіть kldload md.ko): # mdconfig -a -t vnode -f file.iso -u 0 # mount -t cd9660 /dev/md0 /mnt # umount /mnt; mdconfig -d -u 0 # Очистити пристрій пам'ятіАбо використовуючи псевдопристрій( VN, Virtual node): # vnconfig /dev/vn0c file.iso; mount -t cd9660 /dev/vn0c /mnt # umount /mnt; vnconfig -u /dev/vn0c # Очистити псевдопристрій

Створення та запис образу ISO

Копіюватимемо cd або dvd сектор за сектором. # dd if=/dev/hdc of=/tmp/mycd.iso bs=2048 conv=notrunc Використовуйте mkisofsщоб створити образ з файлу в директорії. Для подолання обмежень імен файлів використовуйте опцію -r, Що включає розширення RockRidge, основне для UNIX систем, -Jвключає Joliet, що використовується Microsoft, -Lдозволяє ISO9660імена, що починаються крапкою. # mkisofs -J -L -r -V TITLE -o imagefile.iso /path/to/dir У FreeBSD, mkisofsможна встановити з портів /usr/ports/sysutils/cdrtools.

Запис CD/DVD ISO образів

FreeBSD

FreeBSD не встановлює DMAна ATAPIпристрої, це можна зробити через змінну sysctlабо у файлі /boot/loader.conf, наступними записами. hw.ata.ata_dma="1" hw.ata.atapi_dma="1" Використовуйте burncdдля ATAPI пристроїв ( burncd, стандартна програма, частина базової системи) та cdrecord/usr/ports/sysutils/cdrtools) для SCSI пристроїв. # burncd -f /dev/acd0 data imagefile.iso fixate # Для ATAPI пристроїв# cdrecord -scanbus # Знайти рекордер # cdrecord dev=1,0,0 imagefile.iso

Linux

Також використовуйе cdrecord, як описано вище. Крім того, можна використовувати рідний ATAPI інтерфейс: # cdrecord dev=ATAPI -scanbus Записуйте, як було описано вище.

dvd+rw-tools

Пакет dvd+rw-tools (FreeBSD: ports/sysutils/dvd+rw-tools) має весь функціонал необхідний для роботи з DVD, плюс growisofsдля запису CD або DVD. Документацію з прикладами можна знайти у FreeBSD handbook Розділ 18.7 # -dvd-compat закриває диск# growisofs -dvd-compat -Z /dev/dvd=imagefile.iso # Записати існуючий iso образ # growisofs -dvd-compat -Z /dev/dvd -J -R /p/to/data # Записати безпосередньо

Конвертувати образ з файлу Nero .nrg у файл.iso

Nero додає до образу заголовок 300кб, його можна обрізати за допомогою dd. # dd bs=1k if=imagefile.nrg of=imagefile.iso skip=300

Конвертувати образ bin/cue в.iso

Це можна зробити за допомогою невеликої програми, bchunk. У FreeBSD її можна знайти в портах /usr/ports/sysutils/bchunk. # bchunk imagefile.bin imagefile.cue imagefile.iso

Створення образу на основі файлу

Наприклад, розділ розміром 1Гб використовує файл /usr/vdisk.img. У цьому випадку ми використовуємо ключ -u 0але номер може бути будь-яким.

FreeBSD

# dd if=/dev/random of=/usr/vdisk.img bs=1K count=1M # mdconfig -a -t vnode -f /usr/vdisk.img -u 0 # Створюємо пристрій /dev/md1 # bsdlabel -w /dev/md0 # newfs /dev/md0c # mount /dev/md0c /mnt # umount /mnt; mdconfig -d -u 0; rm /usr/vdisk.img # Очистити mdОбраз створений з файлу може бути змонтований у процесі завантаження системи шляхом запису рядка в /etc/rc.confі /etc/fstab. Перевірити правильність налаштувань можна за допомогою команди /etc/rc.d/mdconfig start(попередньо видаливши пристрій md0за допомогою команди # mdconfig -d -u 0). Майте на увазі, що автоматичне монтування образу буде працювати, тільки якщо файл образу, лежить НЕ в кореневому розділі, тому що скрипт /etc/rc.d/mdconfigвиконується на ранній стадії завантаження, коли кореневий розділ ще не доступний запис. Образи розташовані поза кореневим розділом будуть змонтовані пізніше, скриптом /etc/rc.d/mdconfig2.
/boot/loader.conf: md_load="YES" /etc/rc.conf: mdconfig_md0="-t vnode -f /usr/vdisk.img" # /usrне в кореневому розділі/etc/fstab: (0 0 в кінці, дуже важливі, це вкаже fsckігнорувати перевірку пристрою, оскільки він ще не існує) /dev/md0 /usr/vdisk ufs rw 0 0
Крім того, згодом можна збільшити розмір образу, скажімо на 300 мегабайт. # umount /mnt; mdconfig -d -u 0 # dd if=/dev/zero bs=1m count=300 >> /usr/vdisk.img # mdconfig -a -t vnode -f /usr/vdisk.img -u 0 # growfs /dev /md0 # mount /dev/md0c /mnt # Тепер файловий розділ на 300 мб більше

Linux

# dd if = / dev / zero of = / usr / vdisk.img bs = 1024k count = 1024 # mkfs.ext3 /usr/vdisk.img # mount -o loop /usr/vdisk.img /mnt # umount /mnt; rm /usr/vdisk.img # Очистити

Linux та losetup

/dev/zeroнабагато швидше, ніж urandom, але менш захищений для шифрування. # dd if=/dev/urandom of=/usr/vdisk.img bs=1024k count=1024 # losetup /dev/loop0 /usr/vdisk.img # Створити /dev/loop0 # mkfs.ext3 /dev/loop0 # mount /dev/loop0 /mnt # losetup -a # Перевірити # umount /mnt # losetup -d /dev/loop0 # Від'єднати # rm /usr/vdisk.img

Створення файлової системи у пам'яті

Файлова системау пам'яті дуже швидка, має сенс використовувати її для додатків із високим дисковим IO. Створимо розділ розміром 64 мб і змонтуємо його в /memdisk:

FreeBSD

# mount_mfs -o rw -s 64M md /memdisk # umount /memdisk; mdconfig -d -u 0 # Очистити mdпристрій md /memdisk mfs rw,-s64M 0 0 # запис у /etc/fstab

Linux

# mount -t tmpfs -osize=64m tmpfs /memdisk

Продуктивність дисків

Читання та запис 1гбфайлу у розділі ad4s3c (/home) # time dd if = / dev / ad4s3c of = / dev / null bs = 1024k count = 1000 # time dd if = / dev / zero bs = 1024k count = 1000 of = / home / 1Gb.file # hdparm -tT / dev/hda # Тільки Linux