$ mis à jourb
Trouver les pilotes associés à scsi
$ localiser scsi*.ko
Trouver les pilotes liés à l'USB
$ localiser usb*.ko
Ces pilotes sont
.koest un suffixe et est compilé dans un module par défaut lors de l'installation du système. En fait, ils peuvent être compilés dans le cadre du noyau, il vous suffit de choisir de l'être lors de la compilation du noyau.
[*]C'est ça. Cependant, dans de nombreux cas, ils sont compilés sous forme de modules, ce qui réduit la taille du noyau et offre la flexibilité de les charger et de les décharger selon les besoins. Ce qui suit montre brièvement comment décharger un module, charger un module et afficher l'état d'un module chargé.
Passable
/procsystème de fichiers
modulesfichier pour vérifier l'état des différents modules chargés dans le noyau, ou en
lsmodcommande pour les visualiser directement.
$ cat /proc/modules
ou
$lsmod
Vérifiez les pilotes associés scsi et usb, les résultats sont répertoriés sous forme de nom de module, taille de module, référencés par d'autres modules (nombre de références, modules qui les référencent)
$ 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
Désinstaller ci-dessous
usbhidJetez un œil au module (ne désinstallez pas le pilote scsi ! Parce que votre système peut fonctionner dessus. Si vous voulez vraiment jouer avec, pensez à sauvegarder les données avant de désinstaller), passez
rmmodCeci peut être réalisé en exécutant la commande, passez d'abord à l'utilisateur Root :
$ sudo -s# rmmod usbhid
Vérifiez à nouveau les informations du module. Vous ne pouvez plus les voir.
$ lsmod | grep ^usbhid
Si vous avez une souris USB, déplacez-la et constatez que vous ne pouvez pas la déplacer ? Les pilotes de périphérique n'étant plus disponibles, le périphérique ne peut pas être utilisé. Mais ne soyez pas nerveux. Maintenant que vous connaissez la raison, vous pouvez simplement recharger le pilote. Utilisez ce qui suit.
insmodPaquet
usbhidLe module est rechargé.
$ sudo -s# insmod `localiser usbhid.ko`
localiser usbhid.koc'est découvrir
usbhid.koLe chemin d'accès au module, s'il n'y en avait pas auparavant
mis à jourb, je suppose que vous ne pouvez pas le trouver en l'utilisant, mais vous pouvez aussi accéder directement à
/lib/modulesUtilisé dans le répertoire
trouverPaquet
usbhid.koFichier trouvé.
# insmod $(trouver /lib/modules -name *usbhid.ko* | grep `uname -r`)
Maintenant, la souris peut être à nouveau utilisée. Si vous n'y croyez pas, déplacez-la à nouveau :-)
À ce stade, la relation entre les périphériques matériels et les pilotes de périphériques devrait être relativement claire. Sinon, continuez ci-dessous.
Les pilotes de périphériques Linux sont associés aux fichiers de périphériques correspondants, et les fichiers de périphériques correspondent aux périphériques matériels un à un. Ces fichiers de périphérique sont stockés uniformément dans le système
/dév/annuaire.
Par exemple, le périphérique scsi correspond à
/dev/sda,
/dev/sda1,
/dev/sda2... Consultez ces informations sur l'appareil ci-dessous.
$ ls -l /dev/sda*brw-rw---- 1 disque racine 8, 0 2007-12-28 22:49 /dev/sdabrw-rw---- 1 disque racine 8, 1 2007-12- 28 22:50 /dev/sda1brw-rw---- 1 disque racine 8, 3 2007-12-28 22:49 /dev/sda3brw-rw---- 1 disque racine 8, 4 2007-12-28 22:49 /dev/sda4brw-rw---- 1 disque racine 8, 5 2007-12-28 22 : 50 /dev/sda5brw-rw---- 1 disque racine 8, 6 2007-12-28 22:50 /dev/sda6brw-rw---- 1 disque racine 8, 7 2007-12-28 22:50 /dev/sda7brw-rw---- 1 disque racine 8, 8 2007-12-28 22 : 50/dev/sda8
Vous pouvez voir que le premier caractère de la première colonne est
b, la cinquième colonne est le chiffre 8.
bIndique que le fichier est un fichier de périphérique bloc, par conséquent, s'il est
cCela signifie un périphérique de caractères (tel que `/dev/ttyS0). Concernant la différence entre un périphérique de bloc et un périphérique de caractères, vous pouvez voir ici :
Périphérique de caractères : un périphérique de caractères est un périphérique accessible comme un flux d'octets. Les terminaux de caractères et les ports série sont des périphériques de caractères.
Périphériques bloc : les systèmes de fichiers peuvent être hébergés sur des périphériques bloc. Contrairement aux périphériques de caractères, les périphériques de blocs ne peuvent transférer qu'un ou plusieurs blocs complets à la fois lors de la lecture ou de l'écriture. Dans le système d'exploitation Linux, les applications peuvent lire et écrire des périphériques de bloc tout comme les périphériques de caractères (lecture ou écriture d'octets arbitraires de données à la fois). Par conséquent, la différence entre les périphériques blocs et les périphériques caractères réside uniquement dans la gestion des données dans le noyau.
Le chiffre 8 est le numéro de périphérique correspondant au périphérique matériel dans le noyau. Il se trouve dans le fichier du noyau.
Documentation/appareils.txtet
/proc/périphériquesRecherchez l'attribution du numéro d'appareil dans le fichier. Mais pourquoi un même appareil correspond-il à différents fichiers de périphérique (
/dev/sdaPourquoi y a-t-il des nombres différents à la fin, et
lsLa colonne 6 du résultat leur correspond). Il s’agit en fait de différencier les différentes parties des différents appareils. Pour les disques durs, cela gère différentes partitions à l’intérieur du disque dur. En ce qui concerne le noyau, il lui suffit de trouver le périphérique matériel correspondant via le numéro de périphérique dans la colonne 5, mais pour le module pilote, il doit également savoir gérer différentes partitions, il existe donc un numéro de périphérique auxiliaire supplémentaire. , c'est-à-dire Le contenu correspondant à la colonne 6. De cette manière, un périphérique possède un numéro de périphérique majeur (colonne 5) et un numéro de périphérique auxiliaire (colonne 6), facilitant ainsi la gestion de divers périphériques matériels.
Le fichier de périphérique correspondant au matériel, vous pouvez accéder directement au
/dev/sda(dans le cas d
EDIdisque dur, alors le périphérique correspondant est
/dev/hda(la) Lisez les informations du disque dur de l'appareil, par exemple :
utiliser
jjLa commande copie les 512 premiers octets du disque dur et nécessite l'utilisateur Root
$ sudo dd if=/dev/sda of=mbr.bin bs=512 count=1
utiliser
déposerCommande pour visualiser les informations correspondantes
$ fichier mbr.binmbr.bin : secteur de démarrage x86, chargeur de démarrage LInux i386 ; partition 3 : ID=0x82, starthead 254, secteurs de démarrage 19535040, 1959930 secteurs ; partition 4 : ID=0x5, starthead 254, secteurs de démarrage 21494970, 56661255 secteurs, code. décalage 0x48
Peut également être utilisé
ohLa commande est lue au format hexadécimal et analysée.
$ od -x mbr.bin
bsest la taille du bloc (en octets
octetscomme unité),
compterest le nombre de blocs
Parce que ces informations ne sont pas intuitives (et seront analysées plus en détail ci-dessous), examinons d'abord un autre fichier de périphérique, qui pourra démontrer de manière très intuitive la correspondance entre le fichier de périphérique et le matériel. Prenons la souris comme exemple. Lisons les informations du fichier périphérique correspondant à la souris.
$ sudo -s# cat /dev/input/mouse1 |
Le pilote de votre souris peut être différent, donc le fichier de périphérique peut être autre, mais tout sera dans
/dev/entréeVers le bas.
Déplacez la souris et voyez si vous trouvez des informations différentes. Sur la base de ce principe, nous lisons souvent le fichier de l'appareil d'un côté en
/dev/ttyS0contenu dans le fichier de l'appareil à l'autre extrémité
/dev/ttyS0Écrivez le contenu pour vérifier si la ligne du port série est endommagée.
À ce stade, vous devriez être plus impressionné par la relation entre les pilotes de périphérique, les fichiers de périphérique et les périphériques matériels. Si vous souhaitez avoir une compréhension approfondie du principe de fonctionnement des pilotes de périphérique et de l'écriture des pilotes de périphérique, jetez un œil aux informations pertinentes répertoriées ci-dessous et démarrez le processus d'écriture des pilotes de périphérique.
Références :
Compiler le noyau Linux 2.6
Principes d'écriture de pilotes matériels pour les systèmes Linux
Principes, configurations et problèmes courants des périphériques USB sous Linux
Le guide de programmation du module du noyau Linux
Développement de pilotes de périphériques Linux
En fait, la mémoire, le disque USB, etc. peuvent être utilisés comme périphérique de « stockage » sous-jacent du système de fichiers, mais ici nous utilisons uniquement le disque dur comme exemple pour présenter la relation entre les disques et les partitions.
À l'heure actuelle, le partitionnement Linux adopte toujours le principe de partitionnement utilisé par le premier disque dur du PC. Ce principe de partitionnement est analysé et démontré étape par étape ci-dessous.
Examinons d’abord quelques concepts :
Gestion et partitionnement des appareils
Sous Linux, chaque périphérique de stockage correspond à un fichier de périphérique système Pour les disques durs, etc.
EDIet
SCSIappareil, dans le système
/dévLes caractères contenant correspondants peuvent être trouvés dans le répertoire
haute définitionet
SDfichiers de l'appareil. En fonction de l'interface de la carte mère et de l'interface du câble de données auxquelles le disque dur est connecté,
haute définitionou
SDAprès le personnage, vous pouvez ajouter un personnage de
unarriver
zpersonnages, par exemple
hda,
hdb,
hdcet
sda,
SDB,
sdcetc. De plus, afin de distinguer différentes partitions d'un même périphérique matériel, un numéro peut être ajouté à la fin, par exemple
hda1,
hda2,
hda3et
sda1,
sda2,
sda3, donc dans
/dévrépertoire, vous pouvez voir de nombreux fichiers de périphérique similaires.
Le rôle de chaque partition
Lors du partitionnement, on rencontre souvent le problème des partitions primaires et des partitions logiques. Il s'agit en fait de faciliter l'extension des partitions. Tout comme l'introduction ultérieure de volumes logiques permet de mieux gérer plusieurs disques durs, l'introduction de partitions primaires et de partitions logiques peut être utilisée. être facilement réalisé.
Chaque périphérique de disque dur du système Linux comprend jusqu'à 4 partitions principales (y compris les partitions étendues).
La partition principale est utilisée par l'ordinateur pour démarrer le système d'exploitation. Le programme de démarrage de chaque système d'exploitation, ou programme de démarrage, doit donc être stocké sur la partition principale. Linux stipule que la partition principale (ou partition étendue) occupe les 4 premiers numéros de partition. Vous verrez donc que le fichier périphérique correspondant à la partition principale est
/dev/hda1-4ou
/dev/sda1-4, plutôt que
hda5ou
sda5.
Les partitions étendues sont utilisées pour étendre davantage de partitions logiques. Sous Linux, les partitions logiques occupent.
hda5-16ou
sda5-16Attendez 12 numéros.
Type de partition
Il spécifie le type de système de fichiers sur cette partition. Linux prend en charge de nombreux types de systèmes de fichiers tels que msdoc, vfat, ext2, ext3, etc. Plus d'informations seront présentées plus en détail dans la section suivante.
Ensuite, en analysant les 512 premiers octets du disque dur (c'est-à-dire
MBR) pour analyser et comprendre les partitions.
Regardons d'abord cette image :
il est utilisé pour décrire
MBRstructure.
MBRY compris la partie de démarrage, la table de partition et la marque de fin `(55AAH), occupent respectivement 446 octets, 64 octets et 2 octets de 512 octets. Ici, nous nous concentrons uniquement sur la partie table de partition, c'est-à-dire les 64 octets du milieu et la partie gauche de la figure.
Puisque j'utilise
SCSIdisque dur, ce qui suit provient de
/dev/sdaCopiez les 512 premiers octets du disque dur dans le fichier de l'appareil
mbr.binmilieu.
$ sudo -s# dd if=/dev/sda of=mbr.bin bs=512 count=1
Utiliser ci-dessous
déposer,
oh,
fdisqueAttendez la commande pour analyser ce paragraphe
MBRdonnées et comparez-les avec le graphique ci-dessus pour une compréhension plus approfondie.
$ fichier mbr.binmbr.bin : secteur de démarrage x86, chargeur de démarrage LInux i386 ; partition 3 : ID=0x82, starthead 254, secteurs de démarrage 19535040, 1959930 secteurs ; partition 4 : ID=0x5, starthead 254, secteurs de démarrage 21494970, 56661255 secteurs, code. compenser 0x48$ od -x mbr.bin | tail -6 #Se concentrer uniquement sur les 64 octets du milieu, donc les 6 dernières lignes du résultat sont interceptées 0000660 0000 0000 0000 0000 a666 a666 0000 01800000700 0001 fe83 ffff 003f 0000 1481 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 ^/ #Analysez uniquement les parties liées au MBR, n'analysez pas la partie logique /dev/sda1 * 1 1216 9767488+ 83 Linux/dev/sda3 1217 1338 979965 82 Linux échanger / Solaris/dev/sda4 1339 4865 28330627+ 5 étendu
déposerLe résultat de la commande montre que les 512 octets qui viennent d'être copiés sont le secteur de démarrage et que les parties séparées par des points-virgules sont
chargeur de démarrage, partition 3 et partition 4. Le type de partition 3 est 82, soit
échangerPartition (peut être effectuée via
fdisquecommandant
jecommande pour lister les informations pertinentes), qui correspond à
fdisquedans les résultats de
/dev/sda3Dans la 5ème colonne de la ligne, le nombre de secteurs dans la partition 3 est 1959930, ce qui converti en octets est
1959930*512(Actuellement, la taille de secteur par défaut pour les disques durs est de 512 octets), tandis que
échangerLa taille de bloc par défaut d'une partition est de 1 024 octets, le nombre de blocs est donc
:
$ écho 1959930*512/1024 |
Exactement
fdisqueAboutir à
/dev/sda3De même, le nombre de blocs correspondant à la quatrième colonne de la ligne peut être comparé
fdisqueet
déposerLes résultats sont analysés pour la partition 4.
Voyons encore
ohLe résultat de la commande est affiché en hexadécimal Considérez également la partition 3. Après calcul, on constate que la partition 3 correspond à.
ohLe résultat de la commande est :
fe00 ffff fe82 ffff 14c0 012a e7fa 001d
Le premier est la marque de partition,
00H, sur l'image ci-dessus, vous pouvez voir qu'il ne s'agit pas d'une partition de démarrage (
80HCelle marquée est la partition de démarrage), et qu'en est-il du type de partition ? pour
82H,et
déposerLes résultats d’affichage sont cohérents. Faisons maintenant attention à la taille de la partition, c’est-à-dire.
déposerLe nombre de secteurs dans le résultat.
$ echo ibase=10;obase=16;1959930 |
Correspond juste
e7fa 001d, considérez de la même manière les résultats de la partition de démarrage :
0180 0001 fe83 ffff 003f 0000 1481 012a
Balise de partition :
80H, ce qui reflète simplement que cette partition est une partition de démarrage, suivie de la situation du secteur de disque où se trouve la partition de démarrage, 010100, c'est-à-dire 1 côté, 0 piste et 1 secteur. D'autres contenus peuvent être comparés et analysés.
Compte tenu de la contrainte de temps, veuillez vous référer aux informations ci-dessous ou au manuel correspondant du système pour plus de détails.
Supplément : lors de l'installation du système, vous pouvez utiliser
fdisque,
disquecfAttendez que la commande partitionne. Si vous souhaitez démarrer à partir d'une certaine partition, vous devez taper
80Hbalise, par exemple via
disquecfDéfinir une partition sur
amorçableà réaliser.
Références :
Dans le processus de démarrage Linux
Développez votre propre système d'exploitation : démarrer
Introduction à la partition de disque Redhat9
HOWTO sur les partitions Linux
Avant l'introduction des volumes logiques, les types de partition et les types de système de fichiers étaient traités de manière presque égale. Le processus de définition du type de partition consistait en un processus de formatage de la partition et d'établissement du type de système de fichiers correspondant.
Ce qui suit présente principalement comment établir la relation entre les partitions et les types de systèmes de fichiers, c'est-à-dire comment formater les partitions en tant que types de systèmes de fichiers spécifiés.
Jetons d'abord un coup d'œil aux types courants de systèmes de fichiers sous Linux (si vous souhaitez afficher tous les types de fichiers pris en charge par Linux, vous pouvez utiliser
fdisquecommandant
jecommande pour afficher ou passer
homme fsPour visualiser, vous pouvez également utiliser
/proc/systèmes de fichiersVérifiez les types de systèmes de fichiers pris en charge par le noyau actuel)
poste2,
poste3,
poste4: Ces trois types sont les types couramment utilisés par les systèmes de fichiers racine Linux.
échanger: Il s'agit d'un système de fichiers utilisé pour implémenter la mémoire virtuelle Linux Lors de l'installation, il est généralement nécessaire de créer une partition spéciale et de la formater comme.
échangersystème de fichiers (si vous souhaitez ajouter plus
échangerPour le partitionnement, vous pouvez vous référer aux documents de référence de cette section pour vous familiariser avec
jj,
mkswap,
échange,
échangeUtilisation d'autres commandes)
procédure: Il s'agit d'un système de fichiers relativement spécial qui existe comme interface entre le noyau et les utilisateurs et qui est intégré à la mémoire (accessible via
chatVue des commandes
/procLes fichiers du système peuvent même être modifiés par
/proc/sysLe fichier ci-dessous peut ajuster la configuration du noyau en temps réel. Le principe actuel est que vous devez le faire.
procédureSur le montage du système de fichiers :
monter -t proc proc /proc
En plus des types de systèmes de fichiers ci-dessus, la prise en charge de Linux inclut
vfat,
iso,
xfs,
nfsParmi les différents types de systèmes de fichiers courants, sous Linux, vous pouvez librement afficher et exploiter les systèmes de fichiers utilisés par d'autres systèmes d'exploitation tels que Windows.
Alors, comment établir l’association entre les disques et ces types de systèmes de fichiers ? format.
Le processus de formatage est en fait le processus de réorganisation de la partition, qui peut être
mkfsCommande à réaliser, bien sûr, vous pouvez également passer
fdisqueAttendez que la commande soit implémentée. Ici, nous présentons seulement
mkfs,
mkfsIl peut être utilisé pour formater une partition existante, mais ne peut pas effectuer d'opérations de partition (si vous souhaitez partitionner et formater un disque, vous pouvez utiliser
fdisque). Après le formatage, les données de la partition correspondante sont organisées selon un type de système de fichiers spécial.
Par exemple : mettre
/dev/sda9La partition est formatée comme
poste3système de fichiers.
$ sudo -s# mkfs -t ext3 /dev/sda9
Si vous souhaitez lister les types de système de fichiers de chaque partition, vous pouvez utiliser
fdisk -lCommande.
Veuillez vous référer aux documents suivants pour plus d'informations.
Références :
Étapes pour charger la partition d'échange sous Linux
Production et gravure de fichiers images ISO sous Linux
Explication de la partition du disque RAM :[1],[2]
Guide de mise en œuvre du système de fichiers avancé
La section précédente a directement formaté la partition en fonction d'un certain type de système de fichiers, mais compte tenu de la nécessité d'étendre de nouveaux périphériques de stockage, les développeurs ont introduit des volumes logiques entre le système de fichiers et la partition. Compte tenu des contraintes de temps, je n'entrerai pas dans les détails ici. Veuillez vous référer à la référence : Explication détaillée de la gestion des volumes logiques Linux.
Ce que le système de fichiers présente finalement est une structure visuelle, qui peut être présentée à l'aide de commandes telles que ls, find et tree. C'est comme un "arbre" à l'envers, et de nouveaux "arbres" peuvent être montés sur les nœuds de l'arbre.
Ce qui suit est une brève introduction au montage du système de fichiers.
Un système de fichiers peut être monté via un périphérique (
monter) vers un répertoire appelé point de montage. Fait intéressant, sous Linux, un répertoire lui-même peut être monté dans un autre répertoire, et un fichier formaté peut également être monté via un périphérique spécial.
/dev/boucleà monter (par ex.
isodocument). De plus, en ce qui concerne les systèmes de fichiers, Linux prend non seulement en charge les systèmes de fichiers locaux, mais également les systèmes de fichiers distants (tels que
nfs).
Ce qui suit présente brièvement plusieurs exemples de montage de système de fichiers.
Montage du système de fichiers racine
Le montage nécessite des autorisations root, par exemple, le montage du système de fichiers racine du système
/dev/sda1arriver
/mois
$ sudo -s# mount -t ext3 /dev/sda1 /mnt/
Vérifier
/dev/sda1Comme le montre la situation de montage, un appareil peut être monté plusieurs fois.
$ mount | grep sda1/dev/sda1 sur / tapez ext3 (rw, erreurs = remount-ro)/dev/sda1 sur /mnt tapez ext3 (rw)
Pour un système de fichiers déjà monté, il peut être remonté pour prendre en charge différents attributs.
$ mount -n -o remonter, rw /
Monter un nouvel appareil
Si le noyau prend déjà en charge l'interface USB, alors lors de l'insertion de la clé USB, vous pouvez passer
messageCommande pour afficher le numéro de périphérique correspondant et le monter.
Vérifier
messagePour les dernières lignes des résultats, recherchez quelque chose comme
/dev/sdNinformations pour connaître le numéro d’appareil correspondant au disque USB
$dmesg
On suppose ici que le disque USB est
vfatformat afin qu'il puisse également être utilisé sous Windows dans certaines imprimeries
# mount -t vfat /dev/sdN /path/to/mountpoint_directory
Monter un fichier iso ou un CD
Pour certains fichiers iso ou disques au format iso, vous pouvez également utiliser
monterCommande de monter.
Pour les fichiers iso :
# mount -t iso9660 /chemin/vers/isofile /chemin/vers/mountpoint_directory
Pour les CD :
# mount -t iso9660 /dev/cdrom /path/to/mountpoint_directory
Monter un système de fichiers distant
# mount -t nfs ip_distant :/path/to/share_directory /path/to/local_directory
Monter un système de fichiers proc
# mount -t proc proc /proc
procédureLe système de fichiers est organisé en mémoire, mais il peut être monté dans un répertoire. Montez-le généralement dans
/procafin que certains outils de gestion et de configuration du système puissent l'utiliser. Par exemple
hautLa commande l'utilise pour analyser l'utilisation de la mémoire (lire
/proc/meminfoet
/proc/statetc.) ;
lsmodcommande permettant d'obtenir l'état du module noyau (lire
/proc/modules);
netstatcommande pour obtenir l'état du réseau à travers elle (lire
/proc/net/devet autres documents). Bien entendu, des outils associés peuvent également être écrits. De plus, en ajustant
/proc/sysLes fichiers du répertoire peuvent ajuster dynamiquement la configuration du système, par exemple en allant vers
/proc/sys/net/ipv4/ip_forwardL'écriture du numéro 1 dans le fichier permet au noyau de prendre en charge le transfert de paquets. (Pour plus d'informations, veuillez vous référer à
procédureaide,
homme``proc)
Monter un répertoire
$ mount --bind /path/to/needtomount_directory /path/to/mountpoint_directory
C'est très intéressant. Par exemple, vous pouvez monter un répertoire dans le répertoire racine du service FTP et fournir les ressources du répertoire correspondant pour que d'autres puissent les partager sans copier le contenu.
Le montage mentionné ci-dessus est uniquement mentionné, alors comment désinstaller ? utiliser
démonterSuivez simplement la commande avec l'adresse source ou le point de montage (périphérique, fichier, répertoire distant, etc.) du montage. Par exemple:
$ umount /chemin/vers/mountpoint_directory
ou
$ umount /chemin/vers/mount_source
Si vous souhaitez gérer un grand nombre de services montés fréquemment ou des services montés fréquemment, le montage manuel à chaque fois est une mauvaise idée. Vous pouvez l'utiliser maintenant
monterfichier de configuration
/etc/fstab,Paquet
monterLes paramètres correspondants s'écrivent sous la forme
/etc/fstabLe montage par lots peut être réalisé dans la colonne correspondant au fichier (
monter -a) et désinstallez (
démonter -a).
/etc/fstabLes colonnes sont le système de fichiers, le point de montage, le type et les options associées. Pour plus d'informations, veuillez vous référer à
fstabaide (
homme fstab).
Références :
Partition de disque dur Linux et son principe de montage
Examen du système de fichiers virtuel Linux à partir des E/S de fichiers
Analyse du code source : analyse statique diagramme d'appel de fonction du programme C
Il existe quelques répertoires de base sous le système de fichiers Linux et divers fichiers dotés de fonctions différentes sont stockés dans différents répertoires. Les répertoires les plus basiques sont
/etc,
/lib,
/dév,
/binetc., qui stockent respectivement les fichiers de configuration du système, les fichiers de bibliothèque, les fichiers de périphérique et les programmes exécutables. Ces répertoires sont généralement nécessaires lors du développement intégré, vous devez le faire manuellement ou utiliser.
boîte occupéeAttendez les outils pour créer un système de fichiers aussi basique. Ici, nous créons uniquement un système de fichiers très simple et effectuons diverses opérations conventionnelles sur le système de fichiers pour approfondir notre compréhension du système de fichiers.
je me souviens encore
jjUne commande ? Utilisez-le simplement pour générer un fichier de taille fixe, c'est
1M(1024*1024 octets)fichiers
$ dd if=/dev/zero of=minifs bs=1024 count=1024
Afficher les types de fichiers ici
minifsest un plein
\0fichier sans structure de données spécifique
$ fichier minifsminifs : données
illustrer:
/dev/zéroest un appareil très spécial, si vous le lisez, vous pouvez obtenir n'importe quel nombre de
\0.
Le fichier est ensuite formaté dans un système de fichiers d'un type de fichier spécifié. (Cela semble-t-il incroyable que les fichiers puissent également être formatés ? Oui, non seulement les appareils le peuvent, mais les fichiers peuvent également être organisés dans certains types de systèmes de fichiers, mais il convient de noter que certains systèmes de fichiers (tels que
poste3) nécessite que la cible soit formatée pour avoir au moins
64 Mespace).
$ mkfs.ext2 minifs
Vérifiez le type de fichier à ce moment-là.
minifsPrends juste
poste2Format du système de fichiers organisé
$ fichier minifsminifs : données du système de fichiers Linux rev 1.0 ext2
Le fichier étant organisé par type de système de fichiers, vous pouvez utiliser
montercommande pour le monter et l’utiliser.
Veuillez passer à
racineL'utilisateur le monte et passe
-o bouclepossibilité de l'associer à un appareil spécifique
/dev/boucle
$ sudo -s# mount minifs /mnt/ -o boucle
Afficher les informations du système de fichiers et voir un seul fichier de répertoire
perdu+trouvé
$ ls /mnt/perdu+trouvé
Effectuez diverses opérations régulières sous ce système de fichiers, notamment la lecture, l'écriture, la suppression, etc. (Avant chaque opération, veuillez
minifsEnregistrez une copie du fichier à des fins de comparaison. En combinaison avec des informations pertinentes, vous pouvez effectuer une analyse approfondie des modifications apportées au système de fichiers causées par diverses opérations, permettant ainsi une compréhension approfondie des principes de mise en œuvre du système de fichiers. pour organiser les données, etc.)
$ cp minifs minifs.bak$ cd /mnt$ touch bonjour$ cd -$ cp minifs minifs-touch.bak$ od -x minifs.bak > orig.od$ od -x minifs-touch.bak > touch.od
Après avoir créé un fichier, comparez les similitudes et les différences entre le système de fichiers actuel et le système de fichiers précédent.
$ 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
Par comparaison, il a été constaté que lorsqu'un fichier est ajouté, l'emplacement correspondant du système de fichiers change considérablement.
$ echo bonjour, monde > /mnt/bonjour
mettre en œuvre
synchronisercommande pour garantir que les données du cache ont été écrites sur le disque (rappelez-vous la figure 1 de cette section
cache tamponEh bien, le voici
cacheLes données sont écrites sur le disque)
$ sync$ cp minifs minifs-echo.bak$ od -x minifs-echo.bak > echo.od
Après avoir écrit le contenu du fichier, comparez les similitudes et les différences entre le système de fichiers et le précédent.
$ diff touch.od echo.od
Afficher les chaînes dans le système de fichiers
$ chaînes minifslost+foundbonjourbonjour tout le monde
supprimer
BonjourFichier, afficher les modifications du système de fichiers
$ rm /mnt/hello$ cp minifs minifs-rm.bak$ od -x minifs-rm.bak > rm.od$ diff echo.od rm.od
En examinant les chaînes dans le système de fichiers, nous avons constaté que le contenu du fichier n'était pas écrasé lors de la suppression du fichier, donc théoriquement, le contenu est toujours récupérable à ce moment-là.
$ chaînes minifslost+foundbonjourbonjour tout le monde
Ce qui précède ne présente que quelques outils courants pour analyser les systèmes de fichiers et analyse plusieurs opérations courantes. Si vous souhaitez avoir une compréhension très approfondie des principes de mise en œuvre des systèmes de fichiers, veuillez vous familiariser avec l'utilisation des outils ci-dessus et lire les documents pertinents.
Références :
Construire un mini système de fichiers sous Linux à partir de zéro
Construisez un mini système de fichiers sous Linux avec BusyBox
système de fichiers ext2
avec
fusibleAvec l'émergence de fuse, il est devenu possible de développer des systèmes de fichiers dans l'espace utilisateur. Si vous souhaitez développer votre propre système de fichiers, il est recommandé de lire : Utilisez fuse pour développer votre propre système de fichiers.
Le 22 décembre 2007, j'ai collecté de nombreuses informations et rédigé le cadre général.
La première ébauche a été achevée dans l'après-midi du 28 décembre 2007. Compte tenu des contraintes de temps, de nombreux détails n'ont pas été analysés davantage. De plus, des problèmes de compréhension peuvent survenir dans certaines parties. Les critiques et les corrections sont les bienvenues.
Le soir du 28 décembre 2007, certaines informations ont été modifiées et le document a été officiellement publié.
N ° 29, ajoutez une section sur les pilotes de périphériques et les périphériques matériels