Come configurare smartphone e PC. Portale informativo

FreeBSD: partizionamento manuale del disco.

Installazione di FreeBSD 10 in un paio di minuti (installazione passo passo)

FreeBSD è un sistema operativo gratuito. Modifica moderna di UNIX. Uno dei più sistemi affidabili, ottimo per l'amministrazione rete locale come server di accesso, server di posta, file server, server dei nomi e il resto. Non per niente Mac OS è stato creato sulla sua base nel tempo. È anche possibile installare una shell grafica o utilizzare una soluzione già pronta del progetto PCBSD.

1. Scelta di un kit di distribuzione, preparazione supporti di installazione
2. Iniziare l'installazione, partizionare il disco
3. Selezione e installazione dei componenti

FreeBSD prima di tutto sistema di rete e per la prestazione migliore manca (di default) shell grafica... L'intero scopo di lavorare in questo sistema si riduce all'editing file richiesti, installazione di software, abilitazione di funzionalità e una serie di comandi.

E quando personalizzi il sistema in base alle tue esigenze, non ti deluderà. Personalmente, nel processo di lavoro con esso (2 anni), non ho osservato guasti, problemi tecnici e carico sull'attrezzatura.

Scelta di un kit di distribuzione, preparazione dei supporti di installazione

Sul sito ufficiale è possibile selezionare la versione del sistema operativo, bitness e piattaforma (amd64, i386, powerpc, sparc)

Dopo aver selezionato la piattaforma, si aprirà un elenco di opzioni di installazione (CD, DVD, Server FTP, MS DOS, floppy disk e persino nastri magnetici).

Certo, è meglio non "suonare con un tamburello" e scaricare il kit di distribuzione per dischi CD o DVD e masterizzare il disco di installazione utilizzando programmi: Alcohol120%, UltraISO o qualsiasi altro programma di registrazione disco di installazione.

Inizio dell'installazione, partizionamento del disco

Avvia dal disco di installazione e avvia il menu del caricatore di avvio di FreeBSD. Puoi aspettare 10 secondi per avvio automatico programma di installazione o fare clic su accedere o 1.

Lo schermo visualizzerà molte righe di apparecchiature specifiche. Puoi visualizzarlo facendo clic sul pulsante Blocco scorrimento , scorri le pagine con i pulsanti PagSu e PagGiù.

Dopo aver identificato e testato l'hardware, apparirà una schermata di benvenuto per l'installazione di FreeBSD. Spingere Installare


Nella finestra per la scelta di un layout di tastiera, lasciare l'impostazione predefinita o selezionare un layout adatto.



documento- documentazione di sistema

Giochi- Giochi

porti- porte per l'installazione di programmi

src- il cuore del sistema

Di solito lascio solo src, poiché non ho bisogno di documentazione, anche giochi, installeremo e aggiorneremo le porte dopo aver installato il sistema, poiché l'assembly più recente viene aggiornato tramite Internet. Il kernel può essere installato anche in un secondo momento.


Decidiamo le fette (le cosiddette partizioni in FreeBSD) del disco rigido. Possiamo scegliere l'opzione per creare automaticamente le partizioni o creare le partizioni di cui abbiamo bisogno noi stessi.


L'editor di sezione ha creato automaticamente tre aree:

ada0p1 512KB freebsd-boot- area bootloader. Basta così, non di più

ada0p2 19GB freebsd-ufs /- la partizione di root del sistema operativo. Tutto lo spazio rimanente per il sistema e i file con cui lavorerai. Necessita infatti solo di 1GB di memoria, con la condizione che verranno create altre partizioni e solo su di esse si lavorerà.

Per gli esperti:È consuetudine creare altre partizioni oltre a una partizione di root:

/ varia- contiene file, registri temporanei e in continua evoluzione.

/ usr- contiene file con programmi installati e il resto.

/ dati- in questa sezione avevo i file del sito, per esempio.

ada0p3 1.0GB freebsd-swap nessuno- scambia file. La sua dimensione dipende dalla quantità di RAM. Se non è sufficiente, diciamo 1 GB, è consigliabile impostare il file di paging due volte più grande. Se c'è molta RAM, il file di paging può essere impostato uguale alla quantità di RAM, o anche meno.


premi il bottone Fine, confermiamo le modifiche accettate Commettere e inizia l'installazione del sistema FreeBSD.


Dopo l'installazione, viene richiesto di inserire la password due volte. I caratteri inseriti non vengono visualizzati.


Selezione e installazione dei componenti

Successivamente, si propone di configurare la/e scheda/e di rete per accedere alla rete. A differenza di Linux, dove any Scheda LAN chiamato eth, v Rete FreeBSD la carta può avere un nome diverso, a seconda del produttore.


Scegliamo la versione del protocollo Internet, la quarta versione di IPv4 o la sesta versione di IPv6. Quindi si configura la rete tramite DHCP o si registra l'indirizzo IP, la subnet mask e il gateway.


Impostiamo l'ora in base all'ora della macchina locale o scegliamo il nostro fuso orario.


Seleziona i servizi da avviare all'avvio di FreeBSD. Lascia come predefinito.


Puoi aggiungere altri utenti, assegnare loro i diritti e le loro directory. Puoi fare tutto questo in seguito.


L'installazione è in fase di completamento ed è possibile riconfigurare o modificare alcuni parametri prima del completamento.

Attiro spesso la vostra attenzione sul fatto che le domande semplici sono spesso scarsamente trattate su Internet. Questo è probabilmente perché tutti i guru sono sicuri che nessuno lo chiederà mai domande stupide, perché lo sanno tutti. Ma la mia pratica ha dimostrato che sono proprio domande così piccole e semplici che sono più frequenti non solo per i principianti, ma anche per gli amministratori seri che semplicemente non hanno avuto a che fare con questo. Anche gli amministratori seri non lo fanno tutti i giorni e, per non dimenticare, tengono per sé una specie di foglietto illustrativo, senza ammetterlo a nessuno. Risolviamo questo. Ora imparerai come aggiungere disco fisso in FreeBSD. Così. Innanzitutto, ci sarà un'istruzione completa per comprendere il processo e alla fine ci sarà un breve elenco di azioni, che conterrà solo un elenco di comandi come un cheat sheet.

Istruzioni dettagliate con spiegazioni

Scelta di un nome per il disco rigido

Innanzitutto, dobbiamo definire il nome del dispositivo che abbiamo appena aggiunto. Il seguente comando ci aiuterà in questo:

Elenco dei dischi Geom

Oppure un comando come questo:

Elenco sviluppatori Camcontrol

In un sistema reale, questi comandi mostreranno di più informazioni utili, ovvero: nomi dei dispositivi e relativi numeri di serie.

Prima di installare un nuovo dispositivo, sapevamo che il nostro sistema era installato su ada0, il che significa che, secondo la logica delle cose, il nostro nuovo disco ada1. Puoi identificarlo con il nome del nuovo dispositivo, il suo numero di serie o volume.

Ora controlliamo se c'è markup sul nostro nuovo disco

Gpart mostra ada1

Il disco non ha markup.

Rimozione del markup esistente

Se il disco è già stato utilizzato ed è necessario rimuovere il partizionamento da esso, è sufficiente eseguire:

Gpart distruggere -F ada1

Generazione di markup GPT

Per prima cosa, dobbiamo creare un layout del disco. Consiglio vivamente di dimenticare MBR e passare a uno nuovo, più conveniente e funzionale: GPT.

Crea una partizione GPT su disco, quindi controlla cosa è successo:

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

Ora il nostro disco è GPT. Dall'output, puoi vedere che l'intero disco, che inizia con LBA 34 e termina con LBA 8388541, è vuoto. LBA 0-33 - Riservato dal sistema per la tabella delle partizioni.

Diciamo che dobbiamo creare due partizioni su questo disco:

  • scambio- partizione di scambio
  • dati- una sezione di tipo ufs per memorizzare tutti i dati di cui abbiamo bisogno.

Creazione di sezioni (sezioni)

Se l'installazione viene eseguita su un moderno dischi fissi, per cui la dimensione del settore = 4 kb, quindi l'allineamento deve essere utilizzato durante la creazione di partizioni (partizioni). Puoi farlo in due modi: 1) se indichiamo i parametri della sezione in blocchi, quindi inserisci il numero del blocco in multipli di 8, ad esempio: -b 40; 2) se specifichiamo la dimensione della sezione in byte, o non specifichiamo affatto l'inizio e la dimensione, usa il parametro -a 4k, che adatterà l'inizio e la fine della partizione a settori da 4 kb. Dal momento che siamo in questo esempio facciamo un'installazione di prova su virtuale duro disco, non è necessario farlo. In ogni caso, prima di creare partizioni, devi conoscere esattamente la dimensione del settore del tuo disco, altrimenti si tradurrà in terribili freni nel lavoro.

Ora creiamo le partizioni. Per questo c'è un comando gpart add con vari parametri. Primo parametro -T- indica il tipo di filesystem che si sta creando. Nel nostro caso verranno utilizzati due tipi: freebsd-swap e freebsd-ufs. Poi ce ne sono due parametri opzionali: -B- indica il numero LBA, a partire dal quale si vuole creare la sezione. Se non specifichi questo parametro, quindi la partizione verrà creata automaticamente dal primo LBA gratuito. -S- indica la dimensione della partizione in LBA. La dimensione di un blocco LBA = 512 byte. È desiderabile indicare nel numero di blocchi LBA, ma è anche possibile in kilo / mega / giga / ... byte (suffisso k / M / G). Se non si specifica questo parametro, la sezione verrà creata fino al massimo LBA possibile all'interno dell'area vuota. È inoltre possibile specificare un'etichetta di sezione come parametro, ad esempio: -l scambia1- in questo caso verrà creata la label /dev/gpt/swap1, con la quale si potrà accedere più comodamente alla partizione. L'ultimo parametro richiestoè il percorso del disco. Nel nostro caso: /dev/ada1.

Creiamo due sezioni e poi vediamo cosa otteniamo. Creeremo la prima partizione senza specificare l'LBA iniziale, ma specificando la dimensione di 1 GB (2097152 blocchi). Creeremo la seconda sezione senza specificare l'LBA iniziale e senza specificare la dimensione: in questo modo verrà creata sull'intero spazio libero.

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

La dimensione può essere specificata in byte, non in blocchi. È molto più conveniente. L'unico inconveniente è che il sistema non può sempre calcolare correttamente il numero di blocchi. Ci possono essere casi in cui un certo numero di blocchi rimarrà vuoto sul disco quando si specifica la dimensione della partizione in byte.

