Автоматично монтиране на мрежово устройство при зареждане на freebsd. MiniHowTo: Монтиране на FreeBSD диск. Създаване на суап дял в движение

Често обръщам внимание на факта, че простите въпроси често са слабо отразявани в интернет. Това вероятно е така, защото всички гурута са сигурни, че никой никога няма да зададе толкова глупави въпроси, защото всички знаят това. Но моята практика показа, че точно такива малки прости въпроси са най-често срещаните не само за начинаещи, но и за сериозни администратори, на които просто не им се е налагало да се справят с това. Дори сериозните администратори не правят това всеки ден, но за да не забравят, те пазят нещо като измамник за себе си, без да го признават на никого. Да оправим всичко. Сега ще научите как да добавите твърд диск към FreeBSD за 5 минути. Така. Първо ще бъде предоставена пълна инструкция за разбиране на процеса, а накрая ще има кратък списък с действия, който ще съдържа само списък с команди като измамник.

Подробни инструкции с обяснения

Избор на име на твърдия диск

Първо трябва да определим името на устройството, което току-що добавихме. Следната команда ще ни помогне с това:

Списък с Geom дискове

Или тази команда:

Списък с програмисти за управление на камерата

В реална система тези команди ще показват повече полезна информация, а именно имена на устройства и серийни номера.

Преди да инсталираме новото устройство, знаехме, че нашата система е инсталирана на ada0, така че логично новият ни диск е ada1. Можете да определите това по името на новото устройство, неговия сериен номер или обем.

Сега нека проверим дали има маркировка на новия ни диск

gpart шоу ada1

Дискът няма дял.

Премахване на съществуващо маркиране

Ако дискът вече е използван и има нужда да премахнете дяла от него, просто изпълнете:

Gpart унищожи -F ada1

Създаване на GPT маркировка

Първо трябва да създадем оформление на диска. Силно препоръчвам да забравите за MBR и да преминете към нов, по-удобен и функционален - GPT.

Създайте GPT дял на диска, след което проверете какво се е случило:

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

Сега имаме GPT дисков дял. От изхода можете да видите, че абсолютно целият диск, започвайки от LBA 34 и завършвайки с LBA 8388541, е празен. LBA 0-33 - запазено от системата за таблицата на дяловете.

Да кажем, че трябва да създадем два дяла на това устройство:

  • размяна- суап дял
  • данни- секция от типа ufs за съхраняване на всички необходими данни.

Създаване на секции (филии)

Ако инсталацията се извършва на съвременни твърди дискове с размер на сектора 4 kb, тогава при създаване на дялове трябва да се използва подравняване. Има два начина да продължите: 1) ако посочим параметрите на секцията в блокове, след това въведете номера на блока кратно на 8, например: -б 40; 2) ако посочим размера на секцията в байтове или изобщо не посочим началото и размера, използвайте параметъра - 4к, което ще побере началото и края на секцията до 4 kb сектори. Тъй като в този пример правим тестова инсталация на виртуален твърд диск, това може да бъде пропуснато. Във всеки случай, преди да създадете дялове, трябва да знаете точно размера на сектора на вашето устройство, в противен случай това ще доведе до ужасни спирачки в работата.

Сега нека създадем секции. За да направите това, има команда за добавяне на gpart с различни опции. Първи параметър - показва типа на създаваната файлова система. В нашия случай ще се използват два типа: freebsd-swap и freebsd-ufs. Следват два незадължителни параметъра: - посочва LBA номера, от който трябва да бъде създаден дялът. Ако не посочите този параметър, тогава дялът ще бъде създаден автоматично от първия свободен LBA. - показва размера на дяла в LBA. Размерът на един LBA блок = 512 байта. Желателно е да се посочи броят на LBA блоковете, но е възможно и в кило/мега/гига/… байтове (суфикс k/M/G). Ако не посочите този параметър, тогава дялът ще бъде създаден до максималния възможен LBA в рамките на празната област. Можете също да посочите етикет на секция като параметър, например: -разменям 1- в този случай ще бъде създаден етикетът /dev/gpt/swap1, чрез който имате по-удобен достъп до дяла. Последният задължителен параметър е пътят към диска. В нашия случай: /dev/ada1.

Нека създадем два дяла и след това да видим какво получаваме. Ще създадем първия дял, без да указваме първоначалния LBA, но да посочим размера от 1 GB (2097152 блока). Ще създадем втория дял, без да указваме първоначалния LBA и без да указваме размера - по този начин той ще бъде създаден върху цялото свободно пространство.

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

Размерът може да бъде посочен в байтове, а не в блокове. Много по-удобно е. Единственият минус е, че системата не винаги може правилно да изчисли броя на блоковете. Възможно е да има случаи, когато определен брой блокове ще останат празни на диска при определяне на размера на дяла в байтове.

Създаване на файлова система (форматиране)

