FreeBSD datotečni sustav: hijerarhija i montiranje. FreeBSD: Automatsko montiranje NFS i SMBFS datotečnih sustava pomoću AMD-a Automatsko montiranje mrežnog pogona kada se freebsd pokrene

Priprema diskovnog prostora za korištenje ne završava stvaranjem particija i datotečnih sustava na njima. Svi kreirani datotečni sustavi također moraju biti dostupni FreeBSD-u. Zašto bi ih trebalo montirati - to jest uključiti u jedinstvenu hijerarhiju direktorija i datoteka, što je također označeno imenom datotečnog sustava. No, ako smo ranije govorili o fizičkoj organizaciji podataka, sada je vrijeme da se upoznamo s logikom iste.

Logika datotečnog sustava

Logično, datotečni sustav FreeBSD (kao i svaki Unix sustav) organiziran je prema načelu stabla: u njegovoj osnovi je korijen (korijenski direktorij, označen simbolom / i također se naziva korijenski direktorij; potonji se ne smije brkati s / korijenski direktorij, koji služi kao početni direktorij za superkorisnika).

Iz korijenskog direktorija, koji može biti više poput debla, postoje grane - poddirektorije ugniježđene u njemu, i izdanci - obične datoteke. Potonjih je, međutim, malo: u verzijama FreeBSD-a ovo je određena entropijska datoteka (/entropy) i datoteka koja opisuje autorska prava sustava /COPYRIGHT.

Ali postoji dosta poddirektorija u korijenskom direktoriju, a neki od njih su unutra vrlo složeno raspoređeni, sadrže priličan broj ugniježđenih poddirektorija dubljih razina.

U principu, hijerarhija direktorija u svim Unix sustavima je slična, jer je regulirana, prvo, dugotrajnom tradicijom, a drugo, svim vrstama standardizirajućih dokumenata, posebno FHS (Filesystem Hierarchy Standard), koji je sada dostupno u ruskom prijevodu (za što hvala Viktoru Kostrominu).

FHS standard izvorno je razvijen za organiziranje strukture direktorija brojnih distribucija Linuxa. I tek kasnije je prilagođen za druge sustave slične Unixu (uključujući BSD klan). Međutim, hijerarhija FreeBSD direktorija može poslužiti kao primjer uzornog pridržavanja duha FHS-a. I doslovna odstupanja u njemu od njegova slova uvijek su funkcionalno određena.

FHS standard počiva na dva temeljna načela - jasno odvajanje u hijerarhiji datoteka zajedničkih i nedijeljenih direktorija, s jedne strane, i nepromjenjivih i promjenjivih, s druge strane.

Kontrast između dijeljenih i nedijeljenih direktorija je zbog inherentne mrežne prirode Unixa općenito, a posebno FreeBSD-a. Odnosno, podaci koji se odnose na lokalni stroj (na primjer, konfiguracijske datoteke za njegove uređaje) trebali bi se nalaziti u direktorijima odvojenim od onih čiji je sadržaj dostupan s drugih strojeva na mreži, lokalnih ili globalnih (primjer toga nije samo korisnički podaci, ali i programi) .

Bit kontrasta između nepromjenjivih i promjenjivih imenika može se jednostavno objasniti primjerom. Dakle, isti korisnički programi po svojoj prirodi moraju biti nepromjenjivi (odnosno dostupni za izmjenu samo administratoru sustava, ali ne i samom korisniku koji ih koristi u svom radu). Istovremeno, ti programi tijekom svog rada ne generiraju samo podatkovne datoteke, recimo, tekstove ili slike (njihova varijabilna priroda je jasna bez komentara), već i sve vrste servisnih informacija, kao što su log datoteke, privremene datoteke i Kao). Koje bi trebale biti grupirane u direktorije odvojene od stvarnih izvršnih datoteka programa, biblioteka, konfiguracijskih datoteka itd., potrebnih za njihovo pokretanje.

Strogo pridržavanje koncepta međusobnog odvajanja dijeljenih i nedijeljenih, nepromjenjivih i nepromjenjivih direktorija omogućuje, unutar jedne hijerarhije datoteka u obliku stabla, fizički izolirati njezine pojedinačne grane - to jest, u obliku neovisnih sustava datoteka smještenih na izolirani uređaji (diskovi, diskovi, particije; općenito - i na udaljenim, mrežno povezanim medijima, ali o tome sada nećemo govoriti). Postoji mnogo razloga za to - povećanje brzine, povećanje pouzdanosti i jednostavno razmatranje pogodnosti - ali nećemo sada govoriti o njima. Jer sada nam je jedino važno da te grane stabla datoteka moraju biti ugrađene u cjelokupni datotečni sustav.

U Unix sustavima svaku datoteku (uključujući direktorij) sustav prepoznaje ne po imenu, već po jedinstvenom identifikatoru svog unosa u tablici inode. Postoje alati za pregled tih ID-ova datoteka. Jedna je naredba ls s opcijom -i, koja će ispisati ID-ove svake imenovane datoteke. Dano za korijenski direktorij -

$ ls -i /

