Automatisches Mounten eines Netzlaufwerks beim FreeBSD-Start. MiniHowTo: FreeBSD-Festplattenmontage. Schnelles Erstellen einer Swap-Partition

Ich achte oft darauf, dass einfache Fragen im Internet oft schlecht abgedeckt werden. Das liegt wahrscheinlich daran, dass alle Gurus sicher sind, dass niemand jemals so dumme Fragen stellen wird, weil das jeder weiß. Aber meine Praxis hat gezeigt, dass gerade solche kleinen einfachen Fragen nicht nur bei Anfängern am häufigsten vorkommen, sondern auch bei ernsthaften Administratoren, die sich damit einfach nicht auseinandersetzen mussten. Selbst seriöse Administratoren machen das nicht alle Tage, aber um es nicht zu vergessen, behalten sie eine Art Spickzettel für sich, ohne es jemandem zuzugeben. Lassen Sie uns alles reparieren. Jetzt lernen Sie, wie Sie in 5 Minuten eine Festplatte zu FreeBSD hinzufügen. So. Zuerst wird eine vollständige Anleitung gegeben, um den Prozess zu verstehen, und am Ende wird es eine kurze Liste von Aktionen geben, die nur eine Liste von Befehlen als Spickzettel enthalten wird.

Detaillierte Anleitung mit Erklärungen

Auswählen eines Festplattennamens

Zuerst müssen wir den Namen des gerade hinzugefügten Geräts ermitteln. Der folgende Befehl hilft uns dabei:

Geom-Festplattenliste

Oder dieser Befehl:

Nockensteuerungs-Entwicklerliste

In einem realen System zeigen diese Befehle nützlichere Informationen, nämlich Gerätenamen und Seriennummern.

Vor der Installation des neuen Geräts wussten wir, dass unser System auf ada0 installiert war, also ist unsere neue Festplatte logischerweise ada1. Sie können dies anhand des Namens des neuen Geräts, seiner Seriennummer oder seines Volumens feststellen.

Lassen Sie uns nun prüfen, ob auf unserer neuen Festplatte ein Markup vorhanden ist

gpart show ada1

Die Festplatte hat keine Partition.

Vorhandenes Markup entfernen

Wenn die Festplatte bereits verwendet wurde und die Partition davon entfernt werden muss, führen Sie einfach Folgendes aus:

Gpart zerstört -F ada1

Erstellen eines GPT-Markups

Zuerst müssen wir ein Festplattenlayout erstellen. Ich empfehle dringend, MBR zu vergessen und zu einem neuen, bequemeren und funktionaleren zu wechseln - GPT.

Erstellen Sie eine GPT-Partition auf der Festplatte und überprüfen Sie dann, was passiert ist:

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

Jetzt haben wir eine GPT-Festplattenpartition. Aus der Ausgabe können Sie sehen, dass absolut die gesamte Festplatte, beginnend mit LBA 34 und endend mit LBA 8388541, leer ist. LBA 0-33 - vom System für die Partitionstabelle reserviert.

Nehmen wir an, wir müssen zwei Partitionen auf diesem Laufwerk erstellen:

  • Tauschen- Swap-Partition
  • Daten- ein Abschnitt vom Typ ufs zum Speichern aller von uns benötigten Daten.

Abschnitte (Slices) erstellen

Wenn die Installation auf modernen Festplatten mit einer Sektorgröße von 4 kb durchgeführt wird, muss beim Erstellen von Partitionen ein Alignment verwendet werden. Es gibt zwei Vorgehensweisen: 1) Wenn wir die Abschnittsparameter in Blöcken angeben, dann geben Sie die Blocknummer in Vielfachen von 8 ein, zum Beispiel: -b 40; 2) Wenn wir die Größe des Abschnitts in Bytes angeben oder den Anfang und die Größe überhaupt nicht angeben, verwenden Sie den Parameter -ein 4k, die den Anfang und das Ende des Abschnitts in 4-kb-Sektoren einpasst. Da wir in diesem Beispiel eine Testinstallation auf einer virtuellen Festplatte durchführen, kann dies entfallen. In jedem Fall müssen Sie vor dem Erstellen von Partitionen die Sektorgröße Ihres Laufwerks genau kennen, da dies sonst zu schrecklichen Arbeitsunterbrechungen führt.

Lassen Sie uns jetzt Abschnitte erstellen. Dazu gibt es einen gpart add-Befehl mit verschiedenen Optionen. Erster Parameter -t- gibt den Typ des erstellten Dateisystems an. In unserem Fall werden zwei Typen verwendet: freebsd-swap und freebsd-ufs. Im Folgenden sind zwei optionale Parameter aufgeführt: -b- gibt die LBA-Nummer an, aus der die Partition erstellt werden soll. Wenn Sie diesen Parameter nicht angeben, wird die Partition automatisch aus der ersten freien LBA erstellt. -s- gibt die Größe der Partition in der LBA an. Die Größe eines LBA-Blocks = 512 Bytes. Es ist wünschenswert, die Anzahl der LBA-Blöcke anzugeben, es ist jedoch auch möglich, in Kilo/Mega/Giga/… Bytes (Suffix k/M/G) anzugeben. Wenn Sie diesen Parameter nicht angeben, wird die Partition bis zur maximal möglichen LBA innerhalb des leeren Bereichs erstellt. Sie können auch eine Abschnittsbezeichnung als Parameter angeben, z. B.: -l swap1- In diesem Fall wird das Label /dev/gpt/swap1 erstellt, mit dem Sie bequemer auf die Partition zugreifen können. Der letzte erforderliche Parameter ist der Pfad zum Datenträger. In unserem Fall: /dev/ada1.

Lassen Sie uns zwei Partitionen erstellen und dann sehen, was wir bekommen. Wir werden die erste Partition erstellen, ohne die anfängliche LBA anzugeben, aber die Größe von 1 GB (2097152 Blöcke) anzugeben. Wir erstellen die zweite Partition ohne Angabe der anfänglichen LBA und ohne Angabe der Größe - auf diese Weise wird sie auf dem gesamten freien Speicherplatz erstellt.

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

Die Größe kann in Bytes statt in Blöcken angegeben werden. Es ist viel bequemer. Der einzige Nachteil ist, dass das System die Anzahl der Blöcke nicht immer korrekt berechnen kann. Es kann Fälle geben, in denen eine bestimmte Anzahl von Blöcken auf der Festplatte leer bleibt, wenn die Partitionsgröße in Byte angegeben wird.

Erstellen eines Dateisystems (Formatieren)

Swap-Partitionen müssen nicht formatiert werden. Abschnitte wie ufs müssen jedoch vor der Verwendung formatiert werden. Richtiger wäre zu sagen: Auf ihnen muss ein Dateisystem angelegt werden.

Um ein Dateisystem auf der zweiten Partition zu erstellen, führen Sie einfach den folgenden Befehl aus:

Newfs -U /dev/ada1p2

In diesem Fall wurde der Parameter -U verwendet – er zeigt an, dass der Soft-Updates-Mechanismus in diesem Dateisystem verwendet werden sollte. Sie können diese Option nicht verwenden, um diesen Mechanismus zu deaktivieren.

