Linux環境でのmountコマンドの謎は何ですか

序文

Linux環境mountコマンドはファイルシステムをマウントできます、コマンドは現在私が最も奇妙なことを知っているようにコマンドです、使用されていません、実際には一度もマウントされていません、通常最も使用されるのはWindwosシステムです、完全マウントする必要はありません、ドライブ文字新しいハードディスクをインストールすると自動的に表示されます。もう少し複雑なのは、ディスクマネージャを介してパーティションを作成するか、Magic PartitionAssistantを使用して少し複雑なパーティション分割またはフォーマット操作を実行することです。

Linuxシステムでは、アプリケーション開発機であれ購入サーバーであれ、ハードディスクがマウントされていますが、これまで手動でマウントする必要のある状況はなかったので、このコマンドに慣れていないので、本日決めました時間をかけて学ぶために機器、特にディスク関連の操作に関連する知識を要約しましょう。

ファイルの種類

「すべてがファイルである」(すべてがファイルである)はLinuxの機能なので、ディスクとデバイスについて学習する前に、ファイルの種類を見てみましょう。Linuxでは、ファイルの種類はサフィックスによって判断されません。コマンドを使用できますll(またはls -l)指定したディレクトリの内容を列挙でき、各行の最初の文字でファイルの大きなタイプを判断できます。

  • -rw-rr-:-すべての通常のファイルの先頭
  • brw-rr-:b先頭はブロックデバイスファイルです
  • crw-rr-:c先頭は文字デバイスファイルです
  • drw-rr-:d最初はディレクトリファイルです
  • lrw-rr-:l最初のファイルはソフトリンクであり、シンボリックリンクとも呼ばれます
  • prw-rr-:p最初はパイプラインファイルです
  • srw-rr-:s先頭はソケットファイルです

CentOSシステムデバイスディレクトリを確認できdevます。ここのファイルタイプは非常に豊富です。コンテンツが大きいため、コンテンツの一部のみをここに表示します。

[root@VM-0-3-centos ~]# ll /dev
total 0
crw------- 1 root root     10, 235 Feb  9 11:13 autofs
drwxr-xr-x 2 root root         120 Feb  9 11:13 block
drwxr-xr-x 2 root root          60 Feb  9 11:13 bsg
crw------- 1 root root     10, 234 Feb  9 11:13 btrfs-control
drwxr-xr-x 3 root root          60 Feb  9 11:13 bus
lrwxrwxrwx 1 root root           3 Feb  9 11:13 cdrom -> sr0
drwxr-xr-x 2 root root        2560 Feb  9 11:13 char
crw------- 1 root root      5,   1 Feb  9 11:13 console
lrwxrwxrwx 1 root root          11 Feb  9 11:13 core -> /proc/kcore
drwxr-xr-x 3 root root          60 Feb  9 11:13 cpu
crw------- 1 root root     10,  61 Feb  9 11:13 cpu_dma_latency
crw------- 1 root root     10,  62 Feb  9 11:13 crash
drwxr-xr-x 6 root root         120 Feb  9 11:13 disk
drwxr-xr-x 2 root root          60 Feb  9 11:13 dri
crw-rw---- 1 root video    29,   0 Feb  9 11:13 fb0
lrwxrwxrwx 1 root root          13 Feb  9 11:13 fd -> /proc/self/fd
crw-rw-rw- 1 root root      1,   7 Feb  9 11:13 full
crw-rw-rw- 1 root root     10, 229 Feb  9 11:13 fuse
crw------- 1 root root     10, 228 Feb  9 11:13 hpet
drwxr-xr-x 2 root root           0 Feb  9 11:13 hugepages
crw------- 1 root root     10, 183 Feb  9 11:13 hwrng
lrwxrwxrwx 1 root root          25 Feb  9 11:13 initctl -> /run/systemd/initctl/fifo
drwxr-xr-x 3 root root         240 Feb  9 11:13 input
crw-r--r-- 1 root root      1,  11 Feb  9 11:13 kmsg
srw-rw-rw- 1 root root           0 Feb  9 11:13 log

実際、コマンドであるfileコマンドのファイルタイプをクエリするように設計された、より正確なものがあります。実行後にファイルタイプの説明が出力されると、以下をテストできます。