pokazat će nam donekle neočekivanu sliku (radi pojednostavljenja izlaza, informacije o regularnim datotekama i simboličkim vezama u korijenu isključene su iz izlaza, a preostali direktoriji sortirani su prema svojim identifikatorima):

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 postolje/ 24768 itd/ 24776 čizma/

Iz ovog primjera (koji se odnosi na datotečni sustav stroja na kojem su zapisani ovi redovi) jasno je da čak 7 direktorija ima iste digitalne identifikatore, jednake 2. Pitanje je u čemu je tu jedinstvenost?

Prva dva elementa popisa lako je razumjeti: ./ predstavlja trenutni direktorij (u ovom slučaju, korijen), a ../ je nadređeni direktorij trenutnog; i budući da, po definiciji, ne postoji ništa iznad korijena u hijerarhiji datoteka, potonji označava sam sebe. Stoga ne čudi da ./ i ../ imaju isti identifikator - to su različite oznake (tvrde veze ili, drugim riječima, dupli nazivi) za isti korijenski direktorij.

Ali isto tako, kao što se čini na prvi pogled, značenje identifikatora za direktorije /dev, /home, /tmp, /usr, /var zahtijeva objašnjenje. Međutim, jednostavno je: sve su to direktoriji u koje su montirani nezavisni datotečni sustavi, smješteni na odvojenim uređajima - particijama diska, kao što su /home, /usr, /var direktoriji ili virtualni datotečni sustavi koji se ne nadograđuju na bilo koji stvarni diskovni uređaj ( /dev direktorij s datotečnim sustavom uređaja i, u ovom slučaju, /tmp direktorij, u koji je montiran datotečni sustav u RAM-u, o čemu će biti riječi kasnije). A budući da stol inode- različito za svaki datotečni sustav, nije iznenađujuće da je korijen svakog od njih identificiran brojem 2 - numeriranje inode idu u svom referentnom okviru.

Dakle, montiranje je uključivanje datoteke iz sustava u bilo koji od direktorija koji postoje u korijenskom sustavu (ne nužno izravno u korijenu, može biti bilo kojeg stupnja ugniježđenja, što je ilustrirano u nastavku). Bez toga, direktoriji i datoteke takvog montiranog sustava jednostavno su nedostupni. Ovo je važno razumjeti kada naiđete na izraze poput "kreiraj /usr datotečni sustav". Iz gore navedenog, očito je da je ono što se kreira (naredbom newfs) jednostavno neka vrsta apstraktnog datotečnog sustava, a svoje "ime" dobiva tek u trenutku montiranja u navedeni direktorij.

Zanimljivo je da se identifikator direktorija za montiranje (koji se naziva i točka montiranja) nalazi samo u trenutku montiranja. Kako bismo to potvrdili, napravimo jednostavan eksperiment. U /mnt direktoriju, namijenjenom posebno za montiranje privremeno montiranih datotečnih sustava), možete vidjeti tri poddirektorija - /mnt/disk, mnt/iso, /mnt/usb (ovo je na mom sustavu, stvorio sam ih radi vlastite udobnosti; inicijalno je /mnt direktorij u FreeBSD-u prazan). Kada se sustav pokrene, u njima ništa nije montirano, a njihovo uobičajeno stanje je da su prazni. Ako pogledate njihove identifikatore, možete vidjeti nešto poput ovoga:

$ ls -i /mnt 18 disk/ 24 iso/ 19 usb/

Sada uzmimo i montirajmo flash pogon s USB sučeljem u /mnt/usb (to je upravo ono za što sam ga namjeravao) i ponovimo gledanje. I vidimo:

18 disk/ 24 iso/ 2 usb/

To jest, identifikatori direktorija koji su ostali prazni (/mnt/disk i /mnt/iso) nisu se promijenili, ali se identifikator direktorija /mnt/usb magično promijenio u 2. Budući da je u trenutku montiranja postao root za vlastiti sustav datoteka i referentnu točku za račun inode sve datoteke snimljene na njemu.

Skrenimo malo i prisjetimo se tvrdih veza, preko kojih se isto inod a blokovima podataka koji su s njim povezani mogu se dati različita imena. Sada je jasno zašto bi se sve takve duplicirane datoteke trebale nalaziti u istom datotečnom sustavu: uostalom, različiti datotečni sustavi imaju vlastito numeriranje koje se ne podudara inode, te ih je nemoguće identificirati brojevima (inače kako bi sustav razlikovao /usr i /var direktorije iz našeg primjera - uostalom, nije ga briga za nazive datoteka). Za simboličke veze koje imaju svoje inod(u stvari, gotovo ništa osim njih) s njihovim identifikatorima, numeriranim u referentnom okviru datotečnog sustava u kojem se nalaze, nema takvog ograničenja. A simboličke veze mogu se nalaziti bilo gdje (uključujući i udaljeni stroj - ne samo na drugoj particiji).

Vratimo se, međutim, primjeru našeg korijenskog direktorija. Iz svega razmotrenog jasno je da određeni broj njegovih ogranaka leži na zasebnim particijama i formira vlastite datotečne sustave (upravo smo ih zato i stvorili). I, stoga, sve ih treba montirati.

Praksa montaže