Montage

Der nächste Schritt ist das Mounten der Partitionen. Lassen Sie uns zuerst, nicht zu vergessen, unsere neuen Abschnitte zu /etc/fstab hinzufügen. Meine Datei sieht nach der Bearbeitung so aus:

Um alle Partitionen gemäß der Datei /etc/fstab neu einzuhängen, führen Sie einfach den Befehl aus:

Mount-a

Wie Sie der Ausgabe entnehmen können, ist die Partition /dev/ada1p2 gemountet. Sehen wir uns nun an, was mit der SWAP-Partition passiert ist. Lassen Sie uns den Befehl ausführen:

Wie Sie sehen, ist die neue SWAP-Partition nicht gemountet. Um SWAP zu mounten, müssen Sie es mit einem speziellen Befehl aktivieren:

Tausche /dev/ada1p1

Auf die gleiche Weise müssen Sie mit dem Befehl swapoff die SWAP-Partition deaktivieren, bevor Sie irgendwelche Aktionen darauf ausführen.

Damit sind alle Schritte zum Hinzufügen einer neuen Festplatte zum System abgeschlossen.

Kurzanleitung

Gegeben: Festplatte /dev/ada1

Ziel: Löschen Sie die vorhandene Partition, erstellen Sie eine neue GPT-Partition, erstellen Sie zwei Partitionen: Swap und Data, und verbinden Sie sie mit dem Arbeitssystem.

Nach jedem Schritt tun gpart zeigen um das Ergebnis zu sehen. Sequenzierung:

  1. Vorhandenes Markup entfernen: gpart destroy -F ada1
  2. Neues Layout erstellen: gpart create -s gpt /dev/ada1
  3. Erstellen Sie zwei Partitionen: swap und data: gpart add -t freebsd-swap -s 2097152 /dev/ada1 gpart add -t freebsd-ufs /dev/ada1
  4. Dateisystem erstellen UFSv2 auf der zweiten Partition: newfs -U /dev/ada1p2
  5. Fügen Sie Zeilen zu /etc/fstab hinzu, um beim Booten automatisch zu mounten: /dev/ada1p1 none swap sw 0 0 /dev/ada1p2 /mnt ufs rw 2 2
  6. Mounten Sie eine neue Partition (der Befehl mountet alle Partitionen aus der Datei /etc/fstab): mount -a
  7. Aktivieren Sie die neue Swap-Partition mit dem Befehl: swapon /dev/ada1p1

Damit ist die Einrichtung abgeschlossen.

Die Aufgabe, Speicherplatz für die Nutzung vorzubereiten, endet nicht mit der Erstellung von Partitionen und Dateisystemen darauf. Alle erstellten Dateisysteme müssen FreeBSD noch zur Verfügung gestellt werden. Warum sie gemountet werden sollten - das heißt, in einer einzigen Hierarchie von Verzeichnissen und Dateien enthalten sein, die auch verwendet wird, um den Namen des Dateisystems anzugeben. Wenn es jedoch früher um die physische Organisation von Daten ging, ist es jetzt an der Zeit, sich mit ihrer Logik vertraut zu machen.

Logik des Dateisystems

Logischerweise ist das FreeBSD-Dateisystem (wie jedes Unix-System) baumartig organisiert: An seiner Basis befindet sich das Stammverzeichnis (das Stammverzeichnis, gekennzeichnet durch das Symbol / und auch Stammverzeichnis genannt; letzteres sollte nicht verwechselt werden mit dem /root-Verzeichnis, das als Home-Verzeichnis für den Superuser dient).

Vom Stammverzeichnis, das eher einem Baumstamm ähneln kann, gehen Äste ab - darin verschachtelte Unterverzeichnisse und Triebe - gewöhnliche Dateien. Letztere sind jedoch wenige: In FreeBSD-Versionen ist dies eine Art Entropiedatei (/entropy) und eine Datei mit einer Beschreibung des Urheberrechts an dem System /COPYRIGHT .

Aber es gibt ziemlich viele Unterverzeichnisse im Stammverzeichnis, und einige von ihnen sind sehr komplex und enthalten eine ganze Menge verschachtelter Unterverzeichnisse auf tieferen Ebenen.

Prinzipiell ist die Verzeichnishierarchie in allen Unix-Systemen ähnlich, da sie erstens durch eine lange Tradition und zweitens durch allerlei standardisierende Dokumente geregelt wird, insbesondere durch den inzwischen vorliegenden FHS (Filesystem Hierarchy Standard). Russische Übersetzung (für die Viktor Kostromin danke).

Der FHS-Standard wurde ursprünglich entwickelt, um die Verzeichnisstruktur zahlreicher Linux-Distributionen zu optimieren. Und erst später wurde es für andere Unix-ähnliche Systeme (einschließlich des BSD-Clans) angepasst. Es ist jedoch die FreeBSD-Verzeichnishierarchie, die als Beispiel für die beispielhafte Einhaltung des Geistes der FHS dienen kann. Und buchstäblich Stückabweichungen darin von seinem Buchstaben sind immer funktional bedingt.

Der FHS-Standard basiert auf zwei Grundprinzipien – einer klaren Trennung in der Dateihierarchie von freigegebenen und nicht freigegebenen Verzeichnissen einerseits und unveränderlichen und veränderlichen andererseits.

Der Gegensatz zwischen gemeinsam genutzten und nicht gemeinsam genutzten Verzeichnissen ist auf die inhärente Netzwerknatur von Unix im Allgemeinen und FreeBSD im Besonderen zurückzuführen. Das heißt, Daten, die sich auf den lokalen Computer beziehen (z. B. Konfigurationsdateien für seine Geräte), sollten in Verzeichnissen liegen, die von denen getrennt sind, deren Inhalte von anderen Computern im Netzwerk verfügbar sind, lokal oder global (ein Beispiel dafür sind nicht nur Benutzerdaten , sondern auch Programme) .

Das Wesen des Gegensatzes von unveränderlichen und veränderlichen Verzeichnissen lässt sich leicht an einem Beispiel erklären. Daher sollten die gleichen Benutzerprogramme ihrer Natur nach unveränderlich sein (oder vielmehr nur dem Systemadministrator zur Änderung zur Verfügung stehen, nicht aber dem Benutzer selbst, der sie bei seiner Arbeit verwendet). Gleichzeitig erzeugen diese Programme während ihrer Arbeit nicht nur Datendateien, etwa Texte oder Bilder (deren sich ändernde Natur ohne Kommentare klar ist), sondern alle Arten von Serviceinformationen, wie z. B. Protokolldateien, temporäre Dateien usw.). Diese sollten in Verzeichnissen gruppiert werden, die von den eigentlichen ausführbaren Dateien von Programmen, Bibliotheken, Konfigurationsdateien usw. getrennt sind, die für ihren Start erforderlich sind.