[root@VM-0-3-centos ~]# ll
total 12
-rwxr-xr-x 1 root root   67 Feb  9 13:44 connecttendis.sh
drwxr-xr-x 2 root root 4096 Feb  9 13:44 tarlist
drwxr-xr-x 4 root root 4096 Feb  9 13:40 tendis
[root@VM-0-3-centos ~]# file connecttendis.sh
connecttendis.sh: Bourne-Again shell script, ASCII text executable
[root@VM-0-3-centos ~]# file tendis/
tendis/: directory

説明は、connecttendis.shがシェルスクリプトであり、tendis /がディレクトリであることを示しています。

ファイルシステム

ファイルの種類について話した後、ファイルシステムについて話さなければなりません。ファイルシステムとは何ですか?実際、ファイルシステムがファイルを管理していることが名前からわかります。さまざまなファイルシステムでサポートされている最大容量、サイズ制限単一のファイルとストレージパフォーマンス、圧縮可能かどうか、検証を提供するかどうかなどは同じではありません。システムを作成するとき、Uディスクを書き込むとき、またはハードディスクをフォーマットするとき、ファイルシステムという用語はよく使われます。言及されました。

一般的に、Windowsのファイルシステムで使用されるFAT16FAT32NTFSexFATなど、および一般的に使用されるLinuxファイルシステムext2ext3ext4tmpfsprocこれらのファイルシステムのすべてを覚えておく必要はありませんので、上、それは、Linux上で見ることができる/proc/filesystemsファイルは、ファイルがで知っています現在のシステムサポートシステム。

[root@VM-0-3-centos ~]# cat /proc/filesystems
nodev   sysfs
nodev   rootfs
nodev   ramfs
nodev   bdev
nodev   proc
nodev   cgroup
nodev   cpuset
nodev   tmpfs
nodev   devtmpfs
nodev   debugfs
nodev   securityfs
nodev   sockfs
nodev   dax
nodev   bpf
nodev   pipefs
nodev   configfs
nodev   devpts
nodev   hugetlbfs
nodev   autofs
nodev   pstore
nodev   mqueue
        ext3
        ext2
        ext4
        iso9660
nodev   binfmt_misc

上記の結果を見ると、最初の列が空のファイルシステムは、その内容にアクセスするためにブロックデバイスにマウントする必要があります。そうすれば、通常どおりに使用できます。

ハードドライブをマウントします

Windowsのディレクトリはドライブ文字に分割されており、各パーティションにドライブ文字を割り当てることができます。各ドライブ文字はパーティションのルートであり、各ドライブ文字を介してコンテンツに順番にアクセスできます。Linuxでは、ドライブ文字の概念はありません。ルートディレクトリ/と完全なディレクトリツリーは1つだけです。通常使用するには、このディレクトリツリーにハードディスクデバイスをマウントする必要があります。

/devハードディスクデバイスを見つけることができるほぼすべてのデバイスファイルを格納するディレクトリがわかっています。

[root@VM-0-3-centos ~]# ll /dev/ | grep disk
drwxr-xr-x 6 root root         120 Feb  9 11:13 disk
brw-rw---- 1 root disk      7,   0 Feb  9 11:13 loop0
crw-rw---- 1 root disk     10, 237 Feb  9 11:13 loop-control
brw-rw---- 1 root disk    253,   0 Feb  9 11:13 vda
brw-rw---- 1 root disk    253,   1 Feb  9 11:13 vda1

コマンドの結果から、このコンピュータには通常のvdaハードディスクが1つしかなく、ハードディスクにはパーティションが1つしかないことがわかりvda1ます。これは現在の一般的な命名方法ですhd。IDEインターフェイスを備えたハードディスク、sdSATAインターフェース、およびvdのvirtioディスクコア通常、ハードドライブ、リムーバブルハードディスク、Uディスク、等のSDX識別の形式、使用された最初のディスクaサフィックスとして、例えばsda順後ろ、ハードドライブsdbsdcなど、Aハードディスクサフィックスの最初のパーティション、パーティション番号の後ろ順番に増加します。

ハードディスクのパーティションを確認してください

ハードディスクデバイス/devはディレクトリ照会できますfdiskが、より詳細な照会を行うことができます

[root@VM-0-3-centos dev]# fdisk -l