Суап дяловете не трябва да се форматират. Но раздели като ufs трябва да бъдат форматирани преди употреба. По-правилно би било да се каже: на тях трябва да се създаде файлова система.

За да създадете файлова система на втория дял, просто изпълнете следната команда:

Newfs -U /dev/ada1p2

В този случай е използван параметърът -U - той показва, че механизмът за меки актуализации трябва да се използва в тази файлова система. Можете да изберете да не използвате тази опция, за да деактивирате този механизъм.

Монтаж

Следващата стъпка е да монтирате дяловете. Първо, да не забравяме, нека добавим нашите нови секции към /etc/fstab. Моят файл след редактиране изглежда така:

За да монтирате отново всички дялове според файла /etc/fstab, просто изпълнете командата:

Mount-a

Както можете да видите от изхода, дялът /dev/ada1p2 е монтиран. Сега нека видим какво се случи със SWAP дяла. Нека изпълним командата:

Както можете да видите, новият SWAP дял не е монтиран. За да монтирате SWAP, трябва да го активирате със специална команда:

Разменете /dev/ada1p1

По същия начин, като използвате командата swapoff, трябва да изключите SWAP дяла, преди да извършите каквито и да било действия върху него.

Това завършва всички стъпки за добавяне на нов твърд диск към системата.

Кратка инструкция

Дадено: твърд диск /dev/ada1

Цел: изтрийте съществуващия дял, създайте нов GPT дял, създайте два дяла: суап и данни и ги свържете към работещата система.

След всяка стъпка направете gpart шоуза да видите резултата. Последователност:

  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. Активирайте новия суап дял с командата: swapon /dev/ada1p1

Това завършва настройката.

Задачата за подготовка на дисково пространство за използване не свършва със създаването на дялове и файлови системи върху тях. Всички създадени файлови системи все още трябва да бъдат предоставени на FreeBSD. Защо трябва да бъдат монтирани - тоест включени в единна йерархия от директории и файлове, която също се използва за обозначаване на името на файловата система. Въпреки това, ако по-рано ставаше дума за физическата организация на данните, сега е време да се запознаем с нейната логика.

Логика на файловата система

Логично файловата система FreeBSD (като всяка Unix система) е организирана по дървовиден начин: в основата й е коренът (основната директория, обозначена със символа / и наричана още основна директория; последната не трябва да се бърка с директорията /root, която действа като начална директория за суперпотребител).

От главната директория, която може да прилича повече на ствол на дърво, се отклоняват клоните - поддиректории, вложени в нея, и издънки - обикновени файлове. Последните обаче са малко: във версиите на FreeBSD това е един вид ентропен файл (/entropy) и файл с описание на авторските права върху системата /COPYRIGHT .

Но има доста поддиректории в основната директория и някои от тях са много сложни вътре, съдържащи доста вложени поддиректории с по-дълбоки нива.

По принцип йерархията на директориите във всички Unix системи е сходна, тъй като се регулира, първо, от дълга традиция и второ, от всички видове стандартизиращи документи, по-специално FHS (Стандарт за йерархия на файловата система), който сега е достъпен в Руски превод (за което благодаря на Виктор Костромин).

Стандартът FHS първоначално е проектиран да рационализира структурата на директориите на множество дистрибуции на Linux. И едва по-късно беше адаптиран за други Unix-подобни системи (включително клана BSD). Въпреки това, йерархията на директориите на FreeBSD може да послужи като пример за примерно придържане към духа на FHS. И буквално парчета отклонения в него от буквата му винаги са функционално обусловени.

Стандартът FHS се основава на два основни принципа – ясно разделение във файловата йерархия на споделени и несподелени директории, от една страна, и неизменни и променливи, от друга.

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

Същността на противопоставянето на неизменни и променливи директории е лесно да се обясни с пример. Така че едни и същи потребителски програми по своето естество трябва да бъдат неизменни (или по-скоро достъпни за модификация само на системния администратор, но не и на самия потребител, който ги използва в работата си). В същото време тези програми по време на своята работа генерират не само файлове с данни, да речем, текстове или изображения (променящата им се природа е ясна без коментари), но и всякакъв вид служебна информация, като лог файлове, временни файлове и т.н.). Които трябва да бъдат групирани в директории, отделени от действителните изпълними файлове на програми, библиотеки, конфигурационни файлове и т.н., необходими за тяхното стартиране.

Стриктното придържане към концепцията за разделяне на споделени и несподелени, неизменяеми и неизменяеми директории една от друга позволява в рамките на една дървовидна файлова йерархия да се изолират физически отделните му клонове - тоест под формата на независим файл системи, разположени на изолирани устройства (дискове, дискови изрезки, дялове; в общия случай - и на отдалечени, свързани към мрежата носители, но това няма да бъде обсъждано сега). Има много причини за това - както увеличаване на скоростта, така и повишаване на надеждността, и просто съображения за удобство - но сега няма да говорим за тях. Защото сега единственото важно нещо за нас е тези клонове на файловото дърво да бъдат включени в обща файлова система.