Die strikte Einhaltung des Konzepts der Trennung von gemeinsam genutzten und nicht gemeinsam genutzten, unveränderlichen und unveränderlichen Verzeichnissen ermöglicht es, im Rahmen einer einzigen baumartigen Dateihierarchie ihre einzelnen Zweige physisch zu isolieren - dh in Form von unabhängigen Dateien Systeme, die sich auf isolierten Geräten befinden (Festplatten, Festplatten-Slices, Partitionen; im allgemeinen Fall - und auf entfernten, mit dem Netzwerk verbundenen Medien, aber darauf wird jetzt nicht eingegangen). Dafür gibt es viele Gründe - sowohl eine Erhöhung der Geschwindigkeit als auch eine Erhöhung der Zuverlässigkeit und einfach Überlegungen zur Bequemlichkeit -, aber wir werden jetzt nicht darüber sprechen. Denn jetzt geht es uns nur noch darum, dass diese Zweige des Dateibaums in ein gemeinsames Dateisystem eingebunden werden.

In Unix-Systemen wird jede Datei (einschließlich eines Verzeichnisses) vom System nicht anhand ihres Namens erkannt, sondern anhand der eindeutigen Kennung ihres Eintrags in der Tabelle Inodes. Es gibt Möglichkeiten, diese Dateikennungen anzuzeigen. Einer ist der Befehl ls mit der Option -i, der die IDs jeder benannten Datei auflistet. Gegeben für das Root-Verzeichnis -

$ ls -i /

es zeigt uns ein etwas unerwartetes Bild (der Einfachheit halber werden Informationen über gewöhnliche Dateien und symbolische Links im Stammverzeichnis von der Ausgabe ausgeschlossen, und die verbleibenden Verzeichnisse werden nach ihren Bezeichnern sortiert):

2 ../ 2 ./ 2 dev/ 2 home/ 2 tmp/ 2 usr/ 2 var/ 3 cdrom/ 4 mnt/ 5 root/ 8257 dist/ 8258 bin/ 8294 proc/ 8295 sbin/ 16512 stand/ 24768 etc/ 24776 Stiefel/

Aus diesem Beispiel (in Bezug auf das Dateisystem der Maschine, auf der diese Zeilen geschrieben sind) ist ersichtlich, dass bis zu 7 Verzeichnisse dieselben digitalen Kennungen gleich 2 haben. Die Frage ist, was hier die Eindeutigkeit ist?

Die ersten beiden Elemente der Liste sind leicht verständlich: ./ ist die Bezeichnung des aktuellen Verzeichnisses (in diesem Fall das Wurzelverzeichnis) und ../ ist das übergeordnete Verzeichnis des aktuellen; und da es in der Dateihierarchie per Definition nichts über dem Stamm gibt, steht der Stamm für sich selbst. Daher ist es nicht verwunderlich, dass ./ und ../ denselben Bezeichner haben - es handelt sich um unterschiedliche Bezeichnungen (harte Links oder mit anderen Worten doppelte Namen) für dasselbe Wurzelverzeichnis.

Aber genauso, wie es auf den ersten Blick scheint, ist der Wert des Bezeichners für die Verzeichnisse /dev , /home , /tmp , /usr , /var erklärungsbedürftig. Es ist jedoch einfach: All dies sind Verzeichnisse, in denen unabhängige Dateisysteme eingehängt sind, die sich entweder auf separaten Geräten befinden - Festplattenpartitionen, wie die Verzeichnisse /home , /usr , /var , oder virtuelle Dateisysteme, die auf keinem realen aufbauen disk device (das /dev-Verzeichnis mit dem Geräte-Dateisystem und in diesem Fall das /tmp-Verzeichnis, in dem das In-Memory-Dateisystem gemountet ist, worüber wir später sprechen werden). Und seit dem Tisch Inodes- unterschiedlich für jedes Dateisystem, es ist nicht verwunderlich, dass die Wurzel jedes von ihnen durch die Nummer 2 identifiziert wird - Nummerierung Inodes in ihnen geht in ihren eigenen Bezugsrahmen.

Mounten ist also das Einfügen eines Dateisystems aus dem System in eines der Verzeichnisse, die im Root-System vorhanden sind (nicht unbedingt direkt im Root-System, es kann auf jeder Verschachtelungsebene liegen, was unten veranschaulicht wird). Ohne dies sind die Verzeichnisse und Dateien eines solchen gemounteten Systems einfach nicht zugänglich. Dies ist wichtig zu verstehen, wenn man mit Ausdrücken wie "erzeuge ein /usr-Dateisystem" konfrontiert wird. Aus dem oben Gesagten geht hervor, dass es (durch den Befehl newfs) nur eine Art abstraktes Dateisystem erstellt wird und seinen "Namen" erst zum Zeitpunkt des Einhängens in das angegebene Verzeichnis erhält.

Interessanterweise wird der Bezeichner des einzubindenden Verzeichnisses (auch Einhängepunkt, Einhängepunkt genannt) nur zum Zeitpunkt des Einhängens erfasst. Um dies zu überprüfen, führen wir ein einfaches Experiment durch. Im /mnt-Verzeichnis, das speziell für das Mounten temporär gemounteter Dateisysteme entwickelt wurde, können Sie drei Unterverzeichnisse sehen - /mnt/disk , mnt/iso , /mnt/usb (dies ist auf meinem System, ich habe sie für meine eigene Bequemlichkeit erstellt; ursprünglich ist das Verzeichnis /mnt in FreeBSD leer). Beim Systemstart ist nichts in ihnen gemountet, und ihr normaler Zustand ist leer. Wenn Sie sich ihre Identifikatoren ansehen, können Sie Folgendes sehen:

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

Nehmen wir jetzt ein Flash-Laufwerk mit einer USB-Schnittstelle in / mnt / usb (dafür habe ich es vorgesehen) und wiederholen Sie die Überprüfung. Und wir sehen:

18 Festplatten/ 24 ISO/ 2 USB/

Das heißt, die Bezeichner der leer gebliebenen Verzeichnisse (/mnt/disk und /mnt/iso) haben sich nicht geändert, und der Bezeichner des Verzeichnisses /mnt/usb wurde auf magische Weise auf 2 geändert. Denn zum Zeitpunkt des Mountens wurde es der root für ein eigenes Dateisystem und Ausgangspunkt für Berechnungen Inodes alle Dateien darauf.

Lassen Sie uns ein wenig abschweifen und uns an harte Links erinnern, durch die dasselbe geschieht Inode und zugehörige Datenblöcke können unterschiedliche Namen erhalten. Jetzt ist klar, warum alle solche doppelten Dateien im selben Dateisystem sein sollten: Schließlich haben verschiedene Dateisysteme ihre eigene, nicht übereinstimmende Nummerierung Inodes, und es ist unmöglich, sie anhand von Nummern zu identifizieren (wie würde das System sonst zwischen den /usr- und /var-Verzeichnissen aus unserem Beispiel unterscheiden - schließlich sind die Dateinamen zu tief für sie). Für symbolische Links, die ihre eigenen haben Inode(eigentlich und fast nichts als sie) mit ihren Identifikatoren, die im Referenzsystem des Dateisystems nummeriert sind, in dem sie sich befinden, gibt es keine solche Einschränkung. Und symbolische Links können überall liegen (auch auf einem entfernten Rechner – nicht nur auf einer anderen Partition).