Za potrebe montiranja služi naredba mount, koja se izvršava ili automatski tijekom pokretanja sustava ili ručno iz naredbenog retka. Zapravo, u punom smislu, u svakom slučaju automatski se montira samo korijenski datotečni sustav. Ne mora biti na disku - kada se pokreće sa CD-a za spašavanje ili drugog sigurnosnog medija, može se nalaziti na virtualnom disku u RAM-u.

Međutim, proces montiranja korijenskog datotečnog sustava neizbježan je kao i pobjeda socijalizma na globalnoj razini: kao što socijalizam, bez pobjede na globalnoj razini, jednostavno gubi sposobnost postojanja (što smo nedavno primijetili), tako može i OS ne može postojati bez korijenskog sustava. U Linuxu to uzrokuje kernel panic mode - otprilike stanje u koje su naši vođe pali prije otprilike 20 godina. Istina, pokazali su se jači od Linuxa i dosta su se brzo oporavili - pa nas i dalje dižu (ili dižu? - ali mi smo sve jači :)). Međutim, to se ne odnosi na pitanje instalacije koje ću vam sada pokušati predstaviti.

Dakle, da biste montirali sve datotečne sustave osim korijenskog, trebate poduzeti neke korake. Prvo ćemo pogledati kako ih napraviti ručno, a zatim kako ih ovjekovječiti u odgovarajućim konfiguracijskim datotekama.

Dakle, naredba mount. Zapravo, ovo je cijela obitelj programa, od kojih je svaki dizajniran za montiranje datotečnih sustava određenih vrsta - ne samo UFS, već bilo kojeg od onih koje podržava FreeBSD. Popis njih je prilično opsežan - možete dobiti ideju o tome ako pogledate direktorij /sbin:

$ ls -1 /sbin/mount*

što će nam dati kao odgovor

/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_nfs4* /sbin/mount_ntfs* /sbin/mount_nullfs* /sbin/mount_procfs* /sbin/mount_std* /sbin/mount_udf* /sbin/mount_umapfs* /sbin/mount_unionfs*

Svaka naredba na ovom popisu odgovorna je za montiranje različite vrste datotečnog sustava, od kojih ćemo se na neke vratiti kasnije. Za sada, spomenimo samo /sbin/mount sam, dizajniran za rad s UFS i UFS2.

Pozvan iz naredbenog retka, zahtijeva dva argumenta - naziv uređaja koji se montira i točku montiranja (to jest, direktorij u koji bi trebao biti montiran temeljni datotečni sustav). Naziv uređaja trebao bi označavati patriciu koja je već mapirana na postojećem BSD isječku s UFS2 datotečnim sustavom (UFS) stvorenim na njemu, na primjer,

$ montiranje /dev/ads0d /usr

montira datotečni sustav na navedenu particiju u /usr direktoriju korijena stabla datoteka. Ako datotečni sustav na uređaju nije kreiran ili je vrste koja nije UFS/UFS2, pojavit će se poruka o pogrešci koja ukazuje na netočan super blok: za razliku od istoimenog uslužnog programa Linuxa, sama naredba za montiranje FreeBSD-a ne može prepoznati datoteku tip sustava.

Sljedeći zahtjevi su nametnuti točki montiranja: a) direktorij s istim imenom mora postojati u vrijeme montiranja, i b) biti prazan što je više moguće. Prvo je obavezno, ali drugo nije sasvim točno. Montiranje u direktorij s bilo kojim datotekama proći će glatko (sjećam se da je u Linuxu ne tako davno to uzrokovalo pad sustava), ali će sav njegov sadržaj postati nedostupan dok se ne demontira. A ako datoteke koje sadrži igraju značajnu ulogu za bilo koji podsustav, to može uzrokovati razne loše posljedice. Na primjer, ako je sadržaj /tmp direktorija blokiran montiranjem datotečnog sustava tamo dok je X prozorski sustav bio pokrenut, rezultat bi vjerojatno bio pad X poslužitelja. Srećom, ako je potrebno, možete izvesti kombiniranu montažu (vidi dolje).

U navedenom obliku, montiranje će se izvršiti s nekim zadanim karakteristikama: datotečni sustav će se čitati/pisati u tzv. noasync (isti onaj u kojem se operacije metapodataka izvode sinkrono, a operacije podataka asinkrono). Ovaj položaj se može promijeniti pomoću vrijednosti opcije -o. Ima ih dosta, ali praktički glavni za nas u ovoj fazi bit će:

  • async - omogućit će potpuno asinkroni način rada (unatoč strašnim upozorenjima u prethodnim postovima, kasnije ću govoriti o situaciji kada bi to moglo biti opravdano);
  • sinkronizacija - naprotiv, omogućavanje potpuno sinkronog načina rada (iako ne razumijem zašto je to praktički potrebno);
  • noatime je vrlo korisna opcija koja sprječava ažuriranje atributa vremena zadnjeg pristupa datoteci, što uvelike poboljšava performanse;
  • rdonly - montira datotečni sustav u načinu rada samo za čitanje (ponekad je to potrebno);
  • union je ista opcija koja vam omogućuje izvođenje union mounta, u kojem prethodni sadržaj direktorija točke montiranja ostaje vidljiv; istina - uz neka ograničenja - vidi čovjek (8) mount .