Disk /dev/vda: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000d64b4

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048   104857566    52427759+  83  Linux

することによりfdisk -l、クエリ結果の順序/devディレクトリに見つかった情報と一致

現在マウントされているファイルシステムを表示する

現在マウントされているすべてのファイルシステムを表示するには、mount十分なコマンドのみが必要です。-t tmpfsパラメーターを追加して、ビューのタイプを指定することもできます。

[root@VM-0-3-centos ~]# mount
sysfs on /sys type sysfs (rw,relatime)
proc on /proc type proc (rw,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,size=930496k,nr_inodes=232624,mode=755)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,mode=755)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
...
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
configfs on /sys/kernel/config type configfs (rw,relatime)
/dev/vda1 on / type ext4 (rw,noatime,data=ordered)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime)
mqueue on /dev/mqueue type mqueue (rw,relatime)
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,size=188204k,mode=700)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,relatime)

出力の各行の形式は同じで、スペースで区切られた6列のコンテンツが含まれ、特定の形式は次のとおりです。

<マウントディレクトリ>の<ブロックデバイスまたは他のファイルシステム>タイプ<ファイルシステムタイプ> <(ファイルシステムコンテンツに関連するオプション)>

'/ dev / vda1 on / type ext4(rw、noatime、data = ordered)'の場合、この動作/dev/vdaは、ハードドライブの最初のパーティションがext4ファイルシステムのタイプをマウントすることを意味し、ルートマウントポイントディレクトリの/括弧rwは読み取りと書き込み、data=ordered順序付けrelatimeは、ファイルアクセス時間属性を更新する方法でnoatimeあり、lazytimeタイプに加えて、このコンテンツはより多くなり、ここからは開始されません。興味がある場合は、記事「atime、lazytime、および詳細については、「ファイルシステムのrelatime」を参照してください。

ディスクパーティションをフォーマットする

使用mkfsはディスクパーティションをフォーマットでき、同時にフォーマットするとファイルシステムタイプを変更できます

[root@VM-0-3-centos ~]# mkfs -t ext4 /dev/sda2

新しいディスクパーティションをマウントします

mountコマンドを使用して、新しいディスクパーティションをディレクトリツリーにマウントできます

通常のマウント

[root@VM-0-3-centos ~]# mkdir -p /mnt/data
[root@VM-0-3-centos ~]# mount /dev/sda2 /mnt/data

読み取り専用としてマウント

[root@VM-0-3-centos ~]# mount -o ro /dev/sda2 /mnt/data

読み取り専用マウントが読み取り/書き込みモードに変更されました

[root@VM-0-3-centos ~]# mount /mnt/data -o rw,remount

オプティカルドライブをマウントします

CD-ROMドライブのマウント方法はハードディスクと同じですが、CD-ROMドライブは別のデバイスであり、異なるファイルに対応しています。

[root@VM-0-3-centos ~]# mount /dev/cdrom /media/cdrom

Windows共有ファイルをマウントする

Windows共有ファイルをマウントするには、WindowsコンピューターのIP、ユーザー名、およびパスワードが必要です。

[root@VM-0-3-centos ~]# mkdir -p /mnt/share
[root@VM-0-3-centos ~]# mount -t cifs -o username=admin,password=94741 //10.2.49.172/share /mnt/share

iOSファイルをマウントする

ISOファイルを直接マウントするのにCD-ROMドライブは必要ありません。最初に、ISOファイルの作成をシミュレートして使用する方が便利です。

[root@VM-0-3-centos ~]# genisoimage -o test.iso tendis/
I: -input-charset not specified, using utf-8 (detected in locale settings)
Using TENDI000.;1 for  tendis/bin/tendisplus (tendisplus_static)
  2.77% done, estimate finish Sat Feb 27 23:03:08 2021
  5.53% done, estimate finish Sat Feb 27 23:03:08 2021
  8.30% done, estimate finish Sat Feb 27 23:03:08 2021
...
 49.78% done, estimate finish Sat Feb 27 23:03:10 2021
...
 99.55% done, estimate finish Sat Feb 27 23:03:11 2021
Total translation table size: 0
Total rockridge attributes bytes: 0
Total directory bytes: 6144
Path table size(bytes): 50
Max brk space used 1a000
180825 extents written (353 MB)