Kehren wir jedoch zum Beispiel unseres Stammverzeichnisses zurück. Aus allem, was bisher betrachtet wurde, ist ersichtlich, dass einige seiner Zweige auf separaten Partitionen liegen und ihre eigenen Dateisysteme bilden (tatsächlich haben wir sie deshalb beide erstellt). Und daher müssen sie alle montiert werden.

Montagepraxis

Der Zweck des Mountens ist der Mount-Befehl, der entweder automatisch während des Systemstarts oder manuell über die Befehlszeile ausgeführt wird. Eigentlich wird im vollen Sinne ohnehin nur das Root-Dateisystem automatisch gemountet. Es muss sich nicht auf einem Datenträger befinden – beim Starten von einer Rettungs-CD oder anderen Sicherheitsmedien kann es sich auf einem virtuellen Datenträger im RAM befinden.

Однако процесс монтирования корневой файловой системы столь же неизбежен, как победа социализма в мировом масштабе: также, как социализм, не победив в мировом масштабе, просто утрачивает способность к существованию (что мы не так давно и наблюдали), так и ОС без корневой системы существовать kann nicht. Unter Linux löst dies den Kernel-Panic-Modus aus – so etwas wie den Zustand, in den unsere Führer vor 20 Jahren geraten sind. Richtig, sie erwiesen sich als stärker als Linux "und erholten sich ziemlich schnell - also müssen wir bis jetzt neu starten" yat (oder neu starten? - und wir werden stärker :)). Dies gilt jedoch nicht für den Fall der Montage, den ich Ihnen nun zu präsentieren versuche.

Um also alle Dateisysteme mit Ausnahme des Stammverzeichnisses einzuhängen, müssen Sie etwas unternehmen. Zuerst sehen wir uns an, wie man sie von Hand macht und dann, wie man sie in den entsprechenden Konfigurationsdateien verewigt.

Also der Mount-Befehl. Eigentlich handelt es sich um eine ganze Familie von Programmen, von denen jedes darauf ausgelegt ist, Dateisysteme bestimmter Typen zu mounten - nicht nur UFS, sondern auch alle von FreeBSD unterstützten. Die Liste davon ist sehr umfangreich - Sie können sich ein Bild davon machen, indem Sie sich dieses Thema im /sbin-Verzeichnis ansehen:

$ ls -1 /sbin/mount*

was wird uns die Antwort geben

/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*

Jeder Befehl in dieser Liste ist für das Mounten eines anderen Dateisystemtyps verantwortlich, auf einige davon werden wir später noch zurückkommen. In der Zwischenzeit notieren wir nur das eigentliche /sbin/mount , das für die Arbeit mit UFS und UFS2 entwickelt wurde.

Es wird von der Befehlszeile aus aufgerufen und erfordert zwei Argumente - den Namen des einzuhängenden Geräts und den Einhängepunkt (d. h. das Verzeichnis, in das das zugrunde liegende Dateisystem eingehängt werden soll). Der Gerätename muss einen Patrizier bezeichnen, der bereits auf einem vorhandenen BSD-Slice mit einem darauf erstellten UFS2 (UFS)-Dateisystem markiert ist, z.

$ mount /dev/ads0d /usr

hängt das Dateisystem auf der angegebenen Partition in das Verzeichnis /usr im Stammverzeichnis des Dateibaums ein. Wenn das Dateisystem auf dem Gerät nicht erstellt wurde oder einen anderen Typ als UFS/UFS2 hat, folgt eine Fehlermeldung - ein Hinweis auf einen falschen Superblock: Anders als das gleichnamige Linux-Dienstprogramm kann das FreeBSD-Mount-Kommando selbst nicht erkennen der Dateisystemtyp.

Der Einhängepunkt hat die folgenden Anforderungen: a) ein Verzeichnis mit diesem Namen muss zum Zeitpunkt des Einhängens existieren und b) so leer wie möglich sein. Ersteres ist obligatorisch, zweites nicht. Das Mounten in ein Verzeichnis mit einigen Dateien wird reibungslos verlaufen (denken Sie daran, dass dies unter Linux vor nicht allzu langer Zeit zum Absturz des Systems führte), aber alle seine Inhalte werden unzugänglich, bis das Mounten aufgehoben wird. Und wenn die darin enthaltenen Dateien für irgendein Subsystem eine bedeutende Rolle spielen, kann das allerlei schlimme Folgen nach sich ziehen. Wenn zum Beispiel der Inhalt des /tmp-Verzeichnisses gesperrt wird, indem dort ein Dateisystem gemountet wird, während das X-Window-System läuft, ist das Ergebnis wahrscheinlich ein Absturz des X-Servers. Glücklicherweise können Sie bei Bedarf eine kombinierte Montage durchführen (siehe unten).

In der angegebenen Form wird der Mount mit einigen Standardeigenschaften durchgeführt: Das Dateisystem wird im sogenannten Modus zum Lesen / Schreiben verfügbar sein. noasync (dasjenige, in dem Metadatenoperationen synchron ausgeführt werden und Datenoperationen asynchron sind). Sie können diese Position mit den Werten der Option -o ändern. Es gibt eine ganze Reihe von ihnen, aber in dieser Phase werden für uns praktisch die wichtigsten sein:

  • async - bietet einen vollständig asynchronen Modus (trotz der düsteren Warnungen in den vorherigen Anmerkungen werde ich später über eine Situation sprechen, in der dies gerechtfertigt sein kann);
  • sync - im Gegenteil, die Einbeziehung eines vollständig synchronen Modus (ich verstehe jedoch nicht wirklich, warum dies praktisch notwendig ist);
  • noatime ist eine sehr nützliche Option, die verhindert, dass das Attribut der letzten Zugriffszeit auf Dateien aktualisiert wird, was die Leistung erheblich verbessert;
  • rdonly - Mountet das Dateisystem im Nur-Lese-Modus (manchmal notwendig);
  • union ist die gleiche Option, mit der Sie einen Union-Mount durchführen können, bei dem der vorherige Inhalt des Mount-Point-Verzeichnisses sichtbar bleibt; wahr - mit einigen Einschränkungen - siehe man (8) mount .

Es gibt mehrere andere Werte der Option -o, die verhindern, dass bestimmte Dateitypen auf dem gemounteten Dateisystem abgelegt werden, z. B. ausführbare Dateien (-o noexec), Gerätedateien (-o nodev) oder Dateien mit dem so- namens. bisschen Urteil. Sie sind jedoch vor allem für Serveradministratoren von praktischer Bedeutung und dienen Sicherheitszwecken. Auf einem Desktop-Rechner sieht die übliche Form eines Mounts etwa so aus:

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

All dies gilt nur für das Mounten von FreeBSD-Dateisystemen. In der Praxis wird es jedoch oft notwendig, andere Arten von Dateisystemen in seinen Verzeichnisbaum aufzunehmen. Dies wird besonders häufig für ISO9660 (das übliche Dateisystem für alle CDs außer Macs) und FATs verschiedener Art benötigt. In diesem Fall muss der entsprechende Mount-Befehl explizit aufgerufen werden, z. B.