Creazione del file system (formattazione)

Non è necessario formattare le partizioni di swap. Ma le partizioni come ufs devono essere formattate prima dell'uso. Sarebbe più corretto dire: su di essi deve essere creato un file system.

Per creare un file system sulla seconda partizione, basta eseguire il seguente comando:

Newfs -U / dev / ada1p2

In questo caso, è stato utilizzato il parametro -U - dice che il meccanismo di Soft Updates dovrebbe essere usato in questo file system. Puoi scegliere di non utilizzare questo parametro per non abilitare questo meccanismo.

Montaggio

Il prossimo passo è montare le partizioni. Innanzitutto, per non dimenticare, aggiungiamo le nostre nuove partizioni a / etc / fstab. Il mio file ha questo aspetto dopo la modifica:

Per rimontare tutte le partizioni in base al file /etc/fstab, eseguire semplicemente il comando:

Monte -a

Come puoi vedere dall'output, la partizione / dev / ada1p2 è montata. Ora vediamo cosa è successo alla sezione SWAP. Eseguiamo il comando:

Come visto, nuova sezione SWAP non è montato. Per montare SWAP, devi abilitarlo con un comando speciale:

Swapon / dev / ada1p1

Allo stesso modo, è necessario disabilitare la sezione SWAP utilizzando il comando swapoff prima di intraprendere qualsiasi azione su di essa.

Questo è tutto per aggiungerne uno nuovo. disco rigido nel sistema sono completati.

Breve istruzione

Dato: disco rigido / dev / ada1

Obbiettivo: elimina il markup esistente, crea nuovo markup GPT, crea due partizioni: swap e data e collegale al sistema di produzione.

Dopo ogni passaggio, fai spettacolo gpart per vedere il risultato. Sequenziamento:

  1. Rimuovi il markup esistente: gpart destroy -F ada1
  2. Crea nuovo markup: gpart create -s gpt / dev / ada1
  3. Crea due partizioni: swap e data: gpart add -t freebsd-swap -s 2097152 / dev / ada1 gpart add -t freebsd-ufs / dev / ada1
  4. Crea filesystem UFSv2 sulla seconda partizione: newfs -U / dev / ada1p2
  5. Aggiungi righe al file / etc / fstab per il montaggio automatico all'avvio: / dev / ada1p1 nessuno swap sw 0 0 / dev / ada1p2 / mnt ufs rw 2 2
  6. Monta una nuova partizione (il comando monta tutte le partizioni dal file /etc/fstab): mount -a
  7. Abilita la nuova partizione di swap con il comando: swapon / dev / ada1p1

Questo completa la configurazione.

Questo articolo si concentrerà sul partizionamento dei dischi rigidi, ovvero i dischi rigidi, manualmente, senza l'aiuto del programma sysinstall. La necessità di questo non si presenta così spesso, ma si presenta. E per educazione generaleè utile eseguire tale operazione almeno una volta nella vita.

Come sai, i dischi sono generalmente divisi in partizioni (partizioni in termini di DOS / Windows e Linux). Ma anche qui FreeBSD ha un approccio originale. Per capirlo, devi prima dire

Un po' di "geometria"

La parola "geometria" nell'intestazione del titolo è racchiusa tra virgolette per un motivo. Il fatto è che poiché il volume dei dischi ha superato i 500 megabyte (il limite del vecchio BIOS dei personal computer, precedentemente chiamati computer compatibili con IBM), l'utente non ha mai incontrato la loro vera geometria. Il software integrato nell'elettronica del disco (il cosiddetto firmware) lo converte in una forma accessibile al BIOS - non mi soffermerò sui dettagli di come ciò avvenga esattamente a causa dell'incompetenza (e quasi nessuno, tranne i produttori di dischi, conosce bene questi dettagli).

E la geometria del disco disponibile dal BIOS è descritta in termini di cilindro / testata / settore (cilindri / teste / settori, C / H / S). In senso figurato (e, ripeto, tutto ciò che riguarda la geometria del disco dovrebbe ora essere inteso esclusivamente in senso figurato, allegoristico o metaforico), le testine leggono informazioni da piste magnetiche concentriche, in cui è suddiviso ogni piatto del disco. Un insieme verticale di tracce con gli stessi numeri su tutte le piastre che compongono il disco come dispositivo fisico, e forma un cilindro. E i settori tagliano la lastra, insieme alle sue tracce, in frammenti radiali chiamati blocchi. Cioè, si può immaginare in modo tale che il blocco si trovi all'intersezione (nello spazio) del cilindro, binario e settore.

Il numero di tracce e settori nei dischi moderni è solitamente fisso (o meglio, appare come tale nel BIOS): 255 tracce vengono tagliate in 63 settori ciascuna, che in totale danno 16065 blocchi per cilindro. E il numero di cilindri è determinato dal volume del disco (non entrerò in calcoli aritmetici). L'unica cosa importante qui è che le testine del disco si muovano meccanicamente in modo sincrono sulla superficie di tutte le piastre. Cioè, se le informazioni su una piastra vengono lette dalla prima traccia, tutte le altre teste si spostano sulla stessa traccia, ciascuna sulla propria piastra.

Ripeto, tutto questo è condizionale - se non altro perché il concetto di cilindro nel senso geometrico della parola è molto difficile da applicare a dischi moderni, spesso non tanto come monolastra, ma anche, se così posso dire, semilastra (cioè con un solo lato di una sola lastra coinvolta). Ma affrontare questa geometria è una questione di firmware e BIOS, per noi sono i cilindri che interessano - l'insieme di tracce a cui viene effettuato l'accesso sincrono e i blocchi - i quanti minimi spazio sul disco.

Le tracce che formano i cilindri vengono create durante il layout del disco di fabbrica iniziale, il cosiddetto. formattazione di basso livello. Da quanto sopra, è ovvio che l'accesso ai dati all'interno di un cilindro o di un gruppo di cilindri vicini verrà eseguito più velocemente dei dati scritti parzialmente nel primo e, ad esempio, nell'ultimo cilindro del disco. Questo caso non è così incredibile come potrebbe sembrare: in DOS, dove lo spazio occupato da file cancellati, è contrassegnato come non utilizzato, ma in realtà viene sovrascritto solo quando lo spazio libero reale sul disco è completamente esaurito, una situazione del genere potrebbe benissimo verificarsi.

Quindi, al fine di ridurre al minimo la probabilità che i dati vengano diffusi su cilindri disgiunti, sono state inventate le partizioni del disco (o meglio, anche per questo - l'allocazione delle partizioni del disco persegue molti altri scopi). Un gruppo di cilindri adiacenti viene combinato in un'unica sezione.

Dove finisce una sezione e ne inizia un'altra? Le persone ragionevoli di Odessa direbbero che una sezione finisce esattamente dove inizia la seconda. Tuttavia, è ovvio per noi che per ciascuna delle sezioni è necessario memorizzare informazioni sul suo inizio e fine (cioè i numeri del primo e dell'ultimo dei cilindri coinvolti in essa). Dove conservarli? Per rispondere a questa domanda si dovrebbe fare riferimento al concetto di blocco.

Come le tracce, i blocchi del disco (o quelli fisici - ci sono anche blocchi logici, ma questo vale per i file system, di cui parleremo più avanti) sono creati con una formattazione di basso livello e l'utente (quasi) non può influenzarli. Anche la loro dimensione è sempre la stessa e pari a 512 byte. Piuttosto, questo è il modo in cui viene visto dal BIOS "di un personal computer - ciò che è veramente, solo Allah lo sa.

Tuttavia, il fatto che lo scambio di dati con un disco sia possibile in porzioni di almeno 512 byte è una realtà oggettiva, così come il fatto che qualsiasi, non importa quanto piccola, quantità di informazioni registrate su di esso occuperà un intero blocco - indipendentemente dalle sue dimensioni effettive. Cioè, piccoli file di testo di un paio di caratteri (cioè byte) richiedono ancora fino a 512 byte per se stessi, non meno (in effetti, anche di più, ma la prossima volta ne parleremo di più). D'altra parte, la lettura dei dati in blocchi di 512 byte sarà più veloce che se ogni volta che la testina accede al disco, i dati sono stati letti a byte. Tuttavia, questo vale anche per il tema dei file system.

Nel frattempo ci interessa un blocco unico formato dal primo settore sul primo binario del primo cilindro. È riservato all'area di servizio del disco, chiamata main record di avvio(MBR - Master Boot Recodr), che viene letto dal BIOS all'avvio della macchina.Ovviamente, per lo scopo previsto, l'MBR viene utilizzato solo se il disco è definito nel BIOS di Setup come avviabile (o è semplicemente l'unico uno nel sistema Tuttavia, poiché l'uso di ogni particolare disco è a discrezione dell'utente, c'è sempre spazio per esso.

All'interno del blocco zero, tra l'altro (in particolare il codice di qualche bootloader che vi può essere scritto), c'è sicuramente una sezione riservata. È destinato alla "Tabella delle partizioni" del BIOS, per la quale da tempo immemorabile (dal primo PC IBM, a quanto pare) sono stati allocati 64 byte accessibili alla comprensione del formato "a," del BIOS.

E questo formato prevede un'indicazione per ogni sezione del suo blocco di partenza, dimensione in byte, un identificatore del tipo di file system (questo, contrariamente al nome, non è affatto uguale al file system, di cui parleremo in sezione successiva) e (solo per una delle sezioni) un flag di attività (ovvero, marcatura questa sezione come avviabile). Quest'ultimo è necessario per alcuni sistemi operativi come DOS, sebbene FreeBSD o, ad esempio, Linux "sia profondamente indifferente a questo flag.

La quantità totale di informazioni necessarie per descrivere la partizione del disco viene eseguita su 16 byte. E poiché, come ricordiamo, solo 64 sono allocati per l'intera tabella delle partizioni di questi byte, senza una calcolatrice puoi calcolarlo importo limite partizioni sul disco - 4. Queste partizioni sono chiamate primarie o, non esattamente, fisiche. Poiché nella maggior parte dei casi tali partizioni possono anche essere divise in parti - partizioni logiche (che verranno discusse in seguito).

Ripeterò ancora una volta: questo vale solo per le macchine con BIOS del PC, ovvero i normali personal computer. In tutti i tipi di PowerPC, Sparc "ah e stazioni simili, tutto può essere completamente diverso (anche se, a dire il vero, non so esattamente come).