В Unix системите всеки файл (включително директория) се разпознава от системата не по името си, а по уникалния идентификатор на записа му в таблицата 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/ 8258 bin/ 8294 proc/ 8295 sbin/ 16512 stand/ 2476 и т.н. обувка/

От този пример (отнасящ се до файловата система на машината, на която са записани тези редове) се вижда, че цели 7 директории имат еднакви цифрови идентификатори, равни на 2. Въпросът е каква е уникалността тук?

Първите два елемента от списъка са лесни за разбиране: ./ е обозначението на текущата директория (в този случай коренната), а ../ е родителската директория на текущата; и тъй като по дефиниция няма нищо над корена във файловата йерархия, коренът е сам за себе си. Така че не е изненадващо, че ./ и ../ имат един и същ идентификатор - те са различни обозначения (твърди връзки или, с други думи, дублиращи се имена) за една и съща основна директория.

Но същата, както изглежда на пръв поглед, стойността на идентификатора за директориите /dev , /home , /tmp , /usr , /var изисква обяснение. Все пак е просто: всичко това са директории, в които са монтирани независими файлови системи, разположени или на отделни устройства - дискови дялове, като директориите /home, /usr, /var или виртуални файлови системи, които не се изграждат върху никакви реални дисково устройство ( /dev директорията с файловата система на устройството и в този случай директорията /tmp, която има монтирана файлова система в паметта, за която ще говорим по-късно). И тъй като масата inodes- различни за всяка файлова система, няма нищо изненадващо във факта, че коренът на всяка от тях се идентифицира с числото 2 - номериране inodesв тях влиза в тяхната собствена референтна рамка.

И така, монтирането е включването на файлова система от системата в която и да е от директориите, съществуващи в коренната система (не непременно директно в корена, тя може да бъде на всяко ниво на влагане, което ще бъде илюстрирано по-долу). Без това директориите и файловете на такава монтирана система са просто недостъпни. Това е важно да се разбере, когато се сблъскате с изрази като "създайте /usr файлова система". От казаното по-горе е очевидно, че той е създаден (от командата newfs) просто някаква абстрактна файлова система и придобива своето „име“ само в момента на монтиране в посочената директория.

Интересно е, че идентификаторът на директорията за монтиране (нарича се още точка на монтиране, точка на монтиране) се придобива само по време на монтирането. За да проверим това, нека проведем прост експеримент. В директорията /mnt, създадена специално за монтиране на временно монтирани файлови системи), можете да видите три поддиректории - /mnt/disk , mnt/iso , /mnt/usb (това е в моята система, създадох ги за мое удобство; първоначално директорията /mnt във FreeBSD е празна). При стартиране на системата нищо не се монтира в тях и нормалното им състояние е да е празно. Ако погледнете техните идентификатори, можете да видите нещо подобно:

$ ls -i /mnt 18 диск/ 24 iso/ 19 usb/

Сега нека вземем и монтираме флаш устройство с USB интерфейс в / mnt / usb (за това го предвидих) и повторим прегледа. И виждаме:

18 диска/ 24 iso/ 2 usb/

Това означава, че идентификаторите на директориите, които са останали празни (/mnt/disk и /mnt/iso), не се променят, а идентификаторът на директорията /mnt/usb магически се променя на 2. Защото по време на монтирането тя става root за собствената си файлова система и отправна точка за смятане inodesвсички файлове в него.

Нека се отклоним малко и да си спомним за твърдите връзки, чрез които същото inodeи свързаните блокове данни могат да получат различни имена. Сега е ясно защо всички подобни дублиращи се файлове трябва да са в една и съща файлова система: в края на краищата различните файлови системи имат свои собствени, несъвпадащи, номерации inodes, и е невъзможно да ги идентифицираме с числа (иначе как системата ще различи директориите /usr и /var от нашия пример - в края на краищата имената на файловете са твърде дълбоки за нея). За символични връзки, които имат свои собствени inode(всъщност и почти нищо освен тях) с техните идентификатори, номерирани в референтната система на файловата система, в която се намират, няма такова ограничение. И символичните връзки могат да лежат навсякъде (включително на отдалечена машина - не само на друг дял).

Нека се върнем обаче към примера с нашата основна директория. От всичко разгледано се вижда, че редица негови клонове лежат на отделни дялове и образуват свои собствени файлови системи (всъщност затова създадохме и двете). И следователно всички те трябва да бъдат монтирани.

Монтажна практика

