Монтування usb дисків у freebsd 11. FreeBSD: Автомотування файлових систем NFS та SMBFS за допомогою AMD. Преамбула замість ув'язнення

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

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

Їх потрібно змонтувати, а коли всі необхідні дії буде виконано – розмонтувати. Зазвичай для монтування/розмонтування використовуються команди mount(8)/umount(8), і ніхто не замислюється про автоматизацію цих операцій. На мій погляд, це не оптимальний підхід, особливо якщо врахувати той факт, що до складу операційної системи FreeBSD входить спеціальний демон автоматичного монтування.

Постановка задачі

Демон автомонтування операційної системи FreeBSD amd(8) призначений для прозорого монтування будь-яких файлових систем у міру звернення до розміщених на них файлів і папок, а також для подальшого розмонтування цих файлових систем за відсутності активності протягом заданого інтервалу часу. Ця стаття присвячена налаштуванню amd для автоматичного монтування файлових систем, що експортуються NFS-серверами, та спільних папок, що надаються SMB-серверами. Крім цього, вона описує діагностику amd за допомогою утиліти amq(8) та виділення йому власного лога за допомогою штатних засобів управління логами syslogd(8) та newsyslog(8).

Вихідні дані

Для вирішення цієї задачі не потрібно додаткового програмного забезпечення, однак Вам доведеться створити , що дозволяє суперкористувачу root монтувати вибрані спільні папки, що надаються SMB-серверами, без введення пароля.

Автоматичне монтування файлових систем NFS

Для забезпечення автоматичного монтування файлових систем NFS достатньо додати файл /etc/rc.conf рядок:

Amd_enable="YES"

і запустити команду amd /etc/rc.d/amd start . За замовчуванням amd буде використовувати альтернативну папку /.amd_mnt , надсилати повідомлення про свій стан у розділ daemon системного журналу та дозволяти монтувати файлові системи NFS до папок локальної файлової системи /host та /net згідно з картою монтування /etc/amd.map (ця карта монтування входить до складу операційної системи FreeBSD та містить правила, що регламентують порядок монтування та розмонтування файлових систем NFS за допомогою Network Host Filesystem). Якщо перекласти сказане на людську мову, то відразу після запуску amd Ви зможете звертатися до файлової системи share, що експортується NFS-сервером nfsserver, як до звичайної локальної папки з ім'ям /host/nfsserver/share або /net/nfsserver/share. При будь-якому такому зверненні та відсутності необхідної файлової системи в списку змонтованих файлових систем amd створить точку монтування /.amd_mnt/nfsserver/host/share , підмонтує до неї файлову систему share , створить папку /host/nfsserver або /net/nfsserver символічне посилання на вищезгадану точку монтування. Якщо папка /host/nfsserver/share або /net/nfsserver/share не буде використовуватися протягом 5 хвилин, amd розмонтує файлову систему share , а потім видалити папки, що стали непотрібними, і символічне посилання.

Автоматичне монтування файлових систем SMBFS

Для забезпечення автоматичного монтування файлових систем SMBFS доведеться створити одну або кілька додаткових карток монтування, кожна з яких повинна містити правила, що базуються на використанні Program Filesystem. Для отримання можливості звернення до спільних папок шаблонних імен виду /smbfs/smbserver/share слід виділити кожному SMB-серверу окрему карту монтування. Наприклад, для вказівки правил монтування спільних папок share1 і share2 , що надаються SMB-сервером smbserver , можна створити карту монтування з ім'ям /etc/amd.map-smbserver (Ви може змінити це ім'я відповідно до власних уподобань) і додати до неї рядки:

Share1 type:=program;fs:=$(autodir)/$(path); share2 type:=program;fs:=$(autodir)/$(path);