Come puoi vedere, la descrizione della sezione include l'identificatore del file system. Questo è un numero (di solito in decimale in FreeBSD, in Linux "e, per esempio, in esadecimale), che viene assegnato al file system del sistema operativo da posizionare sul disco. Ad esempio, la partizione destinata a FreeBSD ha l'identificatore 165 (decimale) o A5, partizione per Linux (nativo Linux) - 131 (o 83), FAT16 - 6, partizione estesa (cosiddetta DOS Extended) - 5, e così via.

Assegnare un identificatore a una partizione non significa che il file system corrispondente appaia magicamente su di essa. No, predetermina semplicemente quale tipo di tabella delle partizioni secondaria può essere scritta su di essa (sebbene questo non sia del tutto vero - e in alcuni casi non lo è). Ma qui passiamo alla conversazione

A proposito di fette

Quindi, il corollario ha stabilito che su uno disco fisicoè possibile creare fino a 4 partizioni (incluse), ognuna delle quali può essere assegnata a un sistema operativo separato. Qual è il prossimo? E poi dovresti studiare il problema degli stili di markup delle sezioni.

Gli stili di marcatura della sezione sono denominati Etichetta del disco, che non deve essere confuso con le etichette del disco: nomi arbitrari che in DOS (e non solo) possono essere assegnati a una partizione del disco. Gli stili di markup sono il formato della tabella delle partizioni secondaria scritta nel primo blocco della partizione primaria. Questa tabella determina anche la natura delle azioni disponibili su questa sezione primaria.

Gli utenti Windows (e nella maggior parte dei casi anche Linux) di solito non hanno motivo di pensare al problema degli stili di markup. Tuttavia, ci sono molti di questi stili: per esserne sicuri, vai al menu di configurazione Kernel Linux, nella sottosezione Tipi di partizione sezione File system... Tuttavia, di tutta questa abbondanza, saremo interessati solo a due stili: DOS e BSD.

DOS/Windows usano (sorprendentemente) il partizionamento in stile DOS. Si basa su una tabella BIOS che è solo parzialmente coinvolta. Vale a dire, delle quattro voci disponibili nella tabella delle partizioni, solo due sono riempite (o meglio, solo due partizioni possono essere create usando lo standard FDISK da DOS / Windows9X / ME; solo non so come stanno le cose in NT / 2000 / XP ).

Nella voce per la prima partizione, è possibile specificare un identificatore per il tipo di file system (ad esempio, FAT16 o FAT32), mentre alla seconda partizione viene assegnato automaticamente un identificatore di tipo DOS esteso. E la sezione estesa può essere ulteriormente suddivisa in partizioni logiche. Tuttavia, questo non ci interessa ora e la struttura della partizione estesa e delle partizioni logiche è stata descritta molte volte in essa.

Linux utilizza anche il markup in stile DOS. Solo qui la tabella del BIOS è completamente utilizzata - con i mezzi standard di questo sistema operativo (ad esempio, fdisk o cfdisk), puoi creare tutte e quattro le partizioni primarie e usarle per il tuo piacere. tuttavia, ancora una volta, solo una di esse può essere dichiarata estesa e, di conseguenza, suddivisa in sezioni logiche.

Lo stile dell'etichetta BSD utilizzato da FreeBSD, DragonFlyBSD, Net- e OpenBSD e BSD / OS sembra completamente diverso. Qui può essere utilizzata anche una tabella BIOS, la cui compilazione creerà quattro partizioni primarie. Sono chiamate sezioni nella terminologia FreeBSD per distinguerle dalle partizioni BSD. Le sezioni nella nomenclatura del file del dispositivo sono contrassegnate aggiungendo s al nome del file dell'unità e numero di serie(al contrario dei dischi che iniziano da uno), ad esempio: ad0s1, ad0s2, ad0s3, ad0s4 per il disco master sul primo canale IDE.

