$ aktualisiertb
Finden Sie SCSI-bezogene Treiber
$ lokalisieren scsi*.ko
Finden Sie USB-bezogene Treiber
$ usb*.ko suchen
Diese Treiber sind
.koist ein Suffix und wird bei der Installation des Systems standardmäßig in ein Modul kompiliert. Tatsächlich können sie als Teil des Kernels kompiliert werden. Sie müssen sich lediglich dafür entscheiden, wenn Sie den Kernel kompilieren.
[*]Das ist es. In vielen Fällen werden sie jedoch als Module kompiliert, was die Größe des Kernels reduziert und die Flexibilität bietet, sie nach Bedarf zu laden und zu entladen. Im Folgenden wird kurz gezeigt, wie Sie ein Modul entladen, laden und den Status eines geladenen Moduls anzeigen.
Befahrbar
/procDateisystem
ModuleDatei, um den Status verschiedener im Kernel geladener Module zu überprüfen, oder von
lsmodBefehl, um sie direkt anzuzeigen.
$ cat /proc/modules
oder
$lsmod
Überprüfen Sie die SCSI- und USB-bezogenen Treiber. Die Ergebnisse werden als Modulname, Modulgröße und Referenzen durch andere Module aufgelistet (Anzahl der Referenzen, Module, die darauf verweisen).
$ lsmod |. egrep scsi|usbusbhid 29536 0hid 28928 1 usbhidusbcore 138632 4 usbhid,ehci_hcd,ohci_hcdscsi_mod 147084 4 sg,sr_mod,sd_mod,libata
Unten deinstallieren
usbhidSchauen Sie sich das Modul an (deinstallieren Sie den SCSI-Treiber nicht! Da Ihr System möglicherweise darauf läuft. Wenn Sie wirklich damit spielen möchten, denken Sie daran, die Daten vor der Deinstallation zu speichern), bestehen Sie
rmmodDies kann durch Ausführen des folgenden Befehls erreicht werden: Wechseln Sie zunächst zum Root-Benutzer:
$ sudo -s# rmmod usbhid
Überprüfen Sie die Modulinformationen erneut. Sie können sie nicht mehr sehen.
$ lsmod |. grep ^usbhid
Wenn Sie eine USB-Maus haben, bewegen Sie sie und stellen fest, dass Sie sie nicht bewegen können? Da die Gerätetreiber nicht mehr verfügbar sind, kann das Gerät nicht verwendet werden. Aber seien Sie nicht nervös. Jetzt, da Sie den Grund kennen, können Sie den Treiber einfach neu laden
insmodBündeln
usbhidDas Modul wird neu geladen.
$ sudo -s# insmod `locate usbhid.ko`
Suchen Sie usbhid.koist herauszufinden
usbhid.koDer Pfad zum Modul, falls zuvor keiner vorhanden war
aktualisiertb, ich schätze, Sie können es damit nicht finden, aber Sie können auch direkt darauf zugreifen
/lib/modulesWird im Verzeichnis verwendet
findenBündeln
usbhid.koDatei gefunden.
# insmod $(find /lib/modules -name *usbhid.ko* | grep `uname -r`)
Jetzt kann die Maus wieder verwendet werden. Wenn Sie es nicht glauben, bewegen Sie die Maus erneut :-)
Zu diesem Zeitpunkt sollte die Beziehung zwischen Hardwaregeräten und Gerätetreibern relativ klar sein. Wenn nicht, fahren Sie unten fort.
Linux-Gerätetreiber sind den entsprechenden Gerätedateien zugeordnet, und Gerätedateien entsprechen eins zu eins den Hardwaregeräten. Diese Gerätedateien werden einheitlich im System gespeichert
/dev/Verzeichnis.
Beispielsweise entspricht das SCSI-Gerät
/dev/sda,
/dev/sda1,
/dev/sda2...Sehen Sie sich diese Geräteinformationen unten an.
$ ls -l /dev/sda*brw-rw---- 1 Root-Festplatte 8, 0 28.12.2007 22:49 /dev/sdabrw-rw---- 1 Root-Festplatte 8, 1 2007-12- 28 22:50 /dev/sda1brw-rw---- 1 Root-Festplatte 8, 3 28.12.2007 22:49 /dev/sda3brw-rw---- 1 Root-Festplatte 8, 4 28.12.2007 22:49 /dev/sda4brw-rw---- 1 Root-Festplatte 8, 5 28.12.2007 22: 50 /dev/sda5brw-rw---- 1 Root-Festplatte 8, 6 28.12.2007 22:50 /dev/sda6brw-rw---- 1 Root-Festplatte 8, 7 28.12.2007 22:50 /dev/sda7brw-rw---- 1 Root-Festplatte 8, 8 28.12.2007 22: 50/dev/sda8
Sie können sehen, dass das erste Zeichen in der ersten Spalte ist
B, die fünfte Spalte ist die Zahl 8.
BZeigt an, dass es sich bei der Datei um eine Blockgerätedatei handelt, sofern dies der Fall ist
CEs bedeutet Zeichengerät (z. B. „/dev/ttyS0“). Den Unterschied zwischen Blockgerät und Zeichengerät können Sie hier sehen:
Zeichengerät: Ein Zeichengerät ist ein Gerät, auf das wie ein Byte-Stream zugegriffen werden kann. Zeichenterminals und serielle Schnittstellen sind Zeichengeräte.
Blockgeräte: Dateisysteme können auf Blockgeräten untergebracht werden. Im Gegensatz zu Zeichengeräten können Blockgeräte beim Lesen oder Schreiben jeweils nur einen oder mehrere vollständige Blöcke übertragen. Im Linux-Betriebssystem können Anwendungen Blockgeräte genauso wie Zeichengeräte lesen und schreiben (beliebige Datenbytes gleichzeitig lesen oder schreiben). Daher besteht der Unterschied zwischen Blockgeräten und Zeichengeräten nur in der Datenverwaltung im Kernel.
Die Nummer 8 ist die Gerätenummer, die dem Hardwaregerät im Kernel entspricht. Sie ist im Kernel zu finden
Documentation/devices.txtUnd
/proc/devicesSuchen Sie in der Datei nach der Zuordnung der Gerätenummer. Aber warum entspricht dasselbe Gerät unterschiedlichen Gerätedateien (
/dev/sdaWarum stehen am Ende unterschiedliche Zahlen und
lsSpalte 6 im Ergebnis entspricht ihnen). Dies dient eigentlich dazu, zwischen verschiedenen Teilen verschiedener Geräte zu unterscheiden. Bei Festplatten verwaltet dies verschiedene Partitionen innerhalb der Festplatte. Was den Kernel betrifft, muss er das entsprechende Hardwaregerät nur über die Gerätenummer in Spalte 5 finden, aber für das Treibermodul muss es auch wissen, wie es mit verschiedenen Partitionen umgeht, sodass es eine zusätzliche Hilfsgerätenummer gibt , das ist Der Inhalt, der Spalte 6 entspricht. Auf diese Weise verfügt ein Gerät über eine Hauptgerätenummer (Spalte 5) und eine Hilfsgerätenummer (Spalte 6), wodurch die Verwaltung verschiedener Hardwaregeräte erleichtert wird.
Da die Gerätedatei der Hardware entspricht, können Sie direkt darauf zugreifen
/dev/sda(im Fall von
IDEFestplatte, dann ist das entsprechende Gerät
/dev/hda(la) Lesen Sie die Festplatteninformationen vom Gerät, zum Beispiel:
verwenden
ddDer Befehl kopiert die ersten 512 Bytes der Festplatte und erfordert einen Root-Benutzer
$ sudo dd if=/dev/sda of=mbr.bin bs=512 count=1
verwenden
DateiBefehl zum Anzeigen der entsprechenden Informationen
$-Datei mbr.binmbr.bin: x86-Bootsektor, Linux i386-Boot-LOader; Partition 3: ID=0x82, Startsektor 19535040, 1959930 Sektoren; Partition 4: ID=0x5, Starthead 254, Startsektor 21494970, 56661255 Sektoren, Code Offset 0x48
Kann auch verwendet werden
odDer Befehl wird im Hexadezimalformat gelesen und analysiert.
$ od -x mbr.bin
bsist die Größe des Blocks (in Bytes).
Bytesals Einheit),
zählenist die Anzahl der Blöcke
Da diese Informationen nicht intuitiv sind (und weiter unten analysiert werden), werfen wir zunächst einen Blick auf eine andere Gerätedatei, die die Entsprechung zwischen der Gerätedatei und der Hardware sehr intuitiv demonstrieren kann. Nehmen wir als Beispiel die Maus. Lesen wir die Informationen der Gerätedatei, die der Maus entspricht.
$ sudo -s# cat /dev/input/mouse1 |
Ihr Maustreiber ist möglicherweise anders, daher ist die Gerätedatei möglicherweise anders, aber alles ist vorhanden
/dev/inputRunter.
Bewegen Sie die Maus und prüfen Sie, ob Sie unterschiedliche Informationsausgaben finden. Basierend auf diesem Prinzip lesen wir die Gerätedatei oft an einem Ende durch
/dev/ttyS0Inhalt in der Gerätedatei am anderen Ende
/dev/ttyS0Schreiben Sie Inhalte ein, um zu überprüfen, ob die serielle Portleitung beschädigt ist.
An diesem Punkt sollten Sie mehr von der Beziehung zwischen Gerätetreibern, Gerätedateien und Hardwaregeräten beeindruckt sein. Wenn Sie ein umfassendes Verständnis des Funktionsprinzips von Gerätetreibern und des Schreibens von Gerätetreibern erlangen möchten, werfen Sie einen Blick auf die unten aufgeführten relevanten Informationen und beginnen Sie mit dem Schreiben von Gerätetreibern.
Referenzen:
Kompilieren Sie den Linux-Kernel 2.6
Prinzipien zum Schreiben von Hardwaretreibern für Linux-Systeme
Prinzipien, Konfigurationen und häufige Probleme von USB-Geräten unter Linux
Das Linux-Kernel-Modul-Programmierhandbuch
Entwicklung von Linux-Gerätetreibern
Tatsächlich können Speicher, USB-Festplatten usw. als zugrunde liegende „Speicher“-Geräte des Dateisystems verwendet werden. Hier verwenden wir jedoch nur die Festplatte als Beispiel, um die Beziehung zwischen Festplatten und Partitionen vorzustellen.
Derzeit übernimmt die Linux-Partitionierung noch das Partitionierungsprinzip der ersten PC-Festplatte. Dieses Partitionierungsprinzip wird im Folgenden Schritt für Schritt analysiert und demonstriert.
Werfen wir zunächst einen Blick auf einige Konzepte:
Geräteverwaltung und Partitionierung
Unter Linux entspricht jedes Speichergerät einer Systemgerätedatei. Für Festplatten usw.
IDEUnd
SCSIGerät, im System
/devDie entsprechenden enthaltenden Zeichen finden Sie im Verzeichnis
hdUnd
sdGerätedateien. Abhängig von der Geräteschnittstelle des Motherboards und der Datenkabelschnittstelle, an die die Festplatte angeschlossen ist,
hdoder
sdNach dem Zeichen können Sie ein Zeichen hinzufügen
Aankommen
zCharaktere zum Beispiel
hda,
hdb,
hdcUnd
sda,
SDB,
sdcusw. Darüber hinaus kann am Ende beispielsweise eine Nummer hinzugefügt werden, um verschiedene Partitionen desselben Hardwaregeräts zu unterscheiden
hda1,
hda2,
hda3Und
sda1,
sda2,
sda3, also rein
/devIm Verzeichnis können Sie viele ähnliche Gerätedateien sehen.
Die Rolle jeder Partition
Bei der Partitionierung stoßen wir häufig auf das Problem von primären Partitionen und logischen Partitionen. Dies dient eigentlich dazu, die Erweiterung von Partitionen zu erleichtern. Ebenso wie die Einführung logischer Volumes später dazu dient, mehrere Festplatten besser zu verwalten Die Partitionsverwaltung kann problemlos durchgeführt werden.
Jedes Festplattengerät im Linux-System besteht aus bis zu 4 primären Partitionen (einschließlich erweiterter Partitionen).
Die primäre Partition wird vom Computer zum Starten des Betriebssystems verwendet. Daher sollte das Startprogramm jedes Betriebssystems oder Bootprogramms auf der primären Partition gespeichert werden. Linux schreibt vor, dass die primäre Partition (oder erweiterte Partition) die ersten 4 Partitionsnummern belegt. Sie werden also sehen, dass die Gerätedatei der primären Partition entspricht
/dev/hda1-4oder
/dev/sda1-4, statt
hda5oder
sda5.
Erweiterte Partitionen werden verwendet, um weitere logische Partitionen zu erweitern. Unter Linux belegen logische Partitionen
hda5-16oder
sda5-16Warten Sie auf 12 Zahlen.
Partitionstyp
Es gibt den Typ des Dateisystems auf dieser Partition an. Linux unterstützt viele Dateisystemtypen wie msdoc, vfat, ext2, ext3 usw. Weitere Informationen werden im nächsten Abschnitt ausführlicher vorgestellt.
Als nächstes analysieren Sie die ersten 512 Bytes der Festplatte (d. h.
MBR), um Partitionen zu analysieren und zu verstehen.
Schauen wir uns zunächst dieses Bild an:
es wird verwendet, um zu beschreiben
MBRStruktur.
MBREinschließlich des Boot-Teils, der Partitionstabelle und der Endmarkierung „(55AAH) belegen sie jeweils 446 Byte, 64 Byte und 2 Byte von 512 Byte. Hier konzentrieren wir uns nur auf den Teil der Partitionstabelle, also auf die mittleren 64 Bytes und den linken Teil in der Abbildung.
Da ich es benutze
SCSIFestplatte, das Folgende ist von
/dev/sdaKopieren Sie die ersten 512 Bytes der Festplatte in die Datei im Gerät
mbr.binMitte.
$ sudo -s# dd if=/dev/sda of=mbr.bin bs=512 count=1
Unten verwenden
Datei,
od,
fdiskWarten Sie auf den Befehl, um diesen Absatz zu analysieren
MBRDaten und vergleichen Sie sie mit der obigen Grafik, um ein tieferes Verständnis zu erhalten.
$-Datei mbr.binmbr.bin: x86-Bootsektor, Linux i386-Boot-LOader; Partition 3: ID=0x82, Startsektor 19535040, 1959930 Sektoren; Partition 4: ID=0x5, Starthead 254, Startsektor 21494970, 56661255 Sektoren, Code versetzt 0x48$ od -x mbr.bin |. tail -6 #Konzentrieren Sie sich nur auf die mittleren 64 Bytes, sodass die letzten 6 Zeilen im Ergebnis abgefangen werden 1 012a 00000000720 0000 0000 0000 0000 0000 0000 0000 fe000000740 ffff fe82 ffff 14c0 012a e7fa 001d fe000000760 ffff fe05 ffff fcba 0147 9507 0360 aa55$ sudo -s# fdisk -l |. grep ^/ #Nur die MBR-bezogenen Teile analysieren, nicht den logischen Partitionsteil analysieren /dev/sda1 * 1 1216 9767488+ 83 Linux/dev/sda3 1217 1338 979965 82 Linux swap / Solaris/dev/sda4 1339 4865 28330627+ 5 Erweitert
DateiDas Ergebnis des Befehls zeigt, dass die gerade kopierten 512 Bytes der Bootsektor sind, und zwar die durch Semikolons getrennten Teile
Bootloader, Partition 3 und Partition 4. Der Typ der Partition 3 ist also 82
tauschenPartitionierung (kann erfolgen über
fdiskbefehlend
lBefehl zum Auflisten relevanter Informationen), was entspricht
fdiskin den Ergebnissen von
/dev/sda3In der 5. Spalte der Zeile beträgt die Anzahl der Sektoren in Partition 3 1959930, umgerechnet in Bytes
1959930*512(Derzeit beträgt die Standardsektorgröße für Festplatten 512 Byte), während
tauschenDie Standardblockgröße für eine Partition beträgt 1024 Byte, also beträgt die Anzahl der Blöcke
:
$ echo 1959930*512/1024 |
genau
fdiskErgebnis in
/dev/sda3Die Anzahl der Blöcke, die der vierten Spalte der Zeile entsprechen, kann ebenfalls verglichen werden
fdiskUnd
DateiDie Ergebnisse werden für Partition 4 analysiert.
Schauen wir noch einmal
odDas Ergebnis des Befehls wird hexadezimal angezeigt. Berücksichtigen Sie auch Partition 3. Nach der Berechnung wird festgestellt, dass Partition 3 entspricht
odDas Ergebnis des Befehls ist:
fe00 ffff fe82 ffff 14c0 012a e7fa 001d
Das erste ist die Partitionsmarkierung,
00 UhrAuf dem Bild oben können Sie erkennen, dass es sich nicht um eine Boot-Partition handelt (
80HDie markierte Partition ist die Boot-Partition. Und was ist mit dem Partitionstyp? für
82H,Und
DateiDie Anzeigeergebnisse sind nun konsistent. Achten wir also auf die Partitionsgröße
DateiDie Anzahl der Sektoren im Ergebnis.
$ echo ibase=10;obase=16;1959930 |
Entspricht einfach
e7fa 001dBetrachten Sie in ähnlicher Weise die Ergebnisse der Boot-Partition:
0180 0001 fe83 ffff 003f 0000 1481 012a
Partitions-Tag:
80H, was lediglich widerspiegelt, dass es sich bei dieser Partition um eine Boot-Partition handelt, gefolgt von der Festplattensektorsituation, in der sich die Boot-Partition befindet, 010100, also 1 Seite, 0 Spuren und 1 Sektor. Andere Inhalte können verglichen und analysiert werden.
Aufgrund der zeitlichen Beschränkung lesen Sie bitte die folgenden Informationen oder das entsprechende Handbuch des Systems für weitere Einzelheiten.
Ergänzung: Bei der Installation des Systems können Sie verwenden
fdisk,
cfdiskWarten Sie auf den Befehl zum Partitionieren. Wenn Sie von einer bestimmten Partition booten möchten, müssen Sie Folgendes eingeben
80HTag, zum Beispiel via
cfdiskLegen Sie eine Partition fest auf
bootfähigzu erreichen.
Referenzen:
Innerhalb des Linux-Bootvorgangs
Entwickeln Sie Ihr eigenes Betriebssystem: Booten
Einführung in die Redhat9-Festplattenpartition
Anleitung zur Linux-Partition
Vor der Einführung logischer Volumes wurden Partitionstypen und Dateisystemtypen nahezu gleich behandelt. Der Prozess des Festlegens des Partitionstyps bestand aus dem Formatieren der Partition und dem Festlegen des entsprechenden Dateisystemtyps.
Im Folgenden wird hauptsächlich erläutert, wie die Beziehung zwischen Partitionen und Dateisystemtypen hergestellt wird, dh wie Partitionen als angegebene Dateisystemtypen formatiert werden.
Werfen wir zunächst einen Blick auf die gängigen Dateisystemtypen unter Linux (wenn Sie alle von Linux unterstützten Dateitypen anzeigen möchten, können Sie Folgendes verwenden).
fdiskbefehlend
lBefehl zum Anzeigen oder Weitergeben
Mann fsZum Anzeigen können Sie auch verwenden
/proc/filesystemsÜberprüfen Sie die vom aktuellen Kernel unterstützten Dateisystemtypen.)
ext2,
ext3,
ext4: Diese drei Typen werden üblicherweise von Linux-Root-Dateisystemen verwendet.
tauschen: Dies ist ein Dateisystem, das zum Implementieren des virtuellen Linux-Speichers verwendet wird. Während der Installation ist es im Allgemeinen erforderlich, eine spezielle Partition zu erstellen und diese zu formatieren
tauschenDateisystem (falls Sie weitere hinzufügen möchten
tauschenInformationen zur Partitionierung finden Sie in den Referenzmaterialien in diesem Abschnitt, um sich damit vertraut zu machen
dd,
mkswap,
tauschen,
TauschVerwendung anderer Befehle)
proc: Dies ist ein relativ spezielles Dateisystem, das als Schnittstelle zwischen dem Kernel und Benutzern dient und im Speicher integriert ist (auf das zugegriffen werden kann).
KatzeBefehlsansicht
/procDateien unter dem System können sogar geändert werden
/proc/sysDie folgende Datei kann die Kernelkonfiguration in Echtzeit anpassen. Die aktuelle Voraussetzung ist, dass Sie dies tun müssen
procAuf dem Dateisystem-Mount:
mount -t proc proc /proc
Zusätzlich zu den oben genannten Dateisystemtypen umfasst die Linux-Unterstützung
vfett,
iso,
xfs,
nfsNeben verschiedenen gängigen Dateisystemtypen können Sie unter Linux Dateisysteme, die von anderen Betriebssystemen wie Windows verwendet werden, frei anzeigen und bedienen.
Wie stellen Sie also die Verbindung zwischen Festplatten und diesen Dateisystemtypen her? Format.
Der Formatierungsprozess ist eigentlich der Prozess der Neuorganisation der Partition, was möglich ist
mkfsDen Befehl zu erreichen, können Sie natürlich auch weitergeben
fdiskWarten Sie, bis der Befehl ausgeführt wird. Hier stellen wir nur vor
mkfs,
mkfsEs kann zum Formatieren einer vorhandenen Partition verwendet werden, kann jedoch keine Partitionsvorgänge ausführen (wenn Sie eine Festplatte partitionieren und formatieren möchten, können Sie Folgendes verwenden).
fdisk). Nach der Formatierung werden die Daten auf der entsprechenden Partition nach einem speziellen Dateisystemtyp organisiert.
Zum Beispiel: setzen
/dev/sda9Die Partition ist formatiert als
ext3Dateisystem.
$ sudo -s# mkfs -t ext3 /dev/sda9
Wenn Sie die Dateisystemtypen jeder Partition auflisten möchten, können Sie Folgendes verwenden:
fdisk -lBefehl.
Weitere Informationen finden Sie in den folgenden Materialien.
Referenzen:
Schritte zum Laden der Swap-Partition unter Linux
Erstellen und Brennen von ISO-Imagedateien unter Linux
Erklärung der RAM-Disk-Partition:[1],[2]
Leitfaden für fortgeschrittene Dateisystem-Implementierer
Im vorherigen Abschnitt wurde die Partition direkt als ein bestimmter Dateisystemtyp formatiert. Angesichts der Notwendigkeit, neue Speichergeräte zu erweitern, führten die Entwickler jedoch logische Volumes zwischen dem Dateisystem und der Partition ein. Aus Zeitgründen werde ich hier nicht auf Details eingehen. Bitte verweisen Sie auf die Referenz: Detaillierte Erläuterung der logischen Volume-Verwaltung unter Linux
Was das Dateisystem schließlich präsentiert, ist eine visuelle Struktur, die mit Befehlen wie ls, find und tree dargestellt werden kann. Es ist wie ein umgedrehter „Baum“, und an den Knoten des Baumes können neue „Bäume“ montiert werden.
Im Folgenden finden Sie eine kurze Einführung in das Mounten des Dateisystems.
Ein Dateisystem kann über ein Gerät gemountet werden (
montieren) in ein Verzeichnis, das als Einhängepunkt bezeichnet wird. Interessanterweise kann unter Linux ein Verzeichnis selbst in ein anderes Verzeichnis gemountet werden, und eine formatierte Datei kann auch über ein spezielles Gerät gemountet werden.
/dev/loopmontieren (z.B.
isodokumentieren). Darüber hinaus unterstützt Linux in Bezug auf Dateisysteme nicht nur lokale Dateisysteme, sondern auch Remote-Dateisysteme (z
nfs).
Im Folgenden werden einige Beispiele für die Dateisystemmontage kurz vorgestellt.
Mounten des Root-Dateisystems
Für das Mounten sind Root-Berechtigungen erforderlich, beispielsweise für das Mounten des Root-Dateisystems des Systems
/dev/sda1ankommen
/mnt
$ sudo -s# mount -t ext3 /dev/sda1 /mnt/
Überprüfen
/dev/sda1Wie Sie an der Montagesituation erkennen können, kann ein Gerät mehrfach montiert werden.
$ mount |. grep sda1/dev/sda1 on / type ext3 (rw,errors=remount-ro)/dev/sda1 on /mnt type ext3 (rw)
Ein bereits gemountetes Dateisystem kann erneut gemountet werden, um andere Attribute zu unterstützen.
$ mount -n -o remount, rw /
Montieren Sie ein neues Gerät
Wenn der Kernel die USB-Schnittstelle bereits unterstützt, können Sie beim Einstecken des USB-Sticks darauf verzichten
dmesgBefehl zum Anzeigen der entsprechenden Gerätenummer und zum Mounten.
Überprüfen
dmesgSuchen Sie für die letzten paar Zeilen in den Ergebnissen etwas wie
/dev/sdNInformationen, um die Gerätenummer herauszufinden, die dem USB-Datenträger entspricht
$dmesg
Es wird hier davon ausgegangen, dass es sich um einen USB-Datenträger handelt
vfettformatiert, sodass es in einigen Druckereien auch unter Windows verwendet werden kann
# mount -t vfat /dev/sdN /path/to/mountpoint_directory
Mounten Sie eine ISO-Datei oder CD
Für einige ISO-Dateien oder Discs im ISO-Format können Sie auch verwenden
montierenBefehl zum Mounten.
Für ISO-Dateien:
# mount -t iso9660 /path/to/isofile /path/to/mountpoint_directory
Für CD:
# mount -t iso9660 /dev/cdrom /path/to/mountpoint_directory
Mounten Sie ein Remote-Dateisystem
# mount -t nfs remote_ip:/path/to/share_directory /path/to/local_directory
Mounten Sie ein proc-Dateisystem
# mount -t proc proc /proc
procDas Dateisystem ist im Speicher organisiert, kann aber in ein Verzeichnis eingebunden werden. Normalerweise wird es eingebaut
/procVerzeichnis, damit einige Systemverwaltungs- und Konfigurationstools es verwenden können. Zum Beispiel
SpitzeDer Befehl analysiert damit die Speichernutzung (read
/proc/meminfoUnd
/proc/statusw. Dateien);
lsmodBefehl, mit dem der Status des Kernelmoduls abgerufen werden kann (read
/proc/modules);
netstatBefehl, um den Status des Netzwerks darüber abzurufen (lesen Sie
/proc/net/devund andere Dokumente). Natürlich können auch verwandte Tools geschrieben werden. Darüber hinaus durch Anpassen
/proc/sysDie Dateien im Verzeichnis können die Systemkonfiguration dynamisch anpassen, z. B. zu
/proc/sys/net/ipv4/ip_forwardDurch das Schreiben der Nummer 1 in die Datei kann der Kernel die Paketweiterleitung unterstützen. (Weitere Informationen finden Sie unter
prochelfen,
Mann``proc)
Mounten Sie ein Verzeichnis
$ mount --bind /path/to/needtomount_directory /path/to/mountpoint_directory
Dies ist sehr interessant. Sie können beispielsweise ein Verzeichnis im Stammverzeichnis des FTP-Dienstes bereitstellen und die Ressourcen im entsprechenden Verzeichnis für andere bereitstellen, ohne den Inhalt kopieren zu müssen.
Die oben erwähnte Installation ist nur erwähnt. Wie deinstalliere ich sie? verwenden
umountFolgen Sie einfach dem Befehl mit der Quelladresse oder dem Mount-Punkt (Gerät, Datei, Remote-Verzeichnis usw.) des Mounts. Zum Beispiel:
$ umount /path/to/mountpoint_directory
oder
$ umount /path/to/mount_source
Wenn Sie eine große Anzahl oder häufig bereitgestellte Dienste verwalten möchten, ist es keine gute Idee, sie jedes Mal manuell bereitzustellen. Sie können es jetzt verwenden
montierenKonfigurationsdatei
/etc/fstab,Bündeln
montierenDie entsprechenden Parameter werden geschrieben als
/etc/fstabDie Stapelmontage kann in der Spalte erfolgen, die der Datei entspricht (
mount -a) und deinstallieren (
umount -a).
/etc/fstabDie Spalten sind Dateisystem, Einhängepunkt, Typ und zugehörige Optionen. Weitere Informationen finden Sie unter
fstabhelfen (
Mann fstab).
Referenzen:
Linux-Festplattenpartition und ihr Montageprinzip
Betrachten Sie das virtuelle Linux-Dateisystem anhand der Datei-E/A
Quellcode-Analyse: Statische Analyse des C-Programm-Funktionsaufrufdiagramms
Unter dem Linux-Dateisystem gibt es einige grundlegende Verzeichnisse, und verschiedene Dateien mit unterschiedlichen Funktionen werden in verschiedenen Verzeichnissen gespeichert. Die grundlegendsten Verzeichnisse sind
/usw,
/lib,
/dev,
/binusw., in denen Systemkonfigurationsdateien, Bibliotheksdateien, Gerätedateien bzw. ausführbare Programme gespeichert sind. Diese Verzeichnisse sind im Allgemeinen erforderlich, wenn Sie eine eingebettete Entwicklung durchführen. Sie müssen sie manuell oder verwenden
BusyboxWarten Sie auf Tools, um ein solches grundlegendes Dateisystem zu erstellen. Hier erstellen wir nur ein sehr einfaches Dateisystem und führen verschiedene herkömmliche Vorgänge am Dateisystem aus, um unser Verständnis des Dateisystems zu vertiefen.
erinnere mich noch
ddEine Bestellung? Verwenden Sie es einfach, um eine Datei mit fester Größe zu generieren
1 MB (1024*1024 Byte)Dateien
$ dd if=/dev/zero of=minifs bs=1024 count=1024
Dateitypen hier ansehen
Minifsist eine volle
\0Datei ohne spezifische Datenstruktur
$ Datei minifsminifs: Daten
veranschaulichen:
/dev/zeroist ein ganz besonderes Gerät, wenn man es liest, kann man beliebig viele davon bekommen
\0.
Die Datei wird dann in ein Dateisystem eines bestimmten Dateityps formatiert. (Erscheint es unglaublich, dass Dateien auch formatiert werden können? Ja, das können nicht nur Geräte, Dateien können auch in bestimmten Dateisystemtypen organisiert werden, aber es sollte beachtet werden, dass einige Dateisysteme (z. B
ext3) erfordert, dass das Ziel mindestens formatiert ist
64MRaum).
$ mkfs.ext2 Minifs
Überprüfen Sie zu diesem Zeitpunkt den Dateityp
MinifsNimm einfach
ext2Dateisystemformat organisiert
$ Datei minifsminifs: Ext2-Dateisystemdaten von Linux Rev. 1.0
Da die Datei nach Dateisystemtyp organisiert ist, können Sie sie verwenden
montierenBefehl zum Mounten und Verwenden.
Bitte wechseln Sie zu
WurzelDer Benutzer mountet es und geht weiter
-o SchleifeOption, es einem bestimmten Gerät zuzuordnen
/dev/loop
$ sudo -s# mount minifs /mnt/ -o Schleife
Sehen Sie sich die Dateisysteminformationen an und sehen Sie nur eine Verzeichnisdatei
verloren+gefunden
$ ls /mnt/lost+found
Führen Sie verschiedene reguläre Vorgänge unter diesem Dateisystem aus, einschließlich Lesen, Schreiben, Löschen usw. (Bitte vor jeder Operation
MinifsSpeichern Sie eine Kopie der Datei zum Vergleich. In Kombination mit relevanten Informationen können Sie eine detaillierte Analyse der durch verschiedene Vorgänge verursachten Änderungen am Dateisystem durchführen und so die Implementierungsprinzipien des Dateisystems besser verstehen um Daten zu organisieren usw.)
$ cp minifs minifs.bak$ cd /mnt$ touch hello$ cd -$ cp minifs minifs-touch.bak$ od -x minifs.bak > orig.od$ od -x minifs-touch.bak > touch.od
Vergleichen Sie nach dem Erstellen einer Datei die Ähnlichkeiten und Unterschiede zwischen dem aktuellen Dateisystem und dem vorherigen Dateisystem.
$ diff orig.od touch.oddiff orig.od touch.od61,63c61,64< 0060020 000c 0202 2e2e 0000 000b 0000 03e8 020a< 0060040 6f6c 7473 662b 756f 646e 0000 0000 0000< 0060060 0000 0000 0000 0000 0000 0000 0000 0000---> 0060020 000c 0202 2e2e 0000 000b 0000 0014 020a> 0060040 6f6c 7473 662b 756f 646e 0000 000c 0000> 0060060 03d4 0105 6568 6c6c 006f 0000 0000 0000> 0060100 0000 0000 0000 0000 0000 0000 0000 0000
Durch den Vergleich wurde festgestellt, dass sich beim Hinzufügen einer Datei der entsprechende Speicherort im Dateisystem erheblich geändert hat.
$ echo hallo, Welt > /mnt/hello
implementieren
synchronisierenBefehl, um sicherzustellen, dass die Daten im Cache auf die Festplatte geschrieben wurden (denken Sie an Abbildung 1 dieses Abschnitts).
Puffer-CacheNun, hier ist es
CacheDie Daten werden auf die Festplatte geschrieben)
$ sync$ cp minifs minifs-echo.bak$ od -x minifs-echo.bak > echo.od
Vergleichen Sie nach dem Schreiben des Dateiinhalts die Ähnlichkeiten und Unterschiede zwischen dem Dateisystem und dem vorherigen.
$ diff touch.od echo.od
Zeichenfolgen im Dateisystem anzeigen
$ strings minifslost+foundhellohello, world
löschen
HalloDatei, Dateisystemänderungen anzeigen
$ rm /mnt/hello$ cp minifs minifs-rm.bak$ od -x minifs-rm.bak > rm.od$ diff echo.od rm.od
Bei der Betrachtung der Zeichenfolgen im Dateisystem haben wir festgestellt, dass der Dateiinhalt beim Löschen der Datei nicht überschrieben wurde, sodass der Inhalt zu diesem Zeitpunkt theoretisch noch wiederherstellbar ist.
$ strings minifslost+foundhellohallo, Welt
Das Obige zeigt nur einige gängige Tools zur Analyse von Dateisystemen und analysiert mehrere gängige Vorgänge. Wenn Sie ein umfassendes Verständnis der Implementierungsprinzipien von Dateisystemen erlangen möchten, machen Sie sich bitte mit der Verwendung der oben genannten Tools vertraut und lesen Sie relevante Materialien.
Referenzen:
Erstellen Sie ein Mini-Dateisystem unter Linux von Grund auf
Erstellen Sie mit BusyBox ein Mini-Dateisystem unter Linux
ext2-Dateisystem
zusammen mit
SicherungMit dem Aufkommen von Fuse ist es möglich geworden, Dateisysteme im Benutzerbereich zu entwickeln. Wenn Sie Ihr eigenes Dateisystem entwickeln möchten, wird empfohlen, Folgendes zu lesen: Verwenden Sie Fuse, um Ihr eigenes Dateisystem zu entwickeln.
Am 22. Dezember 2007 habe ich viele Informationen gesammelt und das Gesamtgerüst geschrieben.
Der erste Entwurf wurde am Nachmittag des 28. Dezember 2007 fertiggestellt. Aus Zeitgründen wurden viele Details nicht weiter analysiert. Darüber hinaus kann es an einigen Stellen zu Verständnisproblemen kommen. Korrekturen sind willkommen.
Am Abend des 28. Dezember 2007 wurden einige Informationen geändert und das Dokument offiziell veröffentlicht.
Nr. 29, fügen Sie einen Abschnitt über Gerätetreiber und Hardwaregeräte hinzu