$ mount_cd9660 /dev/acd0 /cdrom

eine kompakte zu montieren, oder

$ mount_msdosfs /dev/ad## /mnt

für FAT" aber jeglicher Art (einschließlich FAT32). Dies kann jedoch auch indirekt erfolgen, indem der Mount-Befehl mit der Option -t file system_type angegeben wird. Also der Befehl

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

wird das Linux-Dateisystem einhängen (falls im Kernel aktiviert). Gleichzeitig wird das Standard-Mount für BSD-Partitionen einfach durch den Befehl /mount_ext2fs ersetzt, der zum Mounten von ext2fs-Partitionen (und auch ext3fs - aber natürlich ohne Logging-Funktionen) gedacht ist. Das ist das Formular

$ mount -t Dateityp ... ...

wird das vollständige Äquivalent des Befehls sein

$ mount_fstype ... ...

Alle Dateisystem-Mounts (einschließlich Wechselmedien) in FreeBSD erfordern Superuser-Rechte. Die Option -o enthält hier im Gegensatz zur Linux-Version des Mount-Befehls nicht die Option -o user, die normalen Benutzern das Mounten ermöglicht. Es gibt zwar mehrere Möglichkeiten, dies zu umgehen, wie in einem besonderen Hinweis erläutert.

Automatisches Mounten konfigurieren

In der Praxis wird das manuelle Mounten jedoch nur für selten genutzte Dateisysteme verwendet. Alle Dateisysteme, die für das Funktionieren von FreeBSD grundlegend wichtig sind, werden beim Systemstart automatisch gemountet, häufig verwendete werden sozusagen halbautomatisch gemountet.

Beim automatischen Mounten wird das Mount-Programm während des Bootvorgangs von den Initialisierungsskripten ausgeführt. Es sucht seine Konfigurationsdatei, /etc/fstab , und mountet alles, was es darin findet, mit ein paar Ausnahmen (siehe unten).

Die Datei /etc/fstab selbst wird automatisch generiert, wenn FreeBSD installiert wird, einschließlich aller Dateisysteme, die benötigt werden, um es am Laufen zu halten. Später kann es jedoch manuell bearbeitet werden, um neue Geräte für die Montage oder zusätzliche Optionen für bereits enthaltene Geräte einzuführen.

Die Datei /etc/fstab ist eine einfache Datenbank im Textformat (getrennt durch Leerzeichen oder Tabulatoren), einschließlich der folgenden Felder:

  • Gerät - der Dateiname des Geräts, auf dem sich das Dateisystem befindet, ähnlich dem ersten Argument des Mount-Befehls bei manueller Verwendung;
  • Mountpoint - Einhängepunkt (entspricht dem zweiten Argument des Einhängebefehls);
  • FStype - Dateisystemtyp, angegeben auf die gleiche Weise wie der Wert der Option -t;
  • Optionen - zusätzliche Mount-Optionen, ähnlich den Werten der Option -o;
  • Dump - Bedingungen zum Durchführen einer Dateisystemsicherung durch das Dump-Dienstprogramm;
  • Pass# - Bedingungen für die Überprüfung des Dateisystems mit dem Dienstprogramm fsck.

In einem frisch installierten FreeBSD enthält /etc/fstab unbedingt die folgenden Einträge (Beispiel für den 1. Slice der Master-Festplatte auf dem 1. IDE-Kanal):

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

Wenn Sie dem Rat vernünftiger Leute (und den sysinstall-Standardeinstellungen) folgen und einige Zweige des Dateisystems aus dem Stammverzeichnis auswählen, werden die aufgelisteten hinzugefügt (wenn der Slice automatisch durch sysinstall markiert wird) und Einträge wie

/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

verantwortlich für das Dateisystem mit Benutzer-Home-Verzeichnissen.

Offensichtlich können Sie im Feld Optionen alle verfügbaren (und sinnvollen) Werte der Option -o (durch Kommas getrennt, ohne Leerzeichen) hinzufügen, zum Beispiel noatime für alle Dateisysteme und für /tmp - auch async , da der Inhalt dieses Verzeichnisses nach dem Neustart nicht gespeichert werden soll.

Das Obige gilt für Dateisysteme, die beim Start automatisch gemountet werden. Allerdings macht sich niemand die Mühe, bei Systemen, die hin und wieder angeschlossen werden, Einträge in /etc/fstab zu machen - in diesem Fall können sie nach einem vereinfachten Schema gemountet werden (das meinte ich oben unter halbautomatischem Modus). Für ein CD-Laufwerk können Sie also eine Zeile hinzufügen (tatsächlich erscheint sie automatisch beim Generieren der /etc/fstab-Datei, wenn CD als Installationsquelle in sysinstall ausgewählt wurde)

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

wobei die Optionen, wie Sie sich denken können, kein Mounten beim Start (noauto) und einen schreibgeschützten Modus (ro) vorschreiben. Danach genügt es, um die CD zu mounten, nur den Mount-Punkt anzugeben -

$ mount /cdrom

oder. im Gegensatz dazu der Dateiname des Geräts

$ mount /dev/acd0

Ähnliche Einträge können für alle Wechseldatenträger (Zip, USB-Laufwerke, sogar Disketten) und für Nicht-BSD-Partitionen (FAT oder Ext2fs) vorgenommen werden. Übrigens können Sie Dateisysteme nach einem vereinfachten Schema sofort nach Änderungen an /etc/fstab mounten, ohne auf einen Neustart der Maschine warten zu müssen.

Aushängen

Alle beteiligten Dateisysteme müssen ausgehängt werden, bevor der Computer ausgeschaltet oder neu gestartet wird. Beim sauberen Herunterfahren wird dies automatisch durchgeführt, wodurch jedes beschreibbare Dateisystem ein sauberes Unmount-Bit erhält, das in seinen eigenen Superblock geschrieben wird. Das Vorhandensein dieses Bits hindert das System daran, Dateisysteme beim nächsten Systemstart mit dem Dienstprogramm fsck auf Konsistenz zu prüfen.

In einigen Fällen (z. B. beim Aktivieren oder Deaktivieren des Soft-Updates-Mechanismus oder zum Durchführen einer Integritätsprüfung) ist es jedoch erforderlich, Dateisysteme manuell zu unmounten (und erneut zu mounten), wofür der Befehl umount verwendet wird. Es erfordert ein einziges Argument - das Angeben des Einhängepunkts des Dateisystems, das aus dem Verzeichnisbaum "entfernt" wurde, zum Beispiel:

$menge /tmp

oder, wie im Fall eines halbautomatischen Mounts, der Dateiname des "heruntergefahrenen" Geräts:

$ umount /dev/ad#s#?

Sie können mehrere Dateisysteme mit einer Zeile aushängen:

$ umount /usr /var /home

Oder Sie können - alle gemounteten Dateisysteme oder alle Dateisysteme, die in der Datei /etc/fstab aufgeführt sind (außer dem Stammverzeichnis), für die Optionen erforderlich sind