Postoji nekoliko drugih vrijednosti opcije -o koje zabranjuju postavljanje određenih vrsta datoteka na montirani datotečni sustav, na primjer, izvršne datoteke (-o noexec), datoteke uređaja (-o nodev) ili datoteke s -pozvano. malo samoubojstva. Međutim, oni su od praktične važnosti uglavnom za administratore poslužitelja i služe u sigurnosne svrhe. Na stolnom računalu, uobičajeni oblik montiranja bio bi nešto poput ovoga:

$ montiranje -o noatime /dev/ads0d /usr; $ mount -o noatime /dev/ads0e /var; $ mount -o noatime /dev/ads0f /home

Sve gore navedeno odnosi se samo na montiranje FreeBSD datotečnih sustava. Međutim, u praksi često postoji potreba za uključivanjem drugih vrsta datotečnih sustava u njegovo stablo direktorija. Ovo je posebno često potrebno za ISO9660 (uobičajeni datotečni sustav za sve CD-ove osim za Mac) i FAT-ove raznih vrsta. U ovom slučaju, odgovarajuća naredba za montiranje mora biti pozvana eksplicitno, npr.

$ montiranje_cd9660 /dev/acd0 /cdrom

za montažu kompakta, odn

$ mount_msdosfs /dev/ad## /mnt

za FAT bilo koje vrste (uključujući FAT32).Međutim, to se može učiniti i neizravno navođenjem opcije -t file_system_type naredbe mount

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

montira Linux datotečni sustav (ako je odgovarajuća značajka uključena u kernel). U ovom slučaju, standardno montiranje za BSD particije jednostavno je zamijenjeno naredbom /mount_ext2fs, dizajniranom za montiranje ext2fs particija (i ext3fs također - ali, naravno, bez ikakvih funkcija vođenja dnevnika). Odnosno forma

$ mount -t fstype ... ...

bit će potpuni ekvivalent naredbe

$mount_fstype ... ...

Sve operacije za montiranje datotečnih sustava (uključujući prijenosne medije) u FreeBSD-u zahtijevaju prava superkorisnika. Vrijednosti opcije -o ovdje, za razliku od Linux verzije naredbe za montiranje, ne uključuju korisnički parametar -o, koji omogućuje montiranje običnim korisnicima. Istina, postoji nekoliko načina da se to zaobiđe, kao što je objašnjeno u posebnoj bilješci.

Postavljanje automatske montaže

Međutim, u praksi se ručnom montiranju pribjegava samo za rijetko korištene datotečne sustave. Svi datotečni sustavi koji su fundamentalno važni za funkcioniranje FreeBSD-a montiraju se automatski pri pokretanju sustava, a oni koji se često koriste montiraju se u poluautomatskom, da tako kažem, načinu rada.

Za automatsko montiranje, program za montiranje se pokreće tijekom procesa pokretanja iz skripti za inicijalizaciju. Traži svoju konfiguracijsku datoteku - /etc/fstab, i montira sve što pronađe u njoj, uz neke iznimke (o kojima se govori u nastavku).

Sama datoteka /etc/fstab generira se automatski kada se FreeBSD instalira, uključujući sve datotečne sustave potrebne za održavanje života. Međutim, u budućnosti se može uređivati ​​ručno kako bi se dodali novi uređaji za montažu ili dodatne opcije za već omogućene uređaje.

Datoteka /etc/fstab je jednostavna baza podataka u tekstualnom formatu (polja odvojena razmacima ili tabulatorima), uključujući sljedeća polja:

  • Uređaj - naziv datoteke uređaja na kojem se nalazi datotečni sustav, slično prvom argumentu naredbe montiranja kada se koristi ručno;
  • Mountpoint - točka montiranja (odgovara drugom argumentu naredbe montiranja);
  • FStype - tip datotečnog sustava, također naveden kao vrijednost opcije -t;
  • Opcije - dodatne mogućnosti montaže, slične vrijednostima opcije -o;
  • Dump - uvjeti za izvođenje sigurnosne kopije datotečnog sustava pomoću uslužnog programa dump;
  • Pass# - uvjeti za provjeru datotečnog sustava pomoću uslužnog programa fsck.

U svježe instaliranom FreeBSD-u /etc/fstab će nužno uključivati ​​sljedeće unose (primjer za 1. isječak glavnog diska na 1. IDE kanalu):

# Device Mountpoint FStype Options Dump Pass# /dev/ad0s1a / ufs rw 1 1 /dev/ad0s1b none swap sw 0 0

Ako slijedite savjete razumnih ljudi (i zadane postavke sysinstall) i odaberete neke grane datotečnog sustava iz korijena, unosi poput

/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

odgovoran za datotečni sustav s korisničkim matičnim imenicima.

Očito, u polje Opcije možete dodati sve dostupne (i razumne) vrijednosti opcije -o (odvojene zarezima, bez razmaka), na primjer, noatime za sve datotečne sustave, a za /tmp - također async , jer sadržaj ovog direktorija ne bi se trebao spremati nakon ponovnog pokretanja.