Целта на монтирането е командата за монтиране, която се изпълнява или автоматично по време на стартиране на системата, или ръчно от командния ред. Всъщност, в пълния смисъл, във всеки случай автоматично се монтира само основната файлова система. Не е задължително да е на диск – когато стартирате от спасителен компактдиск или друг носител за безопасност, може да бъде разположен на виртуален диск в RAM.

Процесът на монтиране на основната файлова система обаче е също толкова неизбежен, колкото и победата на социализма в глобален мащаб: точно както социализмът, без да спечели в глобален мащаб, просто губи способността си да съществува (което наблюдавахме не толкова отдавна), така че ОС съществува без коренна система.не може. В Linux това задейства режима на паника на ядрото - нещо като състоянието, в което изпаднаха нашите лидери преди 20 години. Вярно, те се оказаха по-силни от Linux "и и се възстановиха доста бързо - така че досега трябва да рестартираме" yat (или рестартиране? - и ние ставаме по-силни :)). Това обаче не важи за случая с монтаж, който сега ще се опитам да ви представя.

Така че, за да монтирате всички файлови системи, с изключение на root, трябва да предприемете някои действия. Първо ще разгледаме как да ги правим на ръка и след това как да ги увековечим в съответните конфигурационни файлове.

Така че командата за монтиране. Всъщност това е цяло семейство програми, всяка от които е предназначена да монтира файлови системи от определени типове - не само UFS, но и всяка от поддържаните от FreeBSD. Списъкът с тях е много обширен - можете да получите представа за това, като разгледате тази тема в директорията /sbin:

$ ls -1 /sbin/mount*

какво ще ни даде отговора

/sbin/mount_cd9660* /sbin/mount_devfs* /sbin/mount_ext2fs* /sbin/mount_fdescfs* /sbin/mount_linprocfs* /sbin/mount_mfs* /sbin/mount_msdosfs* /sbin/mount_nfs* /sbin/mount_nfs* /sbin_nt_mount_n/sbin_nt /sbin/mount_nullfs* /sbin/mount_procfs* /sbin/mount_std* /sbin/mount_udf* /sbin/mount_umapfs* /sbin/mount_unionfs*

Всяка команда в този списък е отговорна за монтирането на различен тип файлова система, към някои от които ще се върнем по-късно. Междувременно отбелязваме само действителния /sbin/mount , предназначен да работи с UFS и UFS2.

Извикан от командния ред, той изисква два аргумента - името на устройството, което ще се монтира, и точката на монтиране (тоест директорията, в която трябва да се монтира основната файлова система). Името на устройството трябва да обозначава патриций, който вече е маркиран върху съществуващ BSD срез със създадена върху него файлова система UFS2 (UFS), например,

$ монтиране /dev/ads0d /usr

монтира файловата система на посочения дял към директорията /usr в корена на файловото дърво. Ако файловата система на устройството не е създадена или има тип, различен от UFS/UFS2, ще последва съобщение за грешка - индикация за неправилен супер блок: за разлика от помощната програма на Linux със същото име, самата команда за монтиране на FreeBSD не може да разпознае тип файлова система.

Точката на монтиране има следните изисквания: а) директория с това име трябва да съществува по време на монтирането и б) да е възможно най-празна. Първото е задължително, второто не. Монтирането в директория с някои файлове ще върви гладко (не забравяйте, че в Linux не толкова отдавна това доведе до срив на системата), но цялото й съдържание ще стане недостъпно, докато не бъде демонтирано. И ако файловете, съдържащи се в него, играят значителна роля за която и да е подсистема, това може да причини всякакви лоши последици. Например, ако съдържанието на директорията /tmp е заключено чрез монтиране на файлова система там, докато системата X прозорци работи, резултатът е вероятно да бъде срив на X сървъра. За щастие, ако е необходимо, можете да извършите комбиниран монтаж (вижте по-долу).

В посочения вид монтирането ще се извърши с някои характеристики по подразбиране: файловата система ще бъде достъпна за четене/запис в т.нар. режим. noasync (този, при който операциите с метаданни се изпълняват синхронно, а операциите с данни са асинхронни). Можете да промените тази позиция, като използвате стойностите на опцията -o. Има доста от тях, но на практика основните на този етап за нас ще бъдат:

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

Има няколко други стойности на опцията -o, които предотвратяват поставянето на определени типове файлове в монтираната файлова система, като изпълними (-o noexec), файлове на устройства (-o nodev) или файлове с so- Наречен. малко преценка. Те обаче са от практическо значение главно за администраторите на сървъри и служат за целите на сигурността. На настолна машина обичайната форма на монтиране би била нещо подобно:

$ 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). Това обаче може да стане и индиректно, като посочите командата за монтиране с опцията -t file system_type. И така, командата

$ mount -t ext2fs /dev/ad## /mnt/linux

ще монтира файловата система на Linux (ако е активирана в ядрото). В същото време стандартното монтиране за BSD дялове просто се заменя с командата /mount_ext2fs, която е предназначена да монтира ext2fs дялове (и ext3fs също - но, разбира се, без никакви функции за регистриране). Това е формата