Se a una o più fette viene assegnato un identificatore di sistema BSD - 165 in decimale (in senso stretto, si chiama 4.2BSD ed è caratteristico anche di DragonFlyBSD e NetBSD - anche se teoricamente quest'ultimo, come OpenBSD, ha entrambi proprio numero identificatore di sezione), quindi la tabella delle sezioni BSD (etichetta BSD) stessa verrà scritta nel suo blocco iniziale. In accordo con il suo formato, ogni slice con ID 165 è assolutamente uguale e può essere divisa in partizioni logiche (in realtà partizioni, nella terminologia di FreeBSD).

Ci sono otto voci per le partizioni nella tabella BSD. Le sezioni ad esse corrispondenti sono nomenclature contrassegnate dall'aggiunta di lettere al nome del file della fetta - dalla a alla h. È vero, in DragonFlyBSD questa limitazione viene aggirata e una fetta può contenere fino a 16 partizioni logiche.

In realtà, non tutte le partizioni in una fetta possono essere utilizzate per ospitare i filesystem. Per cominciare, uno dei record (il terzo di fila, contrassegnato dalla lettera c) è riservato per descrivere l'intera fetta nel suo insieme, ad esempio ad0s1c, la cui necessità sarà chiara in seguito. Inoltre, la prima voce della tabella corrispondente alla quale il file del dispositivo è contrassegnato come ad # s # a viene utilizzata per descrivere la partizione radice del file system. Ed è ovvio che su uno specifico macchina locale può esserci una sola partizione root, indipendentemente dal numero di slice e dischi fisici.

Infine, la seconda voce (file dispositivo - ad # s # b) ha il solo scopo di descrivere la partizione di swap (partizione di swap), che, in primo luogo, non può contenere dati, e in secondo luogo, è l'unica per l'intero disco (chiaramente , che è inutile creare una partizione di swap in ogni slice, anche se se ci sono due dischi fisici, è una buona idea dividere lo spazio di swap tra di loro).

Solitamente, la creazione di slice è finalizzata a posizionare più di un sistema operativo sul disco e preservare la capacità di scambiare dati tra di loro (in teoria, puoi accedere alle partizioni BSD da Linux "ma se ricostruisci il suo kernel correttamente; sebbene la procedura opposta è accedere a una partizione ext2fs da FreeBSD , è molto più semplice).

Se si prevede che l'intero disco disponibile venga distrutto da FreeBSD, di solito viene creata una singola fetta per (quasi) l'intero volume, lasciando inutilizzate le voci nella tabella del BIOS per il resto. Sette posizioni nella tabella BSD sono sufficienti per isolare i rami del file system come / usr, / tmp, / var e / home — più o meno il metodo di partizionamento predefinito di sysinstall.

Ovviamente, in alcuni casi, il numero predefinito di partizioni che possono essere create in una fetta non è sufficiente. in particolare, si ritiene, non senza ragione, che parti del file system come /usr/src, /usr/ports, /usr/ports/distfiles debbano essere suddivise in rami separati. possibilmente / usr / local. In questo caso, dovrai creare due sezioni BSD (anche se ci sono informazioni che la partizione estesa può essere utilizzata per il partizionamento frazionario del file system, ma io stesso non l'ho mai provato).

Il partizionamento di un disco utilizzando le voci nella tabella BIOS del primo blocco è chiamato partizionamento in modalità di compatibilità. Indipendentemente dal fatto che crei una fetta per FreeBSD o più sezioni separate - per ciascun sistema operativo, in modalità di compatibilità all'inizio dello spazio su disco è riservato un importo di 63 blocchi (circa 30 KB in totale), in cui non solo il L'MBR "predefinito" viene mantenuto intatto, ma c'è anche spazio per scrivere il codice di qualsiasi bootloader di terze parti... Di conseguenza, il disco rimane disponibile per altri sistemi operativi, secondo almeno in teoria.

Tuttavia, l'uso della modalità di compatibilità e della tabella delle partizioni del BIOS è facoltativo in FreeBSD. È perfettamente accettabile scrivere nell'MBR, invece della tabella del BIOS, direttamente nella tabella delle partizioni BSD. In questo caso, è chiaro che le fette in quanto tali non vengono create e l'intero spazio su disco è, per così dire, una singola fetta e può essere diviso in partizioni BSD secondo le stesse regole di una fetta separata. E qui diventa chiara la necessità di prenotare il terzo campo della tabella BSD: è in esso che viene descritto il nostro intero disco, interamente allocato per FreeBSD.

Questo tipo di gestione del disco è chiamato uso esclusivo o Dangerously Dedicated. Contrariamente al nome, non vi è alcun pericolo in esso, né per i dati dell'utente, né per la sua salute. E l'unico pericolo che lo attende è che l'unità in modalità esclusiva non venga riconosciuta da nessun altro sistema operativo installato su questo computer (non sarà un ostacolo all'accesso all'unità in rete). Tuttavia, questo è un inconveniente puramente teorico, perché nessuno dei sistemi operativi che conosco può funzionare davvero con le partizioni BSD e il file system FreeBSD (specialmente quello moderno - UFS2). E, diciamo, se c'è un GRUB multiboot su un altro disco fisico, FreeBSD da un disco "esclusivo" potrebbe essere caricato da esso.

Ci sono indicazioni nella documentazione di FreeBSD che i dischi "esclusivi" a volte non possono essere avviati, probabilmente perché il BIOS non può riconoscere voci MBR non standard. Tuttavia, a quanto pare, questo si riferisce ad alcuni vecchi Versioni del BIOS- Non ho dovuto occuparmi di questo, anche se ho spesso fatto ricorso alla modalità esclusiva quando era possibile dare un intero disco fisico sotto FreeBSD.

Tuttavia, i documenti del progetto FreeBSD sottolineano sempre che la modalità esclusiva, in particolare a causa del risparmio di un centesimo sullo spazio su disco, dovrebbe essere utilizzata solo in circostanze eccezionali. Uno dei motivi di questo utilizzo è la discrepanza tra la "geometria" del disco, visibile dal BIOS, e il concetto che FreeBSD ne sviluppa (maggiori informazioni su questo argomento possono essere trovate nelle FAQ ufficiali di FreeBSD).

Markup della sezione

A installazione iniziale FreeBSD di solito usa il programma sysinstall per creare sezioni e partizioni, che è un programma di installazione e personalizzazione universale per questo sistema operativo. Tuttavia, va ricordato che questo non è altro che un front-end per una serie di utilità specializzate, comprese le utilità di partizionamento del disco. E quindi, la loro conoscenza non sarà comunque dannosa. Da un lato, ti darà un'idea di cosa sta facendo sysinstall. D'altra parte, risulta essere più semplice eseguire alcune operazioni di partizionamento del disco con il loro aiuto. Quindi, ho passato molto tempo in sysinstall creando partizioni per la preparazione software RAID finché non mi sono reso conto che farlo manualmente è molto più semplice.

C'è un terzo lato: le utilità di partizionamento del disco, oltre a svolgere la loro funzione diretta, fungono da fonte insostituibile di informazioni sul disco fisico in generale e su ciò che FreeBSD ne pensa. E poi, con il loro aiuto, puoi ottenere tali informazioni sulle partizioni del disco, che non possono essere trovate da nessun'altra parte.

A differenza di Linux "e, il partizionamento di un disco in FreeBSD viene eseguito in due fasi e due programmi individuali... Innanzitutto, il disco viene suddiviso in fette (oppure viene creata una fetta, in modalità compatibilità o per uso esclusivo). E poi la fetta allocata per FreeBSD è divisa in partizioni.

La prima operazione viene eseguita utilizzando l'utility fdisk. Questo è uno strumento ancora più potente per lavorare con i dischi rispetto all'omonimo programma di Linux "a. Tuttavia, non è facile da usare. Anche nel man (8) fdisk tra i BUG" si nota che la sua interfaccia potrebbe essere più amichevole. Tuttavia, in effetti, utilizzarlo non è affatto spaventoso.

Eseguito senza opzioni o argomenti, fdisk mostra semplicemente le informazioni sul primo disco fisico sulla macchina (o meglio, il disco su cui risiede il filesystem root di FreeBSD). E le informazioni sono ricche: qui vedremo il nome del file della corrente dispositivo a disco(ad esempio /dev/ad0), e informazioni sulla sua geometria (il numero di cilindri, testine, settori per binario, blocchi per cilindro - è un'altra cosa che non hanno nulla a che fare con la geometria reale, ma ne abbiamo già parlato this) e la dimensione del blocco fisico.

E poi ci saranno informazioni sulla fetta o sulle fette che vivono su questo disco. E qui, per ogni slice, vedremo l'identificatore del tipo di file system, la sua dimensione (in blocchi e megabyte), il flag di attività (se presente), i dati all'inizio e alla fine (cilindro / testina / numero di settore). Se sul disco sono presenti meno di quattro slice, quelle inesistenti (ovvero corrispondenti a voci della tabella delle partizioni vuote) verranno contrassegnate come NON UTILIZZATE. Lo stesso segno sarà sulle fette 2-4 quando il disco è partizionato in modalità esclusiva.

Tuttavia, anche con una singola fetta del disco contrassegnata in modalità compatibilità, è molto facile distinguerlo da un disco "esclusivo" dall'output del comando fdisk: il blocco di partenza del primo sarà 63, e la sua traccia di partenza sarà il primo numero Mentre una fetta di un disco "esclusivo" partirà dal blocco zero e dalla traccia zero.

Come affermato, tutte queste informazioni riguardano il disco del filesystem di root. Per ottenere informazioni simili su altre unità, è necessario specificare esplicitamente il nome file del dispositivo corrispondente come argomento del comando fdisk. Ad esempio,

$ fdisk / dev / ar0

li fornirà per l'unità collegata al connettore IDE-RAID del controller. Questa informazione può sembrare ridondante. Tuttavia, fdisk può visualizzare informazioni più concise (e solo essenziali). Cosa farà l'opzione -s. In risposta al comando

$ fdisk -s / dev / ad #

otteniamo solo il più importante: il nome del file del dispositivo, il numero di cilindri, testine e settori e brevi informazioni solo sulle sezioni esistenti (cioè non contrassegnate come NON UTILIZZATE): settore iniziale, dimensione della sezione, identificatore del tipo di filesystem e flag attivo. Cioè, qualcosa del genere:

/ dev / ad0: 155061 cyl 16 hd 63 sec Parte Inizio Dimensione Tipo Flag 1: 0 156301488 0xa5 0x80

Tutto ciò che è stato detto era finalizzato solo a ottenere informazioni. Per utilizzare fdisk per eseguire qualsiasi partizionamento del disco attivo, è necessario acquisire familiarità con le sue altre opzioni. Non ce ne sono così tanti e la più importante, forse, è l'opzione -I. Incluso nella squadra

$ fdisk -I / dev / ar0

creerà la prima e unica slice sul disco, però, in modalità compatibilità, cioè partendo dal settore 63. Ovviamente, se il disco è stato precedentemente rotto in qualche modo e conteneva dei dati, sia il layout del disco precedente che il suo contenuto verranno irrevocabilmente distrutti. Tuttavia, questo comportamento è tipico di tutte le utilità di partizionamento del disco in qualsiasi sistema operativo. Tuttavia, a differenza dell'utility con lo stesso nome di Linux, Free "fdisk" esegue immediatamente il partizionamento del disco.E inoltre, qui non ci verrà nemmeno chiesto conferma delle nostre azioni, quindi dovresti stare attento.

Ma seguiranno molte domande quando si utilizza l'opzione -i, che consente di partizionare il disco in modalità interattiva... Dato con il nome del file del dispositivo come argomento, cioè nella forma

$ fdisk -i / dev / ar0

prima di tutto, ci ricorderà quale, di fatto, si sta abusando del disco e riporterà i suoi parametri (sia registrati nell'etichetta del disco che letti dal BIOS - in caso generale non devono corrispondere):

******* Lavorando su dispositivo / dev / da0 ******* i parametri estratti da disklabel in-core sono: cilindri = 124 testine = 64 settori / traccia = 32 (2048 blks / cyl) parametri da utilizzati per i calcoli del BIOS sono: cilindri = 124 testine = 64 settori/traccia = 32 (2048 blks/cil)

E ci chiederà subito se abbiamo qualche desiderio di correggere la "geometria del disco" del BIOS. La risposta predefinita (no) è ovvia se non c'è alcun messaggio sulla "cattiva" geometria del BIOS, che coincide anche con la geometria descritta nel Disco Etichetta... Ma se si verifica il fatto della geometria "cattiva", vale la pena considerare.

Il modo più semplice è lasciarlo così com'è: è improbabile che si formino problemi da questo. Tuttavia, per motivi di ordine, puoi correggere la situazione con le tue mani. Per questo, dovresti prima rispondere positivamente alla domanda precedente, dopo di che ti verrà chiesto di inserire tutti i parametri specificati in sequenza: il numero di cilindri, tracce e settori. La conferma della legalità di queste azioni può essere ottenuta in seguito, confrontandola con quelle di sysinstall.

Intrattenimento per la prima volta dopo (o al posto della) correzione della geometria nella squadra

$ fdisk -i / dev / ar0

Questo creazione manuale fette (con il markup esistente, verrà prima chiesto se lo vogliamo - con una risposta negativa per impostazione predefinita). Per fare ciò, prima viene richiesto l'identificatore del tipo di file system (il valore predefinito è esistente se il disco è stato partizionato, o 0 - per un nuovo disco) - dovresti specificare il suo valore decimale (165 per una slice FreeBSD). Quindi - il settore di partenza (0 - per il partizionamento "esclusivo", 63 - per il partizionamento in modalità di compatibilità) e la dimensione della fetta in blocchi (quando si utilizza l'intero disco, sarà ovviamente uguale al loro numero intero, altrimenti alcuni saranno richiesti calcoli aritmetici).

Verrà quindi richiesto di specificare l'inizio e la fine esatti della sezione. Se rifiuti, saranno presi dalle definizioni precedenti, se sei d'accordo, dovrai indicare il primo e l'ultimo cilindro, testa, settore. Che verrà visualizzato come

Sysid 165 (0xa5), (FreeBSD / NetBSD / 386BSD) inizio 0, dimensione 260000 (126 Meg), flag 0 inizio: cyl 0 / head 0 / settore 1; fine: cilindro 126 / testa 60 / settore 32

Confermando le tue azioni con una risposta positiva alla domanda

Siamo contenti di questa voce? [n] si

puoi procedere alla creazione della seconda sezione

I dati per la partizione 2 sono: Do tu vuoi per cambiarlo? [n]

Allo stesso modo del primo. È chiaro che se crei solo una fetta, dovresti scartare le modifiche alle restanti voci potenziali nella tabella delle partizioni, nel qual caso rimarranno contrassegnate come non utilizzate. In ogni caso, verrà posta l'ultima domanda - conferma di esecuzione:

Vuoi cambiare la partizione attiva? [n]

Con una risposta positiva a cui avranno effetto tutte le modifiche apportate (e su un disco precedentemente contrassegnato, puoi condividere con il suo contenuto). Quindi, dovresti visualizzare in anteprima tutto ciò che è stato inserito in precedenza (fortunatamente, in FreeBSD questo può essere fatto facilmente scorrendo il buffer della cronologia della console virtuale) e, se viene trovato un errore, scartare le modifiche ed eseguire nuovamente il comando fdisk. Tuttavia, puoi uscirne in qualsiasi momento senza conseguenze e in modo standard- combinazione di tasti Controllo+C.

In generale, la creazione interattiva di una singola fetta "esclusiva" con fdisk (e una singola fetta "compatibile" è più facile da creare con l'opzione -I) non è un grosso problema. Se hai bisogno di più slice, dovrai armarti di una calcolatrice (in FreeBSD c'è tale - bc, run from riga di comando, molto semplice e facile da usare).

Sebbene ci sia un altro modo per creare sezioni: una descrizione preliminare dei loro parametri e allo stesso tempo la geometria del disco, in un file (in un file di testo normale, utilizzando qualsiasi editor familiare). Quindi il programma fdisk viene lanciato nella forma

$ fdisk -f file di configurazione / dev / ad #

E aggiungendo l'opzione -t, puoi prima testare la correttezza del tuo markup senza scrivere le modifiche sul disco. Tuttavia, io stesso non l'ho fatto, lasciando a coloro che desiderano esercizi indipendenti: tutto informazione necessaria, incluso il formato del file di configurazione, può essere trovato in man (8) fdisk.

Infine, per partizionare un disco in modalità esclusiva, si può fare a meno del comando fdisk: è sufficiente azzerarne i blocchi iniziali utilizzando il comando dd, che esegue il cosiddetto. copia con trasformazione. Richiede due argomenti: il nome del file da copiare (se - file di input) e il nome del file del dispositivo su cui viene copiato (di - file di output). Puoi anche impostare la dimensione del blocco e la quantità di dati copiati. Cioè, nel nostro caso sarà simile a questo:

$ dd if = / dev / zero di = / dev / ad # bs = 1k conteggio = 1

$ dd if = / dev / zero di = / dev / ad # count = 2

In entrambi i casi, /dev/zero si riferisce al cosiddetto. il dispositivo "zero" e il disco partizionato funge da / dev / ad #, opzioni aggiuntive indicano che i primi due blocchi fisici di esso devono essere riempiti con zeri.

Markup della partizione

Una slice creata con fdisk, che sia "esclusiva" o "compatibile", è già utilizzabile: puoi creare un filesystem direttamente su di essa. Tuttavia, di solito è pre-partizionato in partizioni logiche (o viene creata almeno una partizione, ad # s1c, che descrive l'intera fetta). In precedenza, l'utility disklabel serviva a questo scopo, ma nella versione 5.1 è stata sostituita dal programma bsdlabel preso in prestito da NetBSD (con un'interfaccia più user-friendly, come dicono gli ottimisti). Sebbene disklabel possa essere trovato nella directory / sbin, è solo un collegamento fisso allo stesso file eseguibile di bsdlabel. Questo è facile da verificare guardando gli ID di entrambi i file:

$ ls -l / sbin / bsdlabel / sbin / disklabel -r-xr-xr-x 2 root wheel 27348 23 feb 22:42 / sbin / bsdlabel * -r-xr-xr-x 2 root wheel 27348 23 feb 22: 42 / sbin / etichetta disco *

aventi valori uguali (27348).

Ancora una volta, esegui senza opzioni (ma con un argomento richiesto sotto forma di un nome di file slice di dispositivo), bsdlabel serve esclusivamente a scopo informativo, emettendo qualcosa come il seguente per una slice contrassegnata da FreeBSD:

$ bsdlabel / dev / ad0 # / dev / ad0: 8 partizioni: # size offset fstype a: 524288 0 4.2BSD 2048 16384 32776 b: 2074624 524288 swap c: 156301488 0 non utilizzato 0 0 0 # parte "grezza", don "t modifica d: 524288 2598912 4.2BSD 0 0 0 e: 10240000 3123200 4.2BSD 0 0 0 f: 142938288 13363200 4.2BSD 0 0 0

Per la conclusione data, alcuni commenti non saranno superflui. Le lettere a sinistra sono designazioni di lettere sezioni esistenti, per ognuno dei quali sono indicati: dimensione (dimensione) in blocchi, l'offset del primo blocco dall'inizio del disco, cioè il settore zero (offset), il tipo di file system e i suoi parametri: la dimensione del frammento, del blocco, della densità dei record - su tutto questo ci sarà un discorso nella sezione sui file Sistema FreeBSD; per ora, va notato che il blocco del file system è logico e non è affatto uguale al blocco del disco fisico. Non presteremo attenzione al fatto che le colonne corrispondenti per tutte le partizioni, ad eccezione di a, contengono zeri.

Tra le partizioni, si richiama l'attenzione su quella contrassegnata dalla lettera c: questo è lo stesso "contenitore" per il resto delle partizioni (una lontana analogia - partizione estesa DOS). È chiaro che l'offset per esso è zero e la dimensione è uguale al numero totale di blocchi del disco fisico. Per altre sezioni, l'offset è facilmente calcolabile (ad esempio, utilizzando il calcolatore bc) sommando l'offset della sezione precedente con la sua dimensione.

L'esempio fornito si riferisce a un disco "esclusivo" - ecco perché vediamo l'offset zero sia per la prima partizione che per la "fetta" c. Per un disco partizionato in modalità compatibilità, l'immagine sarà simile a questa:

# / dev / ad0s1: 8 partizioni: # size offset fstype a: 524288 63 4.2BSD 2048 16384 32776 c: 16771797 63 non utilizzato 0 0 # parte "grezza", non modificare d: 524288 524351 4.2BSD 2048 16384 32776 e: 524288 1048639 4.2BSD 2048 16384 32776 f: 1048576 1572927 4.2BSD 2048 16384 8 g: 14150357 2621503 4.2BSD 2048 16384 28552

Cioè, puoi vedere che la prima partizione di un disco partizionato "normalmente" è sfalsata dal suo inizio di 63 blocchi riservati.

Non è un caso che il campo fstype della sezione c contenga il valore non utilizzato - non può essere utilizzato per alcuna memorizzazione dei dati. Tuttavia, è disponibile solo sul supporto appena partizionato con fdisk. Come si crea il resto delle partizioni necessarie?

Stranamente, uno dei modi è estremamente semplice: utilizzare un normale editor di testo. Per fare ciò, viene lanciato bsdlabel con l'opzione -e e l'argomento - il nome del file della slice da marcare:

$ bsdlabel -e / dev / ad0s1

In risposta verrà chiamato l'editor definito nella variabile EDITOR del file profilo del superutente (non è necessario ricordare che tutte le operazioni con dischi, slice e partizioni vengono eseguite solo per conto di root), in assenza di tale editor verrà be / usr / bin / vi. E in questo editor vedremo quanto segue:

# / dev / da0: 8 partizioni: # size offset fstype c: 254787 0 non utilizzato 0 0 # parte "grezza", non "modificare"

Se non si prevede di posizionare il file system root su questa slice, per creare una singola partizione, sarà sufficiente aggiungere (usando i più comuni mezzi editoriali) una riga del form

D: 254 787 0 4.2BSD

nel caso di un disco "esclusivo", oppure

D: 254787 63 4.2BSD

per un disco mappato in modalità compatibilità.

E - uscire dall'editor con il suo normale comando salvando le modifiche (nel caso di vi -: wq), in risposta al quale verremo informati che

File /tmp/EdDk.KvEGsqRNsh salvato.

La prossima volta che bsdlabel viene chiamato per la stessa slice, ma senza opzioni, l'immagine sarà la seguente:

# / dev / da0: 8 partizioni: # size offset fstype c: 254787 0 non utilizzato 0 0 # parte "grezza", non "modificare d: 254787 0 4.2BSD 0 0 0

Cioè, puoi vedere che la sezione "funzionante" è stata creata con successo.

Per creare più partizioni, inclusa quella di root e per lo swap" e ancora, abbiamo bisogno di un'aritmetica simile a quella utilizzata nella modalità interattiva del programma fdisk. Cioè, ogni partizione che inizia con a deve ricevere il valore della fetta iniziale, il resto - la somma dell'offset e della dimensione del precedente), dimensione (sempre in blocchi), tipo di file system (per le partizioni "funzionanti" - 4.2BSD, per la partizione di swap - swap).I campi dei parametri del file system può essere lasciato vuoto: in questo caso i parametri del file system verranno determinati al momento della creazione (ovvero durante la "formattazione", in termini DOS, della partizione).

A questo punto la questione delle sezioni e delle sezioni in prima approssimazione può considerarsi chiusa. Naturalmente, le partizioni create non sono ancora utilizzabili: è necessario prima creare file system su di esse. Oppure, come dicono i "davanzali", formattarli. Cosa faremo nel prossimo futuro. Ma già - nella prossima sezione ...

Alexey Fedorchuk
2004 anno

Questo articolo si concentrerà sul partizionamento dei dischi rigidi, ovvero i dischi rigidi, manualmente, senza l'aiuto del programma sysinstall. La necessità di questo non si presenta così spesso, ma si presenta. E per l'istruzione generale è utile fare un'operazione del genere almeno una volta nella vita.

Come sai, i dischi sono generalmente divisi in partizioni (partizioni in termini di DOS / Windows e Linux). Ma anche qui FreeBSD ha un approccio originale. Per capirlo, devi prima dire

Un po' di "geometria"

La parola "geometria" nell'intestazione del titolo è racchiusa tra virgolette per un motivo. Il fatto è che poiché il volume dei dischi ha superato i 500 megabyte (il limite del vecchio BIOS dei personal computer, precedentemente chiamati computer compatibili con IBM), l'utente non ha mai incontrato la loro vera geometria. Il software incorporato nell'elettronica del disco (il cosiddetto firmware) lo converte in una forma accessibile alla percezione del BIOS - non mi soffermerò sui dettagli di come ciò avvenga esattamente a causa dell'incompetenza (e quasi nessuno, tranne i produttori di dischi, lo sa bene questi dettagli).

E la geometria del disco disponibile dal BIOS è descritta in termini di cilindro / testata / settore (cilindri / teste / settori, C / H / S). In senso figurato (e, ripeto, tutto ciò che riguarda la geometria del disco dovrebbe ora essere inteso esclusivamente in senso figurato, allegoristico o metaforico), le testine leggono informazioni da piste magnetiche concentriche, in cui è suddiviso ogni piatto del disco. Un insieme verticale di tracce con gli stessi numeri su tutti i piatti che compongono il disco come dispositivo fisico forma un cilindro. E i settori tagliano la lastra, insieme alle sue tracce, in frammenti radiali chiamati blocchi. Cioè, si può immaginare in modo tale che il blocco si trovi all'intersezione (nello spazio) del cilindro, binario e settore.

Il numero di tracce e settori nei dischi moderni è solitamente fisso (o meglio, appare come tale nel BIOS): 255 tracce vengono tagliate in 63 settori ciascuna, che in totale danno 16065 blocchi per cilindro. E il numero di cilindri è determinato dal volume del disco (non entrerò in calcoli aritmetici). L'unica cosa importante qui è che le testine del disco si muovano meccanicamente in modo sincrono sulla superficie di tutte le piastre. Cioè, se le informazioni su una piastra vengono lette dalla prima traccia, tutte le altre teste si spostano sulla stessa traccia, ciascuna sulla propria piastra.

Ripeto, tutto questo è condizionato - se non altro perché il concetto di cilindro nel senso geometrico del termine è molto difficile da applicare ai dischi moderni, spesso non solo monolastra, ma anche, se così posso dire, semi- piatto (cioè con un solo lato di un singolo piatto coinvolto) ... Ma spetta al firmware e al BIOS occuparsi di questa geometria, ma per noi sono i cilindri che interessano - un insieme di tracce a cui viene eseguito l'accesso sincrono e blocca - i quanti minimi di spazio su disco.

Le tracce che formano i cilindri vengono create durante il layout del disco di fabbrica iniziale, il cosiddetto. formattazione di basso livello. Da quanto sopra, è ovvio che l'accesso ai dati all'interno di un cilindro o di un gruppo di cilindri vicini verrà eseguito più velocemente dei dati scritti parzialmente nel primo e, ad esempio, nell'ultimo cilindro del disco. Questo caso non è così incredibile come potrebbe sembrare: in DOS, dove lo spazio occupato dai file cancellati è contrassegnato come inutilizzato, ma in realtà viene sovrascritto solo quando lo spazio libero sul disco è completamente esaurito, potrebbe benissimo verificarsi una situazione del genere.

Quindi, al fine di ridurre al minimo la probabilità che i dati vengano diffusi su cilindri disgiunti, sono state inventate le partizioni del disco (o meglio, anche per questo - l'allocazione delle partizioni del disco persegue molti altri scopi). Un gruppo di cilindri adiacenti viene combinato in un'unica sezione.

Dove finisce una sezione e ne inizia un'altra? Le persone ragionevoli di Odessa direbbero che una sezione finisce esattamente dove inizia la seconda. Tuttavia, è ovvio per noi che per ciascuna delle sezioni è necessario memorizzare informazioni sul suo inizio e fine (cioè i numeri del primo e dell'ultimo dei cilindri coinvolti in essa). Dove conservarli? Per rispondere a questa domanda si dovrebbe fare riferimento al concetto di blocco.

Come le tracce, i blocchi del disco (o quelli fisici - ci sono anche blocchi logici, ma questo vale per i file system, di cui parleremo più avanti) sono creati con una formattazione di basso livello e l'utente (quasi) non può influenzarli. Anche la loro dimensione è sempre la stessa e pari a 512 byte. Piuttosto, questo è il modo in cui lo vede il BIOS: ciò che è veramente, solo Allah lo sa.

Tuttavia, il fatto che lo scambio di dati con un disco sia possibile in porzioni di almeno 512 byte è una realtà oggettiva, così come il fatto che qualsiasi, non importa quanto piccola, quantità di informazioni registrate su di esso occuperà un intero blocco - indipendentemente dalle sue dimensioni effettive. Cioè, piccoli file di testo di un paio di caratteri (cioè byte) richiedono ancora fino a 512 byte per se stessi, non meno (in effetti, anche di più, ma la prossima volta ne parleremo di più). D'altra parte, la lettura dei dati in blocchi di 512 byte sarà più veloce che se ogni volta che la testina accede al disco, i dati sono stati letti a byte. Tuttavia, questo vale anche per il tema dei file system.

Nel frattempo ci interessa un blocco unico formato dal primo settore sul primo binario del primo cilindro. È riservato all'area di servizio del disco, denominata Master Boot Recodr (MBR), che viene letta dal BIOS all'avvio della macchina. Ovviamente, MBR viene utilizzato per lo scopo previsto solo se il disco è definito nel Setup BIOS come avviabile (o è semplicemente l'unico nel sistema). Tuttavia, poiché l'uso di ogni disco specifico è a discrezione dell'utente, c'è sempre spazio per esso.

All'interno del blocco zero, tra l'altro (in particolare il codice di qualche bootloader che vi può essere scritto), c'è sicuramente una sezione riservata. È destinato alla tabella delle partizioni del BIOS, per la quale da tempo immemorabile (dai tempi del primissimo PC IBM, a quanto pare) sono allocati 64 byte. Questa tabella registra (o può essere scritta) i dati sulla partizione (s) in un certo formato che il BIOS comprende.

E questo formato prevede l'indicazione per ogni sezione del suo blocco di partenza, dimensione in byte, un identificatore del tipo di file system (questo, contrariamente al nome, non è affatto uguale al file system, di cui parleremo in la sezione successiva) e (solo per una delle partizioni) del flag attivo (ovvero, contrassegnare la partizione data come avviabile). Quest'ultimo è necessario per alcuni sistemi operativi come DOS, sebbene FreeBSD o, ad esempio, Linux, questo flag sia profondamente indifferente.

La quantità totale di informazioni necessarie per descrivere la partizione del disco viene eseguita su 16 byte. E poiché, come ricordiamo, solo 64 sono allocati per l'intera tabella delle partizioni di questi byte, senza una calcolatrice, puoi calcolare che il numero massimo di partizioni su un disco è 4. Queste partizioni sono chiamate primarie o, non del tutto accuratamente , fisico. Poiché nella maggior parte dei casi tali partizioni possono anche essere divise in parti - partizioni logiche (che verranno discusse in seguito).

Ripeterò ancora una volta: questo vale solo per le macchine con BIOS del PC, ovvero i normali personal computer. Su tutti i tipi di PowerPC, Spar e stazioni simili, tutto può essere completamente diverso (anche se, a dire il vero, non so esattamente come).

Come puoi vedere, la descrizione della sezione include l'identificatore del file system. Questo è un certo numero (di solito in decimale in FreeBSD, in Linux, ad esempio, in esadecimale), che viene assegnato al file system del sistema operativo da posizionare sul disco. Quindi, una partizione destinata a FreeBSD ha un identificatore 165 (decimale) o A5, una partizione per Linux (nativa Linux) - 131 (o 83), FAT16 - 6, una partizione estesa (la cosiddetta DOS Extended) - 5, e così ulteriormente.

Assegnare un identificatore a una partizione non significa che il file system corrispondente appaia magicamente su di essa. No, predetermina semplicemente quale tipo di tabella delle partizioni secondaria può essere scritta su di essa (sebbene questo non sia del tutto vero - e in alcuni casi non lo è). Ma qui passiamo alla conversazione

A proposito di fette

Pertanto, l'indagine ha rilevato che è possibile creare fino a 4 partizioni (incluse) su un disco fisico, ognuna delle quali può essere assegnata a un sistema operativo separato. Qual è il prossimo? E poi dovresti studiare il problema degli stili di markup delle sezioni.

Gli stili di marcatura della sezione sono denominati Etichetta del disco, che non deve essere confuso con le etichette del disco: nomi arbitrari che in DOS (e non solo) possono essere assegnati a una partizione del disco. Gli stili di markup sono il formato della tabella delle partizioni secondaria scritta nel primo blocco della partizione primaria. Questa tabella determina anche la natura delle azioni disponibili su questa sezione primaria.

Gli utenti Windows (e nella maggior parte dei casi anche Linux) di solito non hanno motivo di pensare al problema degli stili di markup. Tuttavia, ci sono molti di questi stili: per esserne sicuri, vai al menu di configurazione del kernel Linux, nella sottosezione Tipi di partizione sezione File system... Tuttavia, di tutta questa abbondanza, saremo interessati solo a due stili: DOS e BSD.

DOS/Windows usano (sorprendentemente) il partizionamento in stile DOS. Si basa su una tabella BIOS che è solo parzialmente coinvolta. Vale a dire, delle quattro voci disponibili nella tabella delle partizioni, solo due sono riempite (o meglio, solo due partizioni possono essere create usando lo standard FDISK da DOS / Windows9X / ME; solo non so come stanno le cose in NT / 2000 / XP ).

Nella voce per la prima partizione, è possibile specificare un identificatore per il tipo di file system (ad esempio, FAT16 o FAT32), mentre alla seconda partizione viene assegnato automaticamente un identificatore di tipo DOS esteso. E la sezione estesa può essere ulteriormente suddivisa in partizioni logiche. Tuttavia, questo non ci interessa ora e la struttura della partizione estesa e delle partizioni logiche è stata descritta molte volte in essa.

Linux utilizza anche il markup in stile DOS. Solo qui la tabella del BIOS è completamente utilizzata - con i mezzi standard di questo sistema operativo (ad esempio, fdisk o cfdisk), puoi creare tutte e quattro le partizioni primarie e usarle per il tuo piacere. tuttavia, ancora una volta, solo una di esse può essere dichiarata estesa e, di conseguenza, suddivisa in sezioni logiche.

Lo stile dell'etichetta BSD utilizzato da FreeBSD, DragonFlyBSD, Net- e OpenBSD e BSD / OS sembra completamente diverso. Qui può essere utilizzata anche una tabella BIOS, la cui compilazione creerà quattro partizioni primarie. Sono chiamate sezioni nella terminologia FreeBSD per distinguerle dalle partizioni BSD. Le sezioni nella nomenclatura del file del dispositivo sono contrassegnate aggiungendo la lettera s e un numero sequenziale al nome del file del disco (al contrario dei dischi, che iniziano con uno), ad esempio: ad0s1, ad0s2, ad0s3, ad0s4 per il disco principale sul primo canale IDE.

Se a una o più fette viene assegnato un identificatore di sistema BSD - 165 in decimale (in senso stretto, si chiama 4.2BSD ed è anche caratteristico di DragonFlyBSD e NetBSD - sebbene teoricamente quest'ultimo, come OpenBSD, abbia un proprio numero identificativo di partizione) , quindi nel suo blocco iniziale verrà scritto sull'etichetta BSD stessa. In accordo con il suo formato, ogni slice con ID 165 è assolutamente uguale e può essere divisa in partizioni logiche (in realtà partizioni, nella terminologia di FreeBSD).

Ci sono otto voci per le partizioni nella tabella BSD. Le sezioni ad esse corrispondenti sono nomenclature contrassegnate dall'aggiunta di lettere al nome del file della fetta - dalla a alla h. È vero, in DragonFlyBSD questa limitazione viene aggirata e una fetta può contenere fino a 16 partizioni logiche.

In realtà, non tutte le partizioni in una fetta possono essere utilizzate per ospitare i filesystem. Per cominciare, uno dei record (il terzo di fila, contrassegnato dalla lettera c) è riservato per descrivere l'intera fetta nel suo insieme, ad esempio ad0s1c, la cui necessità sarà chiara in seguito. Inoltre, la prima voce della tabella corrispondente alla quale il file del dispositivo è contrassegnato come ad # s # a viene utilizzata per descrivere la partizione radice del file system. Ed è ovvio che su una specifica macchina locale può esserci una sola partizione di root, indipendentemente dal numero di slice e di dischi fisici.

Infine, la seconda voce (file dispositivo - ad # s # b) ha il solo scopo di descrivere la partizione di swap (partizione di swap), che, in primo luogo, non può contenere dati, e in secondo luogo, è l'unica per l'intero disco (chiaramente , che è inutile creare una partizione di swap in ogni slice, anche se se ci sono due dischi fisici, è una buona idea dividere lo spazio di swap tra di loro).

Solitamente, la creazione di slice ha lo scopo di posizionare più di un sistema operativo sul disco e preservare la capacità di scambiare dati tra di loro (in teoria, puoi accedere alle partizioni BSD da Linux se ricostruisci il suo kernel correttamente; sebbene la procedura opposta sia quella di accedere a una partizione ext2fs da FreeBSD , è molto più semplice).

Se si prevede che l'intero disco disponibile venga distrutto da FreeBSD, di solito viene creata una singola fetta per (quasi) l'intero volume, lasciando inutilizzate le voci nella tabella del BIOS per il resto. Sette posizioni nella tabella BSD sono sufficienti per isolare i rami del file system come / usr, / tmp, / var e / home — più o meno il metodo di partizionamento predefinito di sysinstall.

Ovviamente, in alcuni casi, il numero predefinito di partizioni che possono essere create in una fetta non è sufficiente. in particolare, si ritiene, non senza ragione, che parti del file system come /usr/src, /usr/ports, /usr/ports/distfiles debbano essere suddivise in rami separati. possibilmente / usr / local. In questo caso, dovrai creare due sezioni BSD (anche se ci sono informazioni che la partizione estesa può essere utilizzata per il partizionamento frazionario del file system, ma io stesso non l'ho mai provato).

Il partizionamento di un disco utilizzando le voci nella tabella BIOS del primo blocco è chiamato partizionamento in modalità di compatibilità. Indipendentemente dal fatto che crei una fetta per FreeBSD o più sezioni separate - per ciascun sistema operativo, in modalità di compatibilità all'inizio dello spazio su disco è riservato un importo di 63 blocchi (circa 30 KB in totale), in cui non solo il L'MBR "predefinito" viene mantenuto intatto, ma c'è ancora spazio per scrivere il codice di alcuni bootloader di terze parti. Di conseguenza, il disco rimane disponibile per altri sistemi operativi, almeno in teoria.

Tuttavia, l'uso della modalità di compatibilità e della tabella delle partizioni del BIOS è facoltativo in FreeBSD. È perfettamente accettabile scrivere nell'MBR, invece della tabella del BIOS, direttamente nella tabella delle partizioni BSD. In questo caso, è chiaro che le fette in quanto tali non vengono create e l'intero spazio su disco è, per così dire, una singola fetta e può essere diviso in partizioni BSD secondo le stesse regole di una fetta separata. E qui diventa chiara la necessità di prenotare il terzo campo della tabella BSD: è in esso che viene descritto il nostro intero disco, interamente allocato per FreeBSD.

Questo tipo di gestione del disco è chiamato uso esclusivo o Dangerously Dedicated. Contrariamente al nome, non vi è alcun pericolo in esso, né per i dati dell'utente, né per la sua salute. E l'unico pericolo che lo attende è che il disco in modalità esclusiva non venga riconosciuto da nessun altro sistema operativo installato su questo computer (non sarà un ostacolo all'accesso al disco in rete). Tuttavia, questo è un inconveniente puramente teorico, perché nessuno dei sistemi operativi che conosco può funzionare davvero con le partizioni BSD e il file system FreeBSD (specialmente quello moderno - UFS2). E, diciamo, se c'è un GRUB multiboot su un altro disco fisico, FreeBSD da un disco "esclusivo" potrebbe essere caricato da esso.

Ci sono indicazioni nella documentazione di FreeBSD che i dischi "esclusivi" a volte non possono essere avviati, probabilmente perché il BIOS non può riconoscere voci MBR non standard. Tuttavia, a quanto pare, questo vale per alcune vecchie versioni del BIOS: non ho mai riscontrato una cosa del genere, anche se spesso ricorrevo alla modalità esclusiva quando era possibile dare un intero disco fisico sotto FreeBSD.

Tuttavia, i documenti del progetto FreeBSD sottolineano sempre che la modalità esclusiva, in particolare a causa del risparmio di un centesimo sullo spazio su disco, dovrebbe essere utilizzata solo in circostanze eccezionali. Uno dei motivi di questo utilizzo è la discrepanza tra la "geometria" del disco, visibile dal BIOS, e l'idea di esso che si sviluppa in FreeBSD.

Markup della sezione

Durante l'installazione iniziale di FreeBSD, il programma sysinstall, l'installatore universale e personalizzatore per il sistema operativo, viene solitamente utilizzato per creare sezioni e partizioni su di essi. Tuttavia, va ricordato che questo non è altro che un front-end per una serie di utilità specializzate, comprese le utilità di partizionamento del disco. E quindi, la loro conoscenza non sarà comunque dannosa. Da un lato, ti darà un'idea di cosa sta facendo sysinstall. D'altra parte, risulta essere più semplice eseguire alcune operazioni di partizionamento del disco con il loro aiuto. Quindi, ho trascorso molto tempo in sysinstall creando partizioni per la preparazione di array RAID software finché non mi sono reso conto che farlo manualmente era molto più semplice.

C'è un terzo lato: le utilità di partizionamento del disco, oltre a svolgere la loro funzione diretta, servono come fonte indispensabile di informazioni sul disco fisico in generale e su ciò che FreeBSD ne pensa. E poi, con il loro aiuto, puoi ottenere tali informazioni sulle partizioni del disco, che non possono essere trovate da nessun'altra parte.

A differenza di Linux, il partizionamento di FreeBSD è un processo in due fasi e due programmi separati. Innanzitutto, il disco viene suddiviso in fette (oppure viene creata una fetta, in modalità compatibilità o per uso esclusivo). E poi la fetta allocata per FreeBSD è divisa in partizioni.

La prima operazione viene eseguita utilizzando l'utility fdisk. Questo è uno strumento ancora più potente per lavorare con i dischi rispetto all'omonimo programma di Linux. Tuttavia, non è facile da usare. Anche in man (8) fdisk si nota tra i BUG che la sua interfaccia potrebbe essere più amichevole. Tuttavia, in effetti, utilizzarlo non è affatto spaventoso.

Eseguito senza opzioni o argomenti, fdisk mostra semplicemente le informazioni sul primo disco fisico sulla macchina (o meglio, il disco su cui risiede il filesystem root di FreeBSD). E le informazioni sono ricche: qui vedremo sia il nome del file del dispositivo disco corrente (ad esempio / dev / ad0) sia le informazioni sulla sua geometria (il numero di cilindri, testine, settori per traccia, blocchi per cilindro - un altro il fatto è che sono legati alla geometria reale non ce l'abbiamo, ma ne abbiamo già parlato), e la dimensione del blocco fisico.

E poi ci saranno informazioni sulla fetta o sulle fette che vivono su questo disco. E qui, per ogni slice, vedremo l'identificatore del tipo di file system, la sua dimensione (in blocchi e megabyte), il flag di attività (se presente), i dati all'inizio e alla fine (cilindro / testina / numero di settore). Se sul disco sono presenti meno di quattro slice, quelle inesistenti (ovvero corrispondenti a voci della tabella delle partizioni vuote) verranno contrassegnate come NON UTILIZZATE. Lo stesso segno sarà sulle fette 2-4 quando il disco è partizionato in modalità esclusiva.

Tuttavia, anche con una singola fetta su un disco contrassegnato in modalità compatibilità, è molto facile distinguerlo da un disco "esclusivo" dall'output del comando fdisk: il blocco di partenza del primo sarà 63, e la sua traccia di partenza sarà il numero uno. Mentre una fetta di un disco "esclusivo" partirà dal blocco zero e dalla traccia zero.

Come affermato, tutte queste informazioni riguardano il disco del filesystem di root. Per ottenere informazioni simili su altre unità, è necessario specificare esplicitamente il nome file del dispositivo corrispondente come argomento del comando fdisk. Ad esempio,

$ fdisk / dev / ar0

li fornirà per l'unità collegata al connettore IDE-RAID del controller. Questa informazione può sembrare ridondante. Tuttavia, fdisk può visualizzare informazioni più concise (e solo essenziali). Cosa farà l'opzione -s. In risposta al comando

$ fdisk -s / dev / ad #

otterremo solo il più importante: il nome del file del dispositivo, il numero di cilindri, testine e settori, nonché brevi informazioni solo sulle sezioni esistenti (cioè non contrassegnate come NON UTILIZZATE): settore iniziale, dimensione della sezione, tipo di file system identificatore e flag di attività. Cioè, qualcosa del genere:

/ dev / ad0: 155061 cyl 16 hd 63 sec Parte Inizio Dimensione Tipo Flag 1: 0 156301488 0xa5 0x80

Tutto ciò che è stato detto era finalizzato solo a ottenere informazioni. Per utilizzare fdisk per eseguire qualsiasi partizionamento del disco attivo, è necessario acquisire familiarità con le sue altre opzioni. Non ce ne sono così tanti e la più importante, forse, è l'opzione -I. Incluso nella squadra

$ fdisk -I / dev / ar0

creerà la prima e unica slice sul disco, però, in modalità compatibilità, cioè partendo dal settore 63. Ovviamente, se il disco è stato precedentemente rotto in qualche modo e conteneva dei dati, sia il layout del disco precedente che il suo contenuto verranno irrevocabilmente distrutti. Tuttavia, questo comportamento è tipico di tutte le utilità di partizionamento del disco in qualsiasi sistema operativo. Tuttavia, a differenza dell'utility con lo stesso nome di Linux, fdisk di Free esegue immediatamente il ripartizionamento del disco. E inoltre, qui non ci verrà nemmeno chiesto conferma delle nostre azioni, quindi dovresti stare attento.

Ma seguiranno molte domande quando si utilizza l'opzione -i, che consente di partizionare il disco in modo interattivo. Dato con il nome del file del dispositivo come argomento, cioè nella forma

$ fdisk -i / dev / ar0

Prima di tutto, ci ricorderà quale, in effetti, il disco viene abusato e riporterà i suoi parametri (entrambi registrati nell'etichetta del disco e letti dal BIOS - in generale, non devono corrispondere):

******* Lavorando su dispositivo / dev / da0 ******* i parametri estratti da disklabel in-core sono: cilindri = 124 testine = 64 settori / traccia = 32 (2048 blks / cyl) parametri da utilizzati per i calcoli del BIOS sono: cilindri = 124 testine = 64 settori/traccia = 32 (2048 blks/cil)

E ci chiederà subito se abbiamo qualche desiderio di correggere la geometria del disco del BIOS. La risposta predefinita (no) è ovvia se non viene visualizzato alcun messaggio sulla geometria del BIOS "cattiva", che corrisponde anche alla geometria descritta nell'etichetta del disco. Ma se si verifica il fatto della geometria "cattiva", vale la pena considerare.

Il modo più semplice è lasciarlo così com'è: è improbabile che si formino problemi da questo. Tuttavia, per motivi di ordine, puoi correggere la situazione con le tue mani. Per questo, dovresti prima rispondere positivamente alla domanda precedente, dopo di che ti verrà chiesto di inserire tutti i parametri specificati in sequenza: il numero di cilindri, tracce e settori. La conferma della legalità di queste azioni può essere ottenuta in seguito, confrontandola con quelle di sysinstall.

Intrattenimento per la prima volta dopo (o al posto della) correzione della geometria nella squadra

$ fdisk -i / dev / ar0

- questa è la creazione manuale di sezioni (con il markup esistente, verrà prima chiesto se lo vogliamo - con una risposta negativa per impostazione predefinita). Per fare ciò, prima viene richiesto l'identificatore del tipo di file system (il valore predefinito è esistente se il disco è stato partizionato, o 0 - per un nuovo disco) - dovresti specificare il suo valore decimale (165 per una slice FreeBSD). Quindi - il settore di partenza (0 - per il partizionamento "esclusivo", 63 - per il partizionamento in modalità di compatibilità) e la dimensione della fetta in blocchi (quando si utilizza l'intero disco, sarà ovviamente uguale al loro numero intero, altrimenti alcuni saranno richiesti calcoli aritmetici).

Verrà quindi richiesto di specificare l'inizio e la fine esatti della sezione. Se rifiuti, saranno presi dalle definizioni precedenti, se sei d'accordo, dovrai indicare il primo e l'ultimo cilindro, testa, settore. Che verrà visualizzato come

Sysid 165 (0xa5), (FreeBSD / NetBSD / 386BSD) inizio 0, dimensione 260000 (126 Meg), flag 0 inizio: cyl 0 / head 0 / settore 1; fine: cilindro 126 / testa 60 / settore 32

Confermando le tue azioni con una risposta positiva alla domanda

Siamo contenti di questa voce? [n] si

puoi procedere alla creazione della seconda sezione

I dati per la partizione 2 sono: vuoi cambiarli? [n]

- secondo lo stesso schema del primo. È chiaro che se crei solo una fetta, dovresti scartare le modifiche alle restanti voci potenziali nella tabella delle partizioni, nel qual caso rimarranno contrassegnate come non utilizzate. In ogni caso, verrà posta l'ultima domanda - conferma di esecuzione:

Vuoi cambiare la partizione attiva? [n]

Con una risposta positiva a cui avranno effetto tutte le modifiche apportate (e su un disco precedentemente contrassegnato, puoi condividere con il suo contenuto). Quindi, dovresti visualizzare in anteprima tutto ciò che è stato inserito in precedenza (fortunatamente, in FreeBSD questo può essere fatto facilmente scorrendo il buffer della cronologia della console virtuale) e, se viene trovato un errore, scartare le modifiche ed eseguire nuovamente il comando fdisk. Tuttavia, puoi uscire in qualsiasi momento senza conseguenze e nel modo standard - con una combinazione di tasti Controllo+C.

In generale, la creazione interattiva con fdisk di una singola slice "esclusiva" (e una singola slice "compatibile" è più facile da creare con l'opzione -I) non è un grosso problema. Se hai bisogno di più fette, dovrai armarti di una calcolatrice (FreeBSD ne ha una - bc, lanciata dalla riga di comando, molto semplice e facile da usare).

Sebbene ci sia un altro modo per creare sezioni: una descrizione preliminare dei loro parametri e allo stesso tempo la geometria del disco, in un file (in un file di testo normale, utilizzando qualsiasi editor familiare). Quindi il programma fdisk viene lanciato nella forma

$ fdisk -f file di configurazione / dev / ad #

E aggiungendo l'opzione -t, puoi prima testare la correttezza del tuo markup senza scrivere le modifiche sul disco. Tuttavia, io stesso non l'ho fatto, lasciando a coloro che desiderano esercizi indipendenti: tutte le informazioni necessarie, incluso il formato del file di configurazione, possono essere trovate in man (8) fdisk.

Infine, per partizionare un disco in modalità esclusiva, si può fare a meno del comando fdisk: è sufficiente azzerarne i blocchi iniziali utilizzando il comando dd, che esegue il cosiddetto. copia con trasformazione. Richiede due argomenti: il nome del file da copiare (se - file di input) e il nome del file del dispositivo su cui viene copiato (di - file di output). Puoi anche impostare la dimensione del blocco e la quantità di dati copiati. Cioè, nel nostro caso sarà simile a questo:

$ dd if = / dev / zero di = / dev / ad # bs = 1k conteggio = 1

$ dd if = / dev / zero di = / dev / ad # count = 2

In entrambi i casi, /dev/zero si riferisce al cosiddetto. Il dispositivo "zero" e il disco partizionato funge da / dev / ad #, opzioni aggiuntive indicano che i primi due blocchi fisici di esso devono essere riempiti con zeri.

Markup della partizione

Una slice creata con fdisk, che sia "esclusiva" o "compatibile", è già utilizzabile: puoi creare un file system direttamente su di essa. Tuttavia, di solito è pre-partizionato in partizioni logiche (o viene creata almeno una partizione, ad # s1c, che descrive l'intera fetta). In precedenza, l'utility disklabel serviva a questo scopo, ma nella versione 5.1 è stata sostituita dal programma bsdlabel preso in prestito da NetBSD (con un'interfaccia più user-friendly, come dicono gli ottimisti). Sebbene disklabel possa essere trovato nella directory / sbin, è solo un collegamento fisso allo stesso file eseguibile di bsdlabel. Questo è facile da verificare guardando gli ID di entrambi i file:

$ ls -l / sbin / bsdlabel / sbin / disklabel -r-xr-xr-x 2 root wheel 27348 23 feb 22:42 / sbin / bsdlabel * -r-xr-xr-x 2 root wheel 27348 23 feb 22: 42 / sbin / etichetta disco *

aventi valori uguali (27348).

Ancora una volta, esegui senza opzioni (ma con un argomento richiesto sotto forma di un nome di file slice di dispositivo), bsdlabel serve esclusivamente a scopo informativo, emettendo qualcosa come il seguente per una slice contrassegnata da FreeBSD:

$ bsdlabel / dev / ad0 # / dev / ad0: 8 partizioni: # size offset fstype a: 524288 0 4.2BSD 2048 16384 32776 b: 2074624 524288 swap c: 156301488 0 non utilizzato 0 0 0 # parte "grezza", don "t modifica d: 524288 2598912 4.2BSD 0 0 0 e: 10240000 3123200 4.2BSD 0 0 0 f: 142938288 13363200 4.2BSD 0 0 0

Per la conclusione data, alcuni commenti non saranno superflui. Le lettere a sinistra sono le designazioni delle lettere delle partizioni esistenti, per ciascuna delle quali sono fornite: dimensione (dimensione) in blocchi, offset del primo blocco dall'inizio del disco, ovvero settore zero (offset), file system tipo e suoi parametri: dimensione del frammento, dimensione del blocco, record di densità - tutto questo sarà discusso nella sezione sul file system di FreeBSD; per ora, va notato che il blocco del file system è logico e non è affatto uguale al blocco del disco fisico. Non presteremo attenzione al fatto che le colonne corrispondenti per tutte le partizioni, ad eccezione di a, contengono zeri.

Tra le partizioni, si richiama l'attenzione su quella contrassegnata dalla lettera c: questo è lo stesso "contenitore" per il resto delle partizioni (una lontana analogia - partizione estesa DOS). È chiaro che l'offset per esso è zero e la dimensione è uguale al numero totale di blocchi del disco fisico. Per altre sezioni, l'offset è facilmente calcolabile (ad esempio, utilizzando il calcolatore bc) sommando l'offset della sezione precedente con la sua dimensione.

L'esempio fornito si riferisce a un disco "esclusivo", ecco perché vediamo l'offset zero sia per la prima partizione che per la "fetta" c. Per un disco partizionato in modalità compatibilità, l'immagine sarà simile a questa:

# / dev / ad0s1: 8 partizioni: # size offset fstype a: 524288 63 4.2BSD 2048 16384 32776 c: 16771797 63 non utilizzato 0 0 # parte "grezza", non modificare d: 524288 524351 4.2BSD 2048 16384 32776 e: 524288 1048639 4.2BSD 2048 16384 32776 f: 1048576 1572927 4.2BSD 2048 16384 8 g: 14150357 2621503 4.2BSD 2048 16384 28552

Cioè, puoi vedere che la prima partizione del disco partizionato "normalmente" è sfalsata dall'inizio di 63 blocchi riservati.

Non è un caso che il campo fstype della sezione c contenga il valore non utilizzato - non può essere utilizzato per alcuna memorizzazione dei dati. Tuttavia, è disponibile solo sul supporto appena partizionato con fdisk. Come si crea il resto delle partizioni necessarie?

Stranamente, uno dei modi è estremamente semplice: utilizzare un normale editor di testo. Per fare ciò, viene lanciato bsdlabel con l'opzione -e e l'argomento - il nome del file della slice da marcare:

$ bsdlabel -e / dev / ad0s1

In risposta verrà chiamato l'editor definito nella variabile EDITOR del file profilo del superutente (non è necessario ricordare che tutte le operazioni con dischi, slice e partizioni vengono eseguite solo per conto di root), in assenza di tale editor verrà essere / usr / bin / vi. E in questo editor vedremo quanto segue:

# / dev / da0: 8 partizioni: # size offset fstype c: 254787 0 non utilizzato 0 0 # parte "grezza", non "modificare"

Se non si prevede di posizionare il file system root su questa slice, per creare una singola partizione, sarà sufficiente aggiungere (usando i più comuni mezzi editoriali) una riga del form

D: 254 787 0 4.2BSD

nel caso di un disco "esclusivo", oppure

D: 254787 63 4.2BSD

per un disco mappato in modalità compatibilità.

E - uscire dall'editor con il suo normale comando salvando le modifiche (nel caso di vi -: wq), in risposta al quale verremo informati che

File /tmp/EdDk.KvEGsqRNsh salvato.

La prossima volta che bsdlabel viene chiamato per la stessa slice, ma senza opzioni, l'immagine sarà la seguente:

# / dev / da0: 8 partizioni: # size offset fstype c: 254787 0 non utilizzato 0 0 # parte "grezza", non "modificare d: 254787 0 4.2BSD 0 0 0

Cioè, puoi vedere che la sezione "funzionante" è stata creata con successo.

Per creare diverse partizioni, inclusa quella di root e per lo swap, abbiamo ancora bisogno di un'aritmetica simile al programma fdisk utilizzato nella modalità interattiva. Cioè, ogni sezione, che inizia con a, deve ricevere il valore dell'offset iniziale (il primo corrisponde al blocco iniziale dell'intera fetta, il resto - la somma dell'offset e la dimensione del precedente), dimensione (sempre in blocchi), tipo di file system (per partizioni "funzionanti" - 4.2BSD, per partizione di swap - swap) I campi dei parametri del file system possono essere lasciati vuoti - in questo caso verranno determinati i parametri del file system quando viene creata (cioè quando si “formatta”, in termini DOS, la partizione).

A questo punto la questione delle sezioni e delle sezioni in prima approssimazione può considerarsi chiusa. Naturalmente, le partizioni create non sono ancora utilizzabili: è necessario prima creare file system su di esse. Oppure, come dicono i "davanzali", formattarli. Cosa faremo nel prossimo futuro. Ma già - nella prossima sezione ...

Principali articoli correlati