Gore navedeno se odnosi na datotečne sustave koji se automatski montiraju pri pokretanju. Međutim, nitko vam ne smeta da unosite podatke u /etc/fstab za sustave koji su povezani s vremena na vrijeme - u ovom slučaju oni se mogu montirati prema pojednostavljenoj shemi (to je ono što sam gore mislio pod poluautomatskim načinom rada). Dakle, za CD pogon možete dodati redak (zapravo, automatski se pojavljuje prilikom generiranja datoteke /etc/fstab ako je CD odabran kao instalacijski izvor u sysinstall)

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

u kojem opcije, kao što možete pretpostaviti, propisuju odbijanje montiranja pri pokretanju (noauto) i način rada samo za čitanje (ro). Nakon toga, za montiranje CD-a, bit će dovoljno navesti samo točku montiranja -

$mount/cdrom

ili. naprotiv, naziv datoteke uređaja

$ montirati /dev/acd0

Slični unosi mogu se napraviti za sve prijenosne pogone (Zip, USB pogone, čak i diskete) i za particije koje nisu BSD (FAT ili Ext2fs). Usput, možete montirati datotečne sustave koristeći pojednostavljenu shemu odmah nakon što napravite promjene u /etc/fstab, bez čekanja da se stroj ponovno pokrene.

Demontaža

Svi uključeni datotečni sustavi moraju biti demontirani prije isključivanja napajanja ili ponovnog pokretanja stroja. Nakon gracioznog isključivanja, to se radi automatski, što rezultira time da svaki datotečni sustav koji se može pisati prima čisti bit za demontažu zapisan u vlastiti superblok. Prisutnost ovog bita sprječava fsck uslužni program da provjeri konzistentnost sustava datoteka sljedeći put kada se sustav pokrene.

Međutim, u brojnim slučajevima (na primjer, kada se povezuje ili odspaja mehanizam Soft Updates ili radi provjere integriteta), postaje potrebno ručno demontirati (i ponovno montirati) datotečne sustave, za što se koristi naredba umount. Zahtijeva jedan argument - navođenje točke montiranja datotečnog sustava "uklonjenog" iz stabla direktorija, na primjer:

$umount/tmp

ili, kao u slučaju poluautomatske montaže, naziv datoteke uređaja za "gašenje":

$ umount /dev/ad#s#?

Možete demontirati više sustava datoteka jednim redom:

$ umount /usr /var /home

Ili možete - svi montirani datotečni sustavi ili svi datotečni sustavi navedeni u datoteci /etc/fstab (osim korijenskog), što će zahtijevati opcije

$umount -A

$ umount -a

odnosno. Također je moguće demontirati određene vrste datotečnih sustava navođenjem vrijednosti opcije -t. Da, tim

$ umount -t ufs

demontirat će samo BSD particije, bez utjecaja na CD i sve ostalo što je uključeno u sustav.

Datotečni sustavi ne bi smjeli biti u upotrebi u trenutku demontiranja, odnosno ne bi smio biti pristup datotekama koje se na njima nalaze. Dakle, biti u bilo kojem direktoriju datotečnog sustava dovoljan je razlog za odbijanje njegovog demontiranja (s porukom kao što je uređaj zauzet), zbog čega nijedna od gore navedenih naredbi neće moći demontirati korijenski datotečni sustav. Razlog za odbijanje demontaže bit će čitanje podatkovne datoteke bilo kojim programom - kao i kod brisanja datoteke, deskriptor datoteke otvoren bilo kojim procesom to neće dopustiti.

Međutim, također možete demontirati datotečni sustav koji koristite - da biste to učinili, morat ćete izdati naredbu umount s -f opcijom (from force - to jest, silom). Istina, to može dovesti do pogrešaka, pa je bolje ne pribjegavati tome osim ako je to apsolutno neophodno. A opcija prisilnog demontaže neće imati nikakav učinak na korijenski datotečni sustav.

Rasuti nosač

Za nastavak rada nakon izvođenja operacija niske razine na datotečnim sustavima, morat će se ponovno montirati. To se može učiniti ne samo bez ponovnog pokretanja, već i bez zamorne pojedinačne montaže. Samo upotrijebite opciju -a:

$mount -a

kroz koji će se montirati svi datotečni sustavi za koje postoje unosi u /etc/fstab. U tom slučaju pokušat će se montirati oni koji su označeni zastavom noauto. Da biste to izbjegli, možete dodatno definirati vrstu datotečnog sustava. Odnosno tim

$ montirati -a -t ufs

montirat će samo BSD particije, bez zadiranja u CD-ove ili flash diskove. Ili, naprotiv, možete isključiti iz globalnog procesa montiranja neke od datotečnih sustava navedenih u /etc/fstab, na primjer, trenutno nepotrebne FAT-ove:

$ montirati -a -t nomsdosfs

Preambula umjesto zaključka

Usput, naredba montiranja bez opcija i argumenata (iu ovom obliku, za razliku od svih gore navedenih slučajeva, može je dati običan korisnik) prikazat će popis trenutno montiranih datotečnih sustava koji označavaju točku montiranja, njezine uvjete i način rada. Na primjer, za stroj na kojem su napisani ovi redovi, izlaz će izgledati ovako:

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