$ mount -t fstype ... ...

ще бъде пълният еквивалент на командата

$ mount_fstype ... ...

Всички монтирания на файловата система (включително сменяеми носители) във FreeBSD изискват привилегии на суперпотребител. Опцията -o тук, за разлика от Linux версията на командата за монтиране, не включва потребителската опция -o, която позволява на обикновените потребители да монтират. Вярно е, че има няколко начина да заобиколите това, както е обсъдено в специална бележка.

Конфигуриране на автоматично монтиране

На практика обаче ръчното монтиране се използва само за рядко използвани файлови системи. Всички файлови системи, които са фундаментално важни за функционирането на FreeBSD, се монтират автоматично при стартиране на системата, а често използваните се монтират в полуавтоматичен, така да се каже, режим.

За автоматично монтиране, програмата за монтиране се изпълнява по време на процеса на зареждане от скриптовете за инициализация. Той търси своя конфигурационен файл, /etc/fstab, и монтира всичко, което намери в него, с няколко изключения (отбелязани по-долу).

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

Файлът /etc/fstab е проста база данни в текстов формат (разделена с интервали или табулатори), включваща следните полета:

  • Устройство - името на файла на устройството, на което се намира файловата система, подобно на първия аргумент на командата за монтиране, когато се използва ръчно;
  • Mountpoint - точка на монтиране (съответства на втория аргумент на командата mount);
  • FStype - тип файлова система, посочен по същия начин като стойността на опцията -t;
  • Опции - допълнителни опции за монтиране, подобни на стойностите на опцията -o;
  • Dump - условия за извършване на архивиране на файловата система от помощната програма dump;
  • Pass# - условия за проверка на файловата система с помощната програма fsck.