Вказані правила змусять amd монтувати спільні папки до точки монтування $(autodir) (змінна $(autodir) містить ім'я альтернативної папки) командами /sbin/mount -t smbfs //user@smbserver/share... . Відсутність параметра umount або unmount передбачає використання команд змонтування за умовчанням umount $(fs) (змінна $(fs) містить ім'я точки монтування).
Для зв'язування створеної карти монтування з точкою монтування /smbfs/smbserver необхідно додати файл /etc/rc.conf рядок:

Amd_flags="$amd_flags /smbfs/smbserver /etc/amd.map-smbserver"

і перезапустити команду amd /etc/rc.d/amd restart . Відразу після виконання цих дій Ви зможете звертатися до спільних папок share1 і share2 , що надаються SMB-сервером smbserver як до звичайних локальних папок /smbfs/smbserver/share1 і /smbfs/smbserver/share2 .

Аналіз стану amd за допомогою утиліти amq

Для швидкого з'ясування поточного стану amd можна використовувати команду amq -m , призначену для відображення списку змонтованих файлових систем, що включає кількість посилань на кожну з них і містить відомості про помилки монтування приблизно в такому вигляді:

"root" root 1 localhost is up /etc/amd.map /host toplvl 1 localhost is up /etc/amd.map /net toplvl 1 localhost is up /etc/amd.map-smbserver /smbfs/smbserver toplvl 1 localhost is up nfsserver:/host/nfsserver /.amd_mnt/nfsserver host 1 nfsserver is up mount -t smbfs //user@smbserver/share1 ... /.amd_mnt/smbfs/smbserver/share1 program 1 localhost is up

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

Amq: localhost: RPC: port mapper failure - RPC: Authentication error amq: localhost: RPC: Authentication error; why = Failed (unspecified error)

Для усунення даних помилок слід додати файл /etc/hosts.allow правила, що дозволяють доступ до amd і rpcbind з localhost ‘а:

Amd: 127.0.0.1: allow amd: ALL: deny rpcbind: 127.0.0.1: allow rpcbind: ALL: deny

Надання amd власного логу

Параметри запуску за замовчуванням, задані у файлі /etc/defaults/rc.conf , змушують amd надсилати повідомлення про свій стан до розділу daemon системного журналу. Якщо Ви бажаєте надати amd окремий лог з іменем /var/log/amd.log , доведеться перенаправити ці повідомлення в інший розділ системного журналу (у моєму випадку - в розділ local6), а також відповідним чином змінити конфігурацію демона syslogd.
З урахуванням всіх змін у файлах конфігурації, описаних у цій статті, для перенаправлення повідомлень amd у лог /var/log/amd.log потрібно, по-перше, привести визначення змінної amd_flags у файлі /etc/rc.conf до такого виду:

Amd_flags="-a /.amd_mnt -l syslog:local6 /host /etc/amd.map /net /etc/amd.map /smbfs/smbserver1 /etc/amd.map-smbserver1"

і перезапустити amd командою /etc/rc.d/amd restart , а по-друге, додати файл /etc/syslog.conf рядок:

Local6.* /var/log/amd.log

створити порожній лог командою touch /var/log/amd.log і перезапустити syslogd командою /etc/rc.d/syslogd restart.
Для запобігання розростанню лога amd слід включити його ротацію за допомогою утиліти newsyslog. Наприклад, для щодобового усічення лога /var/log/amd.log із збереженням семи попередніх копій, стиснутих архіватором bzip2(1) , слід додати файл /etc/newsyslog.conf рядок:

/var/log/amd.log 644 7 * @T00 JC

Висновок

Після виконання дій, описаних у цій статті, Вам більше не доведеться стежити за необхідністю монтування та розмонтування файлових систем NFS та SMBFS. Я сподіваюся, що Ви оціните таку можливість як корисну і обов'язково зверніть увагу на amd.

від

Головна > Операційні системи > 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 Матеріал взято з сайту:

Змінювати права доступу та власника файлів і каталогів у , можна за допомогою команд 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 eedco2 c8 coba (guam: /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 //winuser@smbserver # Список розшарованих ресурсів# mount_smbfs -I 192.168.16.229 //winuser@smbserver/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