Prvi redak izlaza pokazuje da je particija /dev/ad0s1a montirana u našem korijenskom direktoriju, nosi UFS datotečni sustav (konkretno u ovom slučaju - UFS2, ali u izlazu naredbe montiranja ne razlikuju se) s Soft Updates mehanizam omogućen, lokalni je (to jest, nalazi se na disku ovog stroja - mrežni pogoni se također montiraju s naredbom montiranja) i ne podliježe ažuriranju atributa atime.

$ više /etc/fstab /dev/ad0s1b ništa swap sw 0 0 /dev/ar0s1b ništa 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,noauto,noatime 0 0 / dev/md0 /tmp mfs rw,noatime,async,-s32m 2 0

tada ćemo vidjeti da jedan od izlaznih redaka

Devfs na /dev (devfs, lokalni)

Među njegovim zapisima uopće nema korespondencije. Koji su to uređaji i sustavi datoteka?

Otvaram seriju mini-priručnika "za one koji ne znaju koristiti pretragu i postavljaju glupa pitanja." Današnja tema je montiranje i demontaža diskova u FreeBSD-u.

Stoga želimo pristupiti podacima na dodatnom tvrdom disku ili flash disku. Da bismo to učinili, moramo ga spojiti (mountati) na prazan direktorij, nakon čega ćemo imati pristup podacima na ovom disku u mapi koju smo kreirali/ranije postojala. (VAŽNO: nemojte montirati disk u već zauzete direktorije, dobit ćete sadržaj vašeg diska, npr. umjesto sadržaja mape za konfiguracijske datoteke, razmislite o posljedicama za sebe;))

Prvo stvorite praznu mapu. Zamislimo da korisnik shitus želi spojiti disk na novi direktorij koji se zove pron. Da bi to učinio, stvara novu mapu unutar svog matičnog direktorija (vjerojatno najsigurnije mjesto).

Mkdir /home/shitus/pron Sljedeći korak je povezivanje tvrdog diska s točkom montiranja (upravo smo stvorili mapu). Sve uređaje na vašem sustavu možete pronaći u mapi /dev/. U mom slučaju, želim povezati svoj uređaj /dev/da2 s mapom /home/shitus/pron

Montirajte /dev/da2 /home/shitus/pron Sada možete vidjeti sadržaj vašeg diska u gornjem direktoriju.

Kako spojiti druge datotečne sustave koji nisu BSD

U mom slučaju imamo USB pogon s Fat32 datotečnim sustavom. Stoga, kada montirate na BSD, morate jasno naznačiti vrstu datotečnog sustava koji se koristi.

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

Za druge datotečne sustave možete pogledati dokumentaciju FreeBSD-a; neću dati poveznicu jer je Google sve.

Kako demontirati/demontirati datotečni sustav

Recimo da želite odspojiti/ukloniti povezani uređaj za datoteke. Za to može postojati mnogo razloga, uglavnom se to radi ako želite obrisati disk ili ga ponovno spojiti na drugu točku montiranja. Naredba je vrlo jednostavna -

Umontiraj /home/shitus/pron/

Uvjerite se da niste unutar ove mape dok izvodite ovu naredbu, inače će rezultat biti nula.

Ako želite montirati disk pri pokretanju sustava, tada ga morate registrirati u datoteci /etc/fstab na isti način kao oni koji su tamo već registrirani. O tome također možete pročitati više u dokumentaciji ili ću jednog dana o tome pisati po stoti put.