/mnt/isoISOはその上のディレクトリに直接マウントされ、ディレクトリファイルtest.isoの内容にアクセスできます。

[root@VM-0-3-centos ~]# mkdir -p /mnt/iso
[root@VM-0-3-centos ~]# mount test.iso /mnt/iso
mount: /dev/loop0 is write-protected, mounting read-only

コンピュータ機器の概念

コンピュータサイエンスには多くの概念があり、それらを読んだ後に毎回忘れられるセクター、ブロック、クラスター、ページなどの内容が不明確であるか、混同されていることがよくあります。簡単な要約を次に示します。

セクタ

物理レベルの概念に属するユニットとしてのハードディスクセクターの読み取りと書き込み。オペレーティングシステムはセクターと直接対話せずfdisk -l、セクターサイズを表示できます。

[root@VM-0-3-centos dev]# fdisk -l

Disk /dev/vda: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000d64b4

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048   104857566    52427759+  83  Linux

その中で、セクターサイズはセクターサイズを表しており、結果から論理セクターと物理セクターに分けられますが、この例ではどちらも512バイトです。

ブロック、クラスター

ブロックとクラスターは実際には一種のものです。通常、Linuxシステムはブロックと呼ばれ、Windowsシステムはクラスターと呼ばれます。これはデータの読み取りと書き込みを行うファイルシステムの最小単位です。各ディスクブロックには、隣接する2、4、8を含めることができます。 16、32、または64セクターは、オペレーティングシステムで使用される論理概念であり、コマンドをstat /boot表示できます。

[root@VM-0-3-centos mnt]# stat /boot
  File: ‘/boot’
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Device: fd01h/64769d    Inode: 18          Links: 5
Access: (0555/dr-xr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2018-08-08 11:20:35.109000000 +0800
Modify: 2021-02-09 11:14:21.799238058 +0800
Change: 2021-02-09 11:14:21.799238058 +0800
 Birth: -

その結果、IOブロックは4096バイトのディスクブロックサイズ、つまり4Kになります。そのため、ディスクスペースをより効率的かつ適切に管理するために、隣接するセクターがブロックにマージされてデータにアクセスします。オペレーティングシステムでは、ディスクブロックに配置できるファイルは1つだけであると規定されているため、スペースが無駄になります。つまり、ほとんどの場合、ファイルが占めるディスクスペースはファイルサイズよりも大きくなります。

ページ

これはメモリ関連の概念であり、メモリの最小ストレージユニットです。そのサイズは通常、ディスクブロックサイズの2 n 2 ^ nです。2n回、コマンドgetconf PAGE_SIZEを使用してページのサイズを取得します

[root@VM-0-3-centos mnt]# getconf PAGE_SIZE
4096

総括する

  • mount Linuxシステムでは非常に重要なコマンドですが、あまり使われていないように感じます
  • シャットダウンシステムで新しくマウントされたハードディスクがアンロードされた後、/etc/fstabファイルをマウントするための情報を追加して、ブートを自動的にマウントできます。
  • 複数のデバイスを同じディレクトリにマウントできます。デフォルトでは、後でマウントされたコンテンツは以前にマウントされたコンテンツを非表示にし、後続のマウントはマウント解除され、以前にマウントされたコンテンツも表示されます
  • 同じデバイスを異なるディレクトリにマウントでき、マウント時に異なるアクセス許可を指定できるため、異なるディレクトリにある同じコンテンツを異なるアクセス許可で表示できます。
  • セクターは、物理的な概念に属するハードディスクの読み取りと書き込みの基本単位です。
  • ブロック/クラスターは、論理的な概念に属する、データを読み書きするためのオペレーティングシステムの基本単位です。
  • ページはメモリの最小ストレージユニットであり、通常はディスクブロックサイズの2 n 2 ^ nです。2n

== >>アンチクロールリンク、クリックしないでください、それはその場で爆発します、そしてあなたはそれに対して責任がありません!<< ==

何千マイルもの山や川が世界中を旅してきましたが、誰が入っても春と秋は数十年しか経っていません〜

「あなたは私に何かをするように教えていますか?」

おすすめ

転載: blog.csdn.net/shihengzhen101/article/details/114199056