В прясно инсталиран FreeBSD, /etc/fstab непременно ще включва следните записи (пример за 1-ви срез на главния диск на 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

/dev/ad0s1g /home ufs rw 0 0

отговаря за файловата система с потребителски домашни директории.

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

Горното се отнася за файлови системи, монтирани автоматично при стартиране. Никой обаче не си прави труда да прави записи в /etc/fstab за системи, които се свързват от време на време - в този случай те могат да се монтират по опростена схема (това имах предвид по-горе под полуавтоматичен режим). Така че за CD устройство можете да добавите ред (всъщност той се появява автоматично при генериране на файла /etc/fstab, ако CD е избран като източник на инсталация в sysinstall)

/dev/acd0 /cdrom cd9660 ro,noauto 0 0

в който опциите, както може би се досещате, предписват без монтиране при стартиране (noauto) и режим само за четене (ro). След това, за да монтирате компактдиска, ще бъде достатъчно да посочите само точката на монтиране -

$ монтиране /cdrom

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

$ монтиране /dev/acd0

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

Демонтирайте

Всички участващи файлови системи трябва да бъдат демонтирани, преди да изключите захранването или да рестартирате машината. При чисто изключване това се прави автоматично, карайки всяка записваема файлова система да получи чист бит за демонтиране, записан в собствения си суперблок. Наличието на този бит не позволява на системата да проверява файловите системи за съгласуваност с помощната програма fsck при следващото стартиране на системата.

Въпреки това, в някои случаи (например, когато активирате или деактивирате механизма за меки актуализации или за извършване на проверка на целостта), става необходимо ръчно демонтиране (и повторно монтиране) на файлови системи, за които се използва командата umount. Изисква един единствен аргумент - посочване на точката на монтиране на "премахнатата" файлова система от дървото на директориите, например:

$umount /tmp

или, както в случая на полуавтоматично монтиране, името на файла на устройството за изключване:

$ umount /dev/ad#s#?

Можете да демонтирате няколко файлови системи с един ред:

$ umount /usr /var /home

Или можете - всички монтирани файлови системи или всички файлови системи, изброени във файла /etc/fstab (с изключение на root), което ще изисква опции

$ umount -A

$ umount -a

съответно. Възможно е също да демонтирате файлови системи от определени типове, като посочите стойностите на опцията -t. Да, отборът

$ umount -t ufs

демонтира само BSD дялове, без да засяга CD и всичко останало, което участва в системата.

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

Можете обаче също да демонтирате използваната файлова система - за това трябва да дадете командата umount с опцията -f (от принудително - тоест принудително). Вярно е, че това може да доведе до грешки, така че е по-добре да не прибягвате до него, освен ако не е абсолютно необходимо. И опцията за принудително демонтиране няма да има ефект върху основната файлова система.

Масово закрепване

За да продължите да работите след извършване на операции от ниско ниво на файлови системи, те ще трябва да бъдат монтирани обратно. Това може да стане не само без рестартиране, но и без досаден индивидуален монтаж. Достатъчно е да прибегнете до опцията -a:

$ монтиране -a

който ще монтира всички файлови системи, за които има записи в /etc/fstab. Това ще се опита да монтира и тези, маркирани с флага noauto. За да избегнете това, можете допълнително да посочите типа на файловата система. Това е заповедта

$ mount -a -t ufs

монтира само BSD дялове, не посяга на компактдискове или флаш устройства. Или, напротив, можете да изключите някои от файловите системи, изброени в /etc/fstab, от глобалния процес на монтиране, например, в момента ненужни FAT:

$ mount -a -t nomsdosfs

Преамбюл вместо заключение

Между другото, командата за монтиране без опции и аргументи (и в тази форма, за разлика от всички разгледани по-горе случаи, тя може да бъде дадена и от обикновен потребител) ще покаже списък с текущо монтирани файлови системи, указващи точката на монтиране, нейните условия и режим на работа. Например, за машината, на която са написани тези редове, нейният изход ще изглежда така:

/dev/ad0s1a на / (ufs, local, noatime, soft-updates) devfs на /dev (devfs, local) /dev/ccd0e на /var (ufs, local, noatime, soft-updates) /dev/ccd1e на / usr (ufs, local, noatime, soft-updates) /dev/ccd2e на /home (ufs, local, noatime, soft-updates) /dev/md0 на /tmp (ufs, local, noatime, async)

Първият ред на изхода показва, че дялът /dev/ad0s1a е монтиран в нашата основна директория, носи UFS файлова система (по-конкретно, в този случай, UFS2, но те не се различават в изхода на командата за монтиране) с Механизмът за меки актуализации е активиран, локален е (т.е. намира се на устройството на тази машина - мрежовите устройства също се монтират от командата за монтиране) и не се влияе от актуализирането на атрибута atime.

$ повече /etc/fstab /dev/ad0s1b none swap sw 0 0 /dev/ar0s1b none swap sw 0 0 /dev/ad0s1a / ufs rw,noatime 1 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 0 /dev/da0s1 /mnt/usb ext2fs rw,no0auto,noatime dev/md0 /tmp mfs rw,noatime,async,-s32m 2 0

ще видим, че един от изходните редове

Devfs на /dev (devfs, локално)

в записите му изобщо няма кореспонденция. Какви са тези устройства и файлови системи?

Начало > Операционни системи > UNIX > BSD > FreeBSD

Добавете твърд диск към FreeBSD за 5 минути

Често обръщам внимание на факта, че простите въпроси често са слабо отразявани в интернет. Това вероятно е така, защото всички гурута са сигурни, че никой никога няма да зададе толкова глупави въпроси, защото всички знаят това. Но моята практика показа, че точно такива малки прости въпроси са най-често срещаните не само за начинаещи, но и за сериозни администратори, на които просто не им се е налагало да се справят с това. Дори сериозните администратори не правят това всеки ден, но за да не забравят, те пазят нещо като измамник за себе си, без да го признават на никого. Да оправим всичко. Сега ще научите как да добавите твърд диск към FreeBSD за 5 минути. Така. Първо ще бъде предоставена пълна инструкция за разбиране на процеса, а накрая ще има кратък списък с действия, който ще съдържа само списък с команди като измамник.

Подробни инструкции с обяснения

Избор на име на твърдия диск

Първо трябва да определим името на устройството, което току-що добавихме. Следната команда ще ни помогне с това:

Списък с Geom дискове

Или тази команда:

Списък с програмисти за управление на камерата

В реална система тези команди ще показват повече полезна информация, а именно имена на устройства и серийни номера.

Преди да инсталираме новото устройство, знаехме, че нашата система е инсталирана на ada0, така че логично новият ни диск е ada1. Можете да определите това по името на новото устройство, неговия сериен номер или обем.

Сега нека проверим дали има маркировка на новия ни диск

gpart шоу ada1

Дискът няма дял.

Премахване на съществуващо маркиране

Ако дискът вече е използван и има нужда да премахнете дяла от него, просто изпълнете:

Gpart унищожи -F ada1

Създаване на GPT маркировка

Първо трябва да създадем оформление на диска. Силно препоръчвам да забравите за MBR и да преминете към нов, по-удобен и функционален - GPT.

Създайте GPT дял на диска, след което проверете какво се е случило:

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

Сега имаме GPT дисков дял. От изхода можете да видите, че абсолютно целият диск, започвайки от LBA 34 и завършвайки с LBA 8388541, е празен. LBA 0-33 - запазено от системата за таблицата на дяловете.

Да кажем, че трябва да създадем два дяла на това устройство:

  • размяна- суап дял
  • данни- секция от типа ufs за съхраняване на всички необходими данни.

Създаване на секции (филии)

Ако инсталацията се извършва на съвременни твърди дискове с размер на сектора 4 kb, тогава при създаване на дялове трябва да се използва подравняване. Можете да го направите по два начина:
1) ако посочим параметрите на секцията в блокове, тогава въведете номера на блока кратно на 8, например: -б 40;
2) ако посочим размера на секцията в байтове или изобщо не посочим началото и размера, използвайте параметъра - 4к, което ще побере началото и края на секцията до 4 kb сектори. Тъй като в този пример правим тестова инсталация на виртуален твърд диск, това може да бъде пропуснато. Във всеки случай, преди да създадете дялове, трябва да знаете точно размера на сектора на вашето устройство, в противен случай това ще доведе до ужасни спирачки в работата.