NTFS je izvorni datotečni sustav Windowsa. Stoga neće biti moguće jednostavno spojiti bljesak diskove, tvrde diskove ili druge nama nepoznate prijenosne medije (istina, radit će, ali bit će problema). Stoga izdajemo naš sveobuhvatni priručnik o ovom pitanju.


  1. Kao i uvijek, sve počinje s. Instalirajte upravljački program za NTFS: #cd /usr/ports/sysutils/fusefs-ntfs #make install clean
  2. Od FreeBSD 10, Fuse je dio kernela. Učitavamo pomoću sistemskih modula #nano /boot/loader.conf fuse_load="YES"

    Ovo će raditi nakon ponovnog pokretanja. U trenutnoj sesiji, ovaj modul ćemo učitati ručno

    #kldload osigurač

    Naredbom možete provjeriti je li modul učitan ili ne

    #kldstat

    Ako popis sadrži osigurač.ko, znači da je sve OK.

    #kldstat Id Refs Adresa Veličina Ime 1 3 0xffffffff80200000 1fa7c38 kernel 2 1 0xffffffff821a9000 1a7c8 fuse.ko

  3. Zatim moramo odlučiti kako sustav vidi flash pogon ili vanjski tvrdi disk: #dmesg | grep da

    Izlaz će biti nešto poput ovoga:

    Da0 na umass-sim0 sabirnici 0 scbus1 cilj 0 lun 0 da0: s/n 00H79BHRYGX22JBN odvojen (da0:umass-sim0:0:0:0): Perif uništen da0 na umass-sim0 sabirnici 0 scbus1 cilj 0 lun 0 da0: Removable Direct Access SPC-4 SCSI uređaj da0: Serijski broj 00H79BHRYGX22JBN da0: 40.000MB/s prijenosi da0: 14870MB (30453760 sektora od 512 bajta) da0: quirks=0x12 da1 na umass-sim1 sabirnica 1 scbus2 cilj 0 lun 0 da1: s/n 8968888304C9BB52 odvojen (da1:umass-sim1:1:0:0): Perif uništen da1 na umass-sim1 sabirnici 1 scbus2 cilj 0 lun 0 da1: Uklonjivi SCSI-2 uređaj s izravnim pristupom da1: serijski broj 8968888306C9BB52 da1: prijenosi 40.000MB/s da1: 1999MB (4093952 sektora od 512 bajta) da1: quirks=0x2

    Vidimo da u sustavu imamo dva flash pogona s identifikatorima da0 I da1. U našem primjeru koristit ćemo samo flash pogon da0.

  4. Montiramo ga sljedećom naredbom: ntfs-3g /dev/da0 /mnt

    /dev/da0- ovo je naš flash pogon, to smo saznali u točki 3.
    /mnt je točka montiranja. Ona može biti bilo tko.

    Ako se pojavi pogreška, montirajte particiju flash pogona. Nakon ulaska

    Ntfs-3g /dev/da0

    pritisnite TAB i pogledajte particije flash pogona

    Da0 da0s1

    I montiramo ovaj dio

    Ntfs-3g /dev/da0s1 /mnt

  5. Idemo u direktorij u koji smo montirali flash pogon i tamo vidimo njegov sadržaj: #cd /mnt #ll total 13 drwxrwxrwx 1 root wheel 0 4 Nov. 17:23 Informacije o glasnoći sustava/ -rwxrwxrwx 1 korijenski kotačić 9. 4. stud. 18:05 xxx.xxx* -rwxrwxrwx 1 korijenski kotač 22. stu. 18:04 ZIP arhiva - WinRAR.zip* -rwxrwxrwx 1 root wheel 9904 4. studeni 18:04 Microsoft Office Excel list.xlsx*

    Sada možete pisati datoteke na flash pogon i čitati ih s njega.

  6. Da bismo isključili flash pogon, prvo napuštamo direktorij u kojem je montiran. Na primjer, #cd /

    I nakon toga, upotrijebimo naredbu

    #umount /mnt

    imajte na umu da Argument nije flash pogon, već njegova točka montiranja!
    VAŽNO: Nemojte izvlačiti flash pogon odmah nakon unosa naredbe! Može se izvući tek nakon nekoliko sekundi, kada se na terminalu ponovno pojavi upit za unos!

Početna > Operativni sustavi > UNIX > BSD > FreeBSD

Dodajte tvrdi disk FreeBSD-u za 5 minuta

Često skrećem pozornost na činjenicu da su jednostavna pitanja često slabo obrađena na internetu. To je vjerojatno zato što su svi gurui sigurni da nitko nikada neće postavljati takva glupa pitanja, jer svi to znaju. Ali moja praksa je pokazala da su ova mala jednostavna pitanja najčešća ne samo među početnicima, već i među ozbiljnim administratorima koji se jednostavno nisu morali baviti time. Čak ni ozbiljni administratori to ne rade svaki dan, ali, da se ne zaboravi, čuvaju nekakvu varalicu za sebe, a da to nikome ne priznaju. Popravimo sve. Sada ćete naučiti kako dodati tvrdi disk u FreeBSD u 5 minuta. Tako. Prvo će biti dane potpune upute za razumijevanje procesa, a na kraju će biti kratak popis radnji, koji će sadržavati samo popis naredbi kao varalicu.

Detaljne upute s objašnjenjima

Odabir naziva tvrdog diska

Prvo moramo odrediti naziv uređaja koji smo upravo dodali. U tome će nam pomoći sljedeća naredba:

Popis Geom diskova

Ili ova naredba:

Camcontrol devlist

U stvarnom sustavu, ove naredbe će prikazati korisnije informacije, naime nazive uređaja i serijske brojeve.

Prije instaliranja novog uređaja znali smo da je naš sustav instaliran na ada0, što znači, logično, da je naš novi disk ada1. To možete odrediti prema nazivu novog uređaja, njegovom serijskom broju ili volumenu.

Sada provjerimo postoji li oznaka na našem novom disku

Gpart prikaži ada1

Disk nema nikakvih oznaka.

Uklanjanje postojeće oznake

Ako je disk već korišten i potrebno je ukloniti oznake s njega, jednostavno pokrenite:

Gpart uništi -F ada1

Stvaranje GPT oznake

Prvo moramo napraviti particiju diska. Toplo preporučujem da zaboravite na MBR i prijeđete na novi, praktičniji i funkcionalniji - GPT.

Stvaramo GPT oznake na disku, a zatim provjeravamo što se događa:

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

Sada naš disk ima GPT particioniranje. Iz izlaza možete vidjeti da je apsolutno cijeli disk, počevši od LBA 34 i završavajući s LBA 8388541, prazan. LBA 0-33 - sustav rezervira za pregradnu tablicu.

Recimo da trebamo napraviti dvije particije na ovom disku:

  • zamijeniti- swap particija
  • podaci- odjeljak tipa ufs za pohranjivanje podataka koji su nam potrebni.

Stvaranje odjeljaka (odsječaka)