$ Menge -A

$ Menge -a

bzw. Es ist auch möglich, Dateisysteme bestimmter Typen auszuhängen, indem Sie die Werte der Option -t angeben. Ja, die Mannschaft

$ umount -t ufs

hängt nur BSD-Partitionen aus, ohne die CD und alles andere, was am System beteiligt ist, zu beeinträchtigen.

Dateisysteme zum Zeitpunkt des Unmountens sollten nicht verwendet werden, dh es sollte kein Zugriff auf die darauf befindlichen Dateien erfolgen. Das Vorhandensein in einem beliebigen Verzeichnis des Dateisystems ist also ein ausreichender Grund, das Unmounten zu verweigern (mit einer Meldung wie device busy), weshalb keiner der oben genannten Befehle in der Lage sein wird, das Root-Dateisystem zu unmounten. Der Grund für die Ablehnung des Unmountens wird auch das Lesen der Datendatei durch ein Programm sein - wie beim Löschen einer Datei wird ein Dateideskriptor, der von einem beliebigen Prozess geöffnet wird, dies nicht zulassen.

Sie können das verwendete Dateisystem aber auch aushängen – dazu müssen Sie den umount-Befehl mit der Option -f (from force – also forciert) geben. Dies kann zwar zu Fehlern führen, daher ist es besser, nicht darauf zurückzugreifen, es sei denn, dies ist absolut notwendig. Und die erzwungene Unmount-Option hat keine Auswirkung auf das Root-Dateisystem.

Massenmontage

Um nach dem Ausführen von Low-Level-Operationen auf Dateisystemen weiterarbeiten zu können, müssen sie wieder gemountet werden. Das geht nicht nur ohne Neustart, sondern auch ohne mühsames individuelles Mounten. Es reicht aus, auf die Option -a zurückzugreifen:

$ mount -a

Dadurch werden alle Dateisysteme gemountet, für die Einträge in /etc/fstab vorhanden sind. Dadurch wird versucht, auch diejenigen zu mounten, die mit dem noauto-Flag gekennzeichnet sind. Um dies zu vermeiden, können Sie zusätzlich den Dateisystemtyp angeben. Das ist der Befehl

$ mount -a -t ufs

mountet nur BSD-Partitionen und greift nicht in CDs oder Flash-Laufwerke ein. Oder Sie können im Gegenteil einige der in /etc/fstab aufgeführten Dateisysteme vom globalen Mount-Prozess ausschließen, z. B. derzeit unnötige FATs:

$ mount -a -t nomsdosfs

Präambel statt Schluss

Übrigens zeigt der Mount-Befehl ohne Optionen und Argumente (und in dieser Form kann er im Gegensatz zu allen oben diskutierten Fällen auch von einem normalen Benutzer gegeben werden) eine Liste der aktuell gemounteten Dateisysteme an, die den Mount-Punkt und seine Bedingungen angibt und Betriebsart. Für die Maschine, auf der diese Zeilen geschrieben werden, sieht die Ausgabe beispielsweise so aus:

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

Die erste Zeile der Ausgabe zeigt, dass die Partition /dev/ad0s1a in unserem Root-Verzeichnis gemountet ist, ein UFS-Dateisystem (in diesem Fall speziell UFS2, aber sie unterscheiden sich nicht in der Ausgabe des Mount-Befehls) mit sich führt Der Soft-Updates-Mechanismus ist aktiviert, ist lokal (d. h. auf dem Laufwerk dieses Computers - Netzlaufwerke werden ebenfalls durch den Mount-Befehl gemountet) und ist von der Aktualisierung des atime-Attributs nicht betroffen.

$ more /etc/fstab /dev/ad0s1b kein Austausch sw 0 0 /dev/ar0s1b kein Austausch 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

Wir werden diese eine der Ausgabezeilen sehen

Devfs auf /dev (devfs, lokal)

Es gibt überhaupt keine Korrespondenz zwischen seinen Aufzeichnungen. Was sind diese Geräte und Dateisysteme?

Startseite > Betriebssysteme > UNIX > BSD > FreeBSD

Fügen Sie in 5 Minuten eine Festplatte zu FreeBSD hinzu

Ich achte oft darauf, dass einfache Fragen im Internet oft schlecht abgedeckt werden. Das liegt wahrscheinlich daran, dass alle Gurus sicher sind, dass niemand jemals so dumme Fragen stellen wird, weil das jeder weiß. Aber meine Praxis hat gezeigt, dass gerade solche kleinen einfachen Fragen nicht nur bei Anfängern am häufigsten vorkommen, sondern auch bei ernsthaften Administratoren, die sich damit einfach nicht auseinandersetzen mussten. Selbst seriöse Administratoren machen das nicht alle Tage, aber um es nicht zu vergessen, behalten sie eine Art Spickzettel für sich, ohne es jemandem zuzugeben. Lassen Sie uns alles reparieren. Jetzt lernen Sie, wie Sie in 5 Minuten eine Festplatte zu FreeBSD hinzufügen. So. Zuerst wird eine vollständige Anleitung gegeben, um den Prozess zu verstehen, und am Ende wird es eine kurze Liste von Aktionen geben, die nur eine Liste von Befehlen als Spickzettel enthalten wird.

Detaillierte Anleitung mit Erklärungen

Auswählen eines Festplattennamens

Zuerst müssen wir den Namen des gerade hinzugefügten Geräts ermitteln. Der folgende Befehl hilft uns dabei:

Geom-Festplattenliste

Oder dieser Befehl:

Nockensteuerungs-Entwicklerliste

In einem realen System zeigen diese Befehle nützlichere Informationen, nämlich Gerätenamen und Seriennummern.

Vor der Installation des neuen Geräts wussten wir, dass unser System auf ada0 installiert war, also ist unsere neue Festplatte logischerweise ada1. Sie können dies anhand des Namens des neuen Geräts, seiner Seriennummer oder seines Volumens feststellen.

Lassen Sie uns nun prüfen, ob auf unserer neuen Festplatte ein Markup vorhanden ist

gpart show ada1

Die Festplatte hat keine Partition.

Vorhandenes Markup entfernen

Wenn die Festplatte bereits verwendet wurde und die Partition davon entfernt werden muss, führen Sie einfach Folgendes aus:

Gpart zerstört -F ada1

Erstellen eines GPT-Markups

Zuerst müssen wir ein Festplattenlayout erstellen. Ich empfehle dringend, MBR zu vergessen und zu einem neuen, bequemeren und funktionaleren zu wechseln - GPT.

Erstellen Sie eine GPT-Partition auf der Festplatte und überprüfen Sie dann, was passiert ist:

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

Jetzt haben wir eine GPT-Festplattenpartition. Aus der Ausgabe können Sie sehen, dass absolut die gesamte Festplatte, beginnend mit LBA 34 und endend mit LBA 8388541, leer ist. LBA 0-33 - vom System für die Partitionstabelle reserviert.

Nehmen wir an, wir müssen zwei Partitionen auf diesem Laufwerk erstellen:

  • Tauschen- Swap-Partition
  • Daten- ein Abschnitt vom Typ ufs zum Speichern aller von uns benötigten Daten.