Сега нека създадем секции. За да направите това, има команда за добавяне на gpart с различни опции. Първи параметър - показва типа на създаваната файлова система. В нашия случай ще се използват два типа: freebsd-swap и freebsd-ufs. Следват два незадължителни параметъра: - посочва LBA номера, от който трябва да бъде създаден дялът. Ако не посочите този параметър, тогава дялът ще бъде създаден автоматично от първия свободен LBA. - показва размера на дяла в LBA. Размерът на един LBA блок = 512 байта. Желателно е да се посочи броят на LBA блоковете, но е възможно и в кило/мега/гига/… байтове (суфикс k/M/G). Ако не посочите този параметър, тогава дялът ще бъде създаден до максималния възможен LBA в рамките на празната област. Можете също да посочите етикет на секция като параметър, например: -разменям 1- в този случай ще бъде създаден етикетът /dev/gpt/swap1, чрез който имате по-удобен достъп до дяла. Последният задължителен параметър е пътят към диска. В нашия случай: /dev/ada1.

Нека създадем два дяла и след това да видим какво получаваме. Ще създадем първия дял, без да указваме първоначалния LBA, но да посочим размера от 1 GB (2097152 блока). Ще създадем втория дял, без да указваме първоначалния LBA и без да указваме размера - по този начин той ще бъде създаден върху цялото свободно пространство.

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

Размерът може да бъде посочен в байтове, а не в блокове. Много по-удобно е. Единственият минус е, че системата не винаги може правилно да изчисли броя на блоковете. Възможно е да има случаи, когато определен брой блокове ще останат празни на диска при определяне на размера на дяла в байтове.

Създаване на файлова система (форматиране)

Суап дяловете не трябва да се форматират. Но раздели като ufs трябва да бъдат форматирани преди употреба. По-правилно би било да се каже: на тях трябва да се създаде файлова система.

За да създадете файлова система на втория дял, просто изпълнете следната команда:

Newfs -U /dev/ada1p2

В този случай е използван параметърът -U - той показва, че механизмът за меки актуализации трябва да се използва в тази файлова система. Можете да изберете да не използвате тази опция, за да деактивирате този механизъм.

Монтаж

Следващата стъпка е да монтирате дяловете. Първо, да не забравяме, нека добавим нашите нови секции към /etc/fstab. Моят файл след редактиране изглежда така:

За да монтирате отново всички дялове според файла /etc/fstab, просто изпълнете командата:

Mount-a

Както можете да видите от изхода, дялът /dev/ada1p2 е монтиран. Сега нека видим какво се случи със SWAP дяла. Нека изпълним командата:

Както можете да видите, новият SWAP дял не е монтиран. За да монтирате SWAP, трябва да го активирате със специална команда:

Разменете /dev/ada1p1

По същия начин, като използвате командата swapoff, трябва да изключите SWAP дяла, преди да извършите каквито и да било действия върху него.

Това завършва всички стъпки за добавяне на нов твърд диск към системата.

Кратка инструкция

Дадено: твърд диск /dev/ada1

Цел: изтрийте съществуващия дял, създайте нов GPT дял, създайте два дяла: суап и данни и ги свържете към работещата система.

След всяка стъпка направете gpart шоуза да видите резултата. Последователност:

  1. Премахнете съществуващото маркиране:
    gpart унищожи -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 няма размяна sw 0 0 /dev/ada1p2 /mnt ufs rw 2 2
  6. Монтиране на нов дял (командата монтира всички дялове от файла /etc/fstab):
    монтиране -a
  7. Активирайте новия суап дял с командата:
    swapon /dev/ada1p1 Материал, взет от сайта:

NTFS е родната файлова система на Windows. Следователно, просто свързването на флаш памети, твърди дискове или други сменяеми носители, непознати за нас, няма да работи (в действителност ще работи, но ще има проблеми). Ето защо ние въвеждаме нашето изчерпателно ръководство по този въпрос.


  1. Както винаги, всичко започва с. Инсталирайте драйвер за NTFS: #cd /usr/ports/sysutils/fusefs-ntfs #направете инсталацията чиста
  2. Започвайки с FreeBSD 10, Fuse е част от ядрото. Накарайте го да се зарежда със системни модули #nano /boot/loader.conf fuse_load="YES"

    Ще работи след рестартиране. В текущата сесия заредете този модул ръчно

    #kldload предпазител

    Можете да проверите дали модулът е зареден или не с командата

    #kldstat

    Ако списъкът съдържа предпазител.ко, това означава, че всичко е наред.

    #kldstat Id Refs Адрес Размер Име 1 3 0xffffffff80200000 1fa7c38 ядро ​​2 1 0xffffffff821a9000 1a7c8 fuse.ko

  3. След това трябва да решим как системата вижда флаш устройство или външен твърд диск: #dmesg | grep da

    Резултатът ще бъде нещо подобно:

    Da0 при umass-sim0 bus 0 scbus1 цел 0 lun 0 da0: s/n 00H79BHRYGX22JBN отделен (da0:umass-sim0:0:0:0): Periph унищожен da0 при umass-sim0 автобус 0 scbus1 цел 0 lun 0 da0: Подвижно устройство за директен достъп SPC-4 SCSI da0: Сериен номер 00H79BHRYGX22JBN da0: 40 000MB/s прехвърляния da0: 14870MB (30453760 512 байтови сектора) da0: quirks=0x12 da1 при umass-sim1 автобус 1 scbus2 цел 0 lun 0 da1: s/n 8968888304C9BB52 отделен (da1:umass-sim1:1:0:0): Periph унищожен da1 при umass-sim1 автобус 1 scbus2 цел 0 lun 0 da1: Подвижно устройство SCSI-2 с директен достъп da1: Сериен номер 8968888306C9BB52 da1: 40 000 MB/s прехвърляния da1: 1999 MB (4093952 512 байтови сектора) 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 Информация за системния обем/ -rwxrwxrwx 1 root wheel 9 ноември 4 18:05 xxx.xxx* -rwxrwxrwx 1 коренно колело 22 ноември 4 18:04 ZIP архив - WinRAR.zip* -rwxrwxrwx 1 root wheel 9904 4 ноември 18:04 Microsoft Office Excel лист.xlsx*

    Сега можете да записвате файлове на USB флаш устройството и да ги четете от него.

  6. За да демонтирате флаш устройството, първо напуснете директорията, където е монтирана. Например #cd /

    И след това използваме командата

    #umount /mnt

    отбележи, че аргументът не е флаш устройство, а неговата точка на монтиране!
    ВАЖНО: Не изваждайте флашката веднага след въвеждане на командата! Ще бъде възможно да го извадите само след няколко секунди, когато подкана за въвеждане се появи отново в терминала!

Отварям цикъл от мини наръчници „за тези, които не знаят как да използват търсенето и да задават глупави въпроси“. Днешната тема е монтиране и демонтиране на дискове във FreeBSD.

Така че искаме да получим достъп до данни на допълнителен твърд диск или флаш устройство. За да направите това, трябва да го свържем (монтираме) към празна директория, след което ще получим достъп до данните на този диск в папката, която създадохме / съществуваща преди. (ВАЖНО: не монтирайте диска във вече заети директории, ще получите съдържанието на вашия диск, например вместо съдържанието на папката за файлове с конфигурации, помислете сами за последствията;))

Първо създайте празна папка. Да приемем, че потребителят shitus иска да монтира устройство в нова директория, наречена pron. За да направи това, той създава нова папка в домашната си директория (вероятно най-безопасното място).

Mkdir /home/shitus/pron Следващата стъпка е да монтирате твърдия диск към точка на монтиране (току-що създадохме папка). Всички устройства във вашата система могат да бъдат намерени в папката /dev/. В моя случай искам да монтирам моето устройство /dev/da2 към /home/shitus/pron

Монтиране /dev/da2 /home/shitus/pron Сега можете да видите съдържанието на вашия диск в горната директория.

Как да монтирате други файлови системи, различни от BSD

В моя случай имаме USB устройство с файлова система Fat32. По този начин, когато се монтират на BSD, трябва ясно да се посочи типът на използваната файлова система.

Монтиране -t msdosfs /dev/da2s1 /home/shitus/pron/

За други файлови системи можете да се обърнете към документацията на FreeBSD, няма да давам връзка, защото Google е нашето всичко.

Как да демонтирате/демонтирате файлова система

Да приемем, че искате да деактивирате/изтриете монтирано файлово устройство. Може да има много причини за това, главно ако искате да изтриете устройството или да го монтирате отново в друга точка на монтиране. Командата е много проста -

Umount /home/shitus/pron/

Уверете се, че не сте в тази папка, докато изпълнявате тази команда, в противен случай резултатът ще бъде нулев.

Ако искате да монтирате диска при стартиране на системата, тогава трябва да го запишете във файла /etc/fstab по същия начин, както вече регистрираните там. Можете също да прочетете повече за това в документацията, или аз ще пиша за това за стотен път.