Ako se instalacija provodi na modernim tvrdim diskovima s veličinom sektora od 4 KB, tada se prilikom izrade particija mora koristiti poravnanje. To možete učiniti na dva načina:
1) ako specificiramo parametre odjeljka u blokovima, tada unesite broj bloka kao višekratnik broja 8, na primjer: -b 40;
2) ako navedemo veličinu particije u bajtovima ili uopće ne navedemo početak i veličinu, koristimo parametar - 4k, koji će početak i kraj odjeljka prilagoditi sektorima veličine 4 kb. Budući da u ovom primjeru izvodimo probnu instalaciju na virtualni tvrdi disk, ne moramo to učiniti. U svakom slučaju, prije stvaranja particija, morate točno znati veličinu sektora vašeg pogona, inače će to rezultirati užasnim usporavanjem rada.

Sada napravimo particije. Da biste to učinili, postoji naredba gpart add s različitim parametrima. Prvi parametar -t- označava vrstu datotečnog sustava koji se stvara. U našem slučaju koristit će se dvije vrste: freebsd-swap i freebsd-ufs. Slijede dva izborna parametra: -b- označava LBA broj iz kojeg je potrebno kreirati particiju. Ako ne navedete ovaj parametar, particija će se automatski kreirati iz prvog slobodnog LBA. -s- označava veličinu particije u LBA. Veličina jednog LBA bloka = 512 bajtova. Preporučljivo je navesti u broju LBA blokova, ali je moguće i u kilo/mega/giga/… bajtovima (sufiks k/M/G). Ako ne navedete ovaj parametar, particija će biti kreirana na maksimalni mogući LBA unutar praznog područja. Također možete navesti oznaku odjeljka kao parametar, na primjer: - mijenjam1- u ovom slučaju će se stvoriti oznaka /dev/gpt/swap1, koja se može koristiti za praktičniji pristup particiji. Zadnji traženi parametar je put do diska. U našem slučaju: /dev/ada1.

Kreirajmo dvije particije i onda vidimo što imamo. Napravit ćemo prvu particiju bez navođenja početnog LBA, ali navodeći veličinu od 1 GB (2097152 blokova). Drugu particiju napravit ćemo bez navođenja početnog LBA i bez navođenja veličine – dakle ona će biti kreirana na cijelom slobodnom prostoru.

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

Veličina se može odrediti u bajtovima, a ne u blokovima. Mnogo je praktičnije. Jedini nedostatak je da sustav ne može uvijek ispravno izračunati broj blokova. Mogući su slučajevi kada će određeni broj blokova ostati prazan na disku kada se odredi veličina particije u bajtovima.

Izrada datotečnog sustava (formatiranje)

Nema potrebe za formatiranjem swap particija. Ali particije poput ufs moraju se formatirati prije upotrebe. Ispravnije bi bilo reći: na njima treba napraviti datotečni sustav.

Kako biste kreirali datotečni sustav na drugoj particiji, samo pokrenite sljedeću naredbu:

Newfs -U /dev/ada1p2

U ovom slučaju korišten je parametar -U - on označava da se u ovom datotečnom sustavu treba koristiti mehanizam Soft Updates. Možete izostaviti ovu opciju kako biste izbjegli omogućavanje ovog mehanizma.

Montaža

Sljedeći korak je montiranje particija. Prvo, da ne zaboravimo, dodajmo naše nove odjeljke u /etc/fstab. Moja datoteka nakon uređivanja izgleda ovako:

Kako biste ponovno montirali sve particije prema datoteci /etc/fstab, jednostavno pokrenite naredbu:

Brdo -a

Kao što možete vidjeti iz izlaza, /dev/ada1p2 particija je montirana. Sada da vidimo što se dogodilo sa SWAP odjeljkom. Pokrenimo naredbu:

Kao što vidite, nova SWAP particija nije montirana. Da bi se SWAP montirao potrebno ga je omogućiti posebnom naredbom:

Zamijeni /dev/ada1p1

Na isti način, korištenjem naredbe swapoff, trebate onemogućiti SWAP particiju prije izvođenja bilo kakvih radnji na njoj.

Time su dovršeni svi koraci za dodavanje novog tvrdog diska u sustav.

Kratke upute

S obzirom: tvrdi disk /dev/ada1

Cilj: Izbrišite postojeću particiju, napravite novu GPT particiju, napravite dvije particije: swap i data i povežite ih s radnim sustavom.

Nakon svake akcije, učinite gpart show promatrati rezultat. Redoslijed:

  1. Ukloni postojeće oznake:
    gpart uništi -F ada1
  2. Stvorite novu oznaku:
    gpart create -s gpt /dev/ada1
  3. Napravite dvije particije: swap i data:
    gpart add -t freebsd-swap -s 2097152 /dev/ada1 gpart add -t freebsd-ufs /dev/ada1
  4. Stvorite datotečni sustav UFSv2 na drugom dijelu:
    newfs -U /dev/ada1p2
  5. Dodajte retke u datoteku /etc/fstab za automatsko montiranje pri dizanju sustava:
    /dev/ada1p1 ništa swap sw 0 0 /dev/ada1p2 /mnt ufs rw 2 2
  6. Montirajte novu particiju (naredba montira sve particije iz /etc/fstab datoteke):
    montirati -a
  7. Omogućite novu swap particiju naredbom:
    swapon /dev/ada1p1 Materijal preuzet sa stranice:



Vrh