Abschnitte (Slices) erstellen

Wenn die Installation auf modernen Festplatten mit einer Sektorgröße von 4 kb durchgeführt wird, muss beim Erstellen von Partitionen ein Alignment verwendet werden. Sie können dies auf zwei Arten tun:
1) Wenn wir die Abschnittsparameter in Blöcken angeben, geben Sie die Blocknummer in Vielfachen von 8 ein, zum Beispiel: -b 40;
2) Wenn wir die Größe des Abschnitts in Bytes angeben oder den Anfang und die Größe überhaupt nicht angeben, verwenden Sie den Parameter -ein 4k, die den Anfang und das Ende des Abschnitts in 4-kb-Sektoren einpasst. Da wir in diesem Beispiel eine Testinstallation auf einer virtuellen Festplatte durchführen, kann dies entfallen. In jedem Fall müssen Sie vor dem Erstellen von Partitionen die Sektorgröße Ihres Laufwerks genau kennen, da dies sonst zu schrecklichen Arbeitsunterbrechungen führt.

Lassen Sie uns jetzt Abschnitte erstellen. Dazu gibt es einen gpart add-Befehl mit verschiedenen Optionen. Erster Parameter -t- gibt den Typ des erstellten Dateisystems an. In unserem Fall werden zwei Typen verwendet: freebsd-swap und freebsd-ufs. Im Folgenden sind zwei optionale Parameter aufgeführt: -b- gibt die LBA-Nummer an, aus der die Partition erstellt werden soll. Wenn Sie diesen Parameter nicht angeben, wird die Partition automatisch aus der ersten freien LBA erstellt. -s- gibt die Größe der Partition in der LBA an. Die Größe eines LBA-Blocks = 512 Bytes. Es ist wünschenswert, die Anzahl der LBA-Blöcke anzugeben, es ist jedoch auch möglich, in Kilo/Mega/Giga/… Bytes (Suffix k/M/G) anzugeben. Wenn Sie diesen Parameter nicht angeben, wird die Partition bis zur maximal möglichen LBA innerhalb des leeren Bereichs erstellt. Sie können auch eine Abschnittsbezeichnung als Parameter angeben, z. B.: -l swap1- In diesem Fall wird das Label /dev/gpt/swap1 erstellt, mit dem Sie bequemer auf die Partition zugreifen können. Der letzte erforderliche Parameter ist der Pfad zum Datenträger. In unserem Fall: /dev/ada1.

Lassen Sie uns zwei Partitionen erstellen und dann sehen, was wir bekommen. Wir werden die erste Partition erstellen, ohne die anfängliche LBA anzugeben, aber die Größe von 1 GB (2097152 Blöcke) anzugeben. Wir erstellen die zweite Partition ohne Angabe der anfänglichen LBA und ohne Angabe der Größe - auf diese Weise wird sie auf dem gesamten freien Speicherplatz erstellt.

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

Die Größe kann in Bytes statt in Blöcken angegeben werden. Es ist viel bequemer. Der einzige Nachteil ist, dass das System die Anzahl der Blöcke nicht immer korrekt berechnen kann. Es kann Fälle geben, in denen eine bestimmte Anzahl von Blöcken auf der Festplatte leer bleibt, wenn die Partitionsgröße in Byte angegeben wird.

Erstellen eines Dateisystems (Formatieren)

Swap-Partitionen müssen nicht formatiert werden. Abschnitte wie ufs müssen jedoch vor der Verwendung formatiert werden. Richtiger wäre zu sagen: Auf ihnen muss ein Dateisystem angelegt werden.

Um ein Dateisystem auf der zweiten Partition zu erstellen, führen Sie einfach den folgenden Befehl aus:

Newfs -U /dev/ada1p2

In diesem Fall wurde der Parameter -U verwendet – er zeigt an, dass der Soft-Updates-Mechanismus in diesem Dateisystem verwendet werden sollte. Sie können diese Option nicht verwenden, um diesen Mechanismus zu deaktivieren.

Montage

Der nächste Schritt ist das Mounten der Partitionen. Lassen Sie uns zuerst, nicht zu vergessen, unsere neuen Abschnitte zu /etc/fstab hinzufügen. Meine Datei sieht nach der Bearbeitung so aus:

Um alle Partitionen gemäß der Datei /etc/fstab neu einzuhängen, führen Sie einfach den Befehl aus:

Mount-a

Wie Sie der Ausgabe entnehmen können, ist die Partition /dev/ada1p2 gemountet. Sehen wir uns nun an, was mit der SWAP-Partition passiert ist. Lassen Sie uns den Befehl ausführen:

Wie Sie sehen, ist die neue SWAP-Partition nicht gemountet. Um SWAP zu mounten, müssen Sie es mit einem speziellen Befehl aktivieren:

Tausche /dev/ada1p1

Auf die gleiche Weise müssen Sie mit dem Befehl swapoff die SWAP-Partition deaktivieren, bevor Sie irgendwelche Aktionen darauf ausführen.

Damit sind alle Schritte zum Hinzufügen einer neuen Festplatte zum System abgeschlossen.

Kurzanleitung

Gegeben: Festplatte /dev/ada1

Ziel: Löschen Sie die vorhandene Partition, erstellen Sie eine neue GPT-Partition, erstellen Sie zwei Partitionen: Swap und Data, und verbinden Sie sie mit dem Arbeitssystem.

Nach jedem Schritt tun gpart zeigen um das Ergebnis zu sehen. Sequenzierung:

  1. Vorhandenes Markup entfernen:
    gpart zerstört -F ada1
  2. Neues Markup erstellen:
    gpart create -s gpt /dev/ada1
  3. Erstellen Sie zwei Partitionen: swap und data:
    gpart add -t freebsd-swap -s 2097152 /dev/ada1 gpart add -t freebsd-ufs /dev/ada1
  4. Dateisystem erstellen UFSv2 zum zweiten Abschnitt:
    newfs -U /dev/ada1p2
  5. Fügen Sie Zeilen zu /etc/fstab hinzu, um beim Booten automatisch zu mounten:
    /dev/ada1p1 keine Swap sw 0 0 /dev/ada1p2 /mnt ufs rw 2 2
  6. Mounten Sie eine neue Partition (der Befehl mountet alle Partitionen aus der Datei /etc/fstab):
    montieren -a
  7. Aktivieren Sie die neue Swap-Partition mit dem Befehl:
    swapon /dev/ada1p1 Material von der Seite:

NTFS ist das native Windows-Dateisystem. Daher funktioniert es nicht, nur Flash-Laufwerke, Festplatten oder andere uns unbekannte Wechselmedien anzuschließen (in Wahrheit wird es funktionieren, aber es wird Probleme geben). Deshalb veröffentlichen wir unser umfassendes Handbuch zu diesem Thema.


  1. Wie immer beginnt alles mit . Treiber für NTFS installieren: #cd /usr/ports/sysutils/fusefs-ntfs #make install clean
  2. Ab FreeBSD 10 ist Fuse Teil des Kernels. Mit Systemmodulen laden #nano /boot/loader.conf fuse_load="YES"

    Es funktioniert nach dem Neustart. Laden Sie dieses Modul in der aktuellen Sitzung manuell

    #kldload Sicherung

    Mit dem Befehl können Sie überprüfen, ob das Modul geladen ist oder nicht

    #kldstat

    Wenn die Liste enthält Sicherung.ko, es bedeutet, dass alles in Ordnung ist.

    #kldstat ID Refs Adresse Größe Name 1 3 0xffffffff80200000 1fa7c38 Kernel 2 1 0xffffffff821a9000 1a7c8 fuse.ko

  3. Als nächstes müssen wir entscheiden, wie das System ein Flash-Laufwerk oder eine externe Festplatte sieht: #dmesg | grep da

    Die Ausgabe wird in etwa so aussehen:

    Da0 bei umass-sim0 Bus 0 scbus1 Ziel 0 lun 0 da0: s/n 00H79BHRYGX22JBN abgetrennt (da0:umass-sim0:0:0:0): Peripherie zerstört da0 bei umass-sim0 Bus 0 scbus1 Ziel 0 lun 0 da0: Removable Direct Access SPC-4 SCSI-Gerät da0: Seriennummer 00H79BHRYGX22JBN da0: 40.000 MB/s überträgt da0: 14870 MB (30453760 512-Byte-Sektoren) da0: Quirks=0x12 da1 bei umass-sim1 Bus 1 scbus2 Ziel 0 lun 0 da1: s/n 8968888304C9BB52 abgesetzt (da1:umass-sim1:1:0:0): Peripherie zerstört da1 bei umass-sim1 Bus 1 scbus2 Ziel 0 lun 0 da1: Entfernbares Direct Access SCSI-2-Gerät da1: Seriennummer 8968888306C9BB52 da1: 40.000 MB/s Übertragungen da1: 1999 MB (4093952 512-Byte-Sektoren) da1: Macken=0x2

    Wir sehen, dass wir im System zwei Flash-Laufwerke mit Kennungen haben da0 und da1. In unserem Beispiel verwenden wir nur ein Flash-Laufwerk. da0.

  4. Mounten Sie es mit dem folgenden Befehl: ntfs-3g /dev/da0 /mnt

    /dev/da0- Das ist unser Flash-Laufwerk, das haben wir in Absatz 3 herausgefunden.
    /mnt ist der Einhängepunkt. Sie kann jeder sein.

    Wenn ein Fehler auftritt, mounten Sie die Flash-Laufwerkspartition. Nach dem Betreten

    Ntfs-3g /dev/da0

    Drücken Sie TAB und sehen Sie sich die Partitionen des Flash-Laufwerks an

    Da0 da0s1

    Und montieren Sie diesen Abschnitt

    Ntfs-3g /dev/da0s1 /mnt

  5. Wir gehen in das Verzeichnis, in dem wir das Flash-Laufwerk gemountet haben, und sehen dort seinen Inhalt: #cd /mnt #ll total 13 drwxrwxrwx 1 root wheel 0 4 Nov. 17:23 System Volume Information/ -rwxrwxrwx 1 root wheel 9 Nov 4 18:05 xxx.xxx* -rwxrwxrwx 1 Wurzelrad 22. Nov. 4 18:04 ZIP-Archiv - WinRAR.zip* -rwxrwxrwx 1 root wheel 9904 4. Nov 18:04 Microsoft Office Excel-Tabelle.xlsx*

    Jetzt können Sie Dateien auf den USB-Stick schreiben und von dort lesen.

  6. Um das Flash-Laufwerk zu unmounten, verlassen Sie zunächst das Verzeichnis, in dem es gemountet ist. Beispiel: #cd /

    Und danach verwenden wir den Befehl

    #Menge /Mnt

    beachten Sie, dass Das Argument ist kein Flash-Laufwerk, sondern sein Einhängepunkt!
    WICHTIG: Ziehen Sie den USB-Stick nicht sofort nach Eingabe des Befehls heraus! Ein Herausziehen ist erst nach wenigen Sekunden möglich, wenn im Terminal wieder die Eingabeaufforderung erscheint!

Ich öffne einen Zyklus von Mini-Handbüchern "für diejenigen, die nicht wissen, wie man die Suche benutzt und dumme Fragen stellt". Das heutige Thema ist das Mounten und Unmounten von Festplatten in FreeBSD.

Wir möchten also auf Daten auf einer zusätzlichen Festplatte oder einem Flash-Laufwerk zugreifen. Dazu müssen wir es mit einem leeren Verzeichnis verbinden (mounten). Danach erhalten wir Zugriff auf die Daten dieser Festplatte in dem von uns erstellten / zuvor vorhandenen Ordner. (WICHTIG: Mounten Sie die Diskette nicht in bereits belegte Verzeichnisse, Sie erhalten z. B. den Inhalt Ihrer Diskette, anstatt den Inhalt des Ordners für Dateien mit Konfigurationen, denken Sie selbst über die Folgen nach;))

Erstellen Sie zunächst einen leeren Ordner. Nehmen wir an, der Benutzer shitus möchte ein Laufwerk in ein neues Verzeichnis namens pron einhängen. Dazu erstellt er einen neuen Ordner in seinem Home-Verzeichnis (wahrscheinlich der sicherste Ort).

Mkdir /home/shitus/pron Der nächste Schritt besteht darin, die Festplatte an einem Einhängepunkt zu mounten (wir haben gerade einen Ordner erstellt). Alle Geräte auf Ihrem System finden Sie im Ordner /dev/. In meinem Fall möchte ich mein Gerät /dev/da2 nach /home/shitus/pron mounten

Mounten Sie /dev/da2 /home/shitus/pron Jetzt können Sie den Inhalt Ihrer Festplatte im obigen Verzeichnis anzeigen.

Wie man andere Nicht-BSD-Dateisysteme einhängt

In meinem Fall haben wir ein USB-Laufwerk mit einem Fat32-Dateisystem. Daher muss beim Mounten auf BSDs klar angegeben werden, welcher Dateisystemtyp verwendet wird.

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

Für andere Dateisysteme können Sie auf die FreeBSD-Dokumentation verweisen, ich werde keinen Link geben, da Google unser Alles ist.

So unmounten/unmounten Sie ein Dateisystem

Angenommen, Sie möchten ein gemountetes Dateigerät deaktivieren/löschen. Dafür kann es viele Gründe geben, vor allem, wenn Sie das Laufwerk löschen oder an einem anderen Mount-Punkt neu mounten möchten. Der Befehl ist sehr einfach -

umount /home/shitus/pron/

Stellen Sie sicher, dass Sie sich nicht in diesem Ordner befinden, während Sie diesen Befehl ausführen, da das Ergebnis sonst null ist.

Wenn Sie die Platte beim Systemstart einhängen möchten, müssen Sie sie auf die gleiche Weise in die Datei /etc/fstab schreiben, wie die dort bereits registrierten. Auch dazu können Sie mehr in der Dokumentation nachlesen, oder ich schreibe zum hundertsten Mal darüber.