Linux共通コマンド - mountコマンド(1)

マウントとは、作成した空のディレクトリにデバイスのファイル名を紐づける処理のことをマウントといいます。

1. マウントコマンドの基本フォーマット

Linux では、ハードディスクを含むすべてのストレージ デバイスを使用する前にマウントする必要があります。

  • コマンド名:マウント
  • コマンドが配置されているパス: /bin/mount
  • 実行権限: すべてのユーザー

コマンドの具体的な形式は次のとおりです。

#查询系统中已经挂我的设备,-l会显示卷标名称
[root@localhost ~ ] # mount [-l]

2. 練習:

コマンドを直接入力すると、mountシステムにすでに存在するマウントされたデバイスが照会されます。

[root@localhost ~]# mount
/dev/sda3 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

其中只有
/dev/sda3 on / type ext4 (rw)-->/dev/sda3挂载到根目录下,文件系统是ext4,权限是读写。
/dev/sda1 on /boot type ext4 (rw)
有用,其他都是干扰项.

还要注意,swap分区是不需要挂载点的,是给系统内核直接访问的分区,mount命令是查看不到的。

3.mount -a注文

#依据配置文件/etc/fstab的内容,自动挂载
[root@localhost ~ ] # mount -a

-a の a は auto で、自動という意味です。
Linux システムのハードディスクは起動時に自動的にマウントされます。ただし、CD や U ディスクなどのモバイル ストレージ デバイスは、起動後に自動的にマウントされることはお勧めできません。
CD や U ディスクなどのリムーバブル ストレージ デバイスが起動時に自動的にマウントされるように設定されている場合、起動時に CD または U ディスクを置き忘れると、システムは無条件にこのパーティションを検索し、見つからない場合はシステムの起動に失敗します。このようなエラーを修正するのは実際には難しくありませんが、このマシン上で操作する必要があります。
Linux システムの自動マウントは、/etc/fstab ファイルに従って自動的に実行されます。このファイルは非常に壊れやすいファイルです。このファイルが誤って書き込まれると、システムはエラーを報告し始めます。
[root@localhost ~]# vim /etc/fstab

このmount -aコマンドは、/etc/fstab ファイルをスキャンして内容にタイプミスがないかどうかを確認するものとみなされ、間違っている場合はエラーが報告されます。
Red Hat 6 以降の Linux システムでは、/etc/fstab ファイルの耐障害性が大幅に強化されました。Red Hat 5 までは、文字のスペルミスは許されませんでしたが、Red Hat 6 以降は、キーの位置情報以外はエラーが報告されず、その他のエラーも報告されないため、コマンドでスキャンしてもエラーが発生しない場合があるため、コマンドの結果を盲目的に信頼することはできませmount -amount -aこれだけは覚えておいてください。(エラーが発生した場合のファイルの修正方法については後ほど説明します)

4. マウントコマンドの形式

[root@localhost ~ ] # mount [-t 文件系统] [-L卷标名] [-o特殊选项] \ 
设备文件名 挂载点

注意:在Linux系统中\ 的意思表示换行符, 代表上边两行是一行内容。

选项:
-t文件系统:加入文件系统类型来指定挂载的类型,可以ext3、ext4、iso9660等文件系统。(不写也没事,Linux系统默认光盘U盘都能自动识别)。
-L卷标名:挂载指定卷标的分区,而不是安装设备文件名挂载。(现在基本上用不到了,可以不关注。)
-o特殊选项:可以指定挂载的额外选项,比如读写权限、同步异步等,如果不指定则默认值生效。

[root@localhost ~ ] # mount -t iso9660 /dev/sr0 /mnt/cdrom/

-o 特別なオプションの説明

まずは前回の記事で紹介したLinuxシステムの自動マウント設定ファイルである/etc/fstabファイルを確認してみましょう。

上図の赤いボックスは、パーティションのマウントに対するデフォルトの権限です。以下に、マウントする権限について詳しく説明します。

  • atime/noatime: アクセス時間を更新する/アクセス時間を更新しない。パーティション ファイルにアクセスするときにファイルのアクセス時間を更新するかどうか。デフォルトでは更新されます。
  • async/sync: 非同期/同期、デフォルトは非同期です。
  • auto/noauto: 自動/手動、mount-a コマンドの実行時に、/etc/fstab ファイルの内容が自動的にマウントされるかどうか。デフォルトは自動です。
  • exec/noexec: 実行する/実行しない、ファイル システムでの実行可能ファイルの実行を許可するかどうかを設定します。デフォルトは exec で許可されます。
  • rw/ro: 読み取り/書き込み/読み取り専用。ファイル システムのマウント時に読み取り/書き込み権限を持つかどうか。デフォルトは rw です。
  • suid/nosuid: SUID 権限の有無に応じて、ファイル システムに SUID および SGID 権限があるかどうかを設定します。デフォルトは [はい] です。
  • user/nouser: 一般ユーザーのマウントを許可/禁止し、ファイル システムが一般ユーザーのマウントを許可するかどうかを設定します。デフォルトは許可されません。root のみがパーティションをマウントできます。
  • デフォルト: デフォルト値を定義します。これは、rw、suid、dev、exec、auto、nouser、および async の 7 つのオプションに相当します。
  • remount: マウントされたファイル システムを再マウントします。通常、特別なアクセス許可を指定および変更するために使用されます。
  • usrquota: 書き込みは、ファイル システムがユーザー ディスク クォータをサポートしていることを意味しますが、デフォルトではサポートされていません。
  • grpquota: Write は、ファイル システムがグループ ディスク クォータをサポートしていることを意味しますが、デフォルトではサポートされていません。
注:
デフォルトの権限は、上位 7 つの権限のうちのデフォルト値を表します。通常、このデフォルト値を変更する必要はなく、デフォルトのオプションで問題ありません。
たとえば exec/noexec 、noexec を選択した場合、パーティション全体のファイルは実行できませんし、ルート ディレクトリが noexec に定義されている場合、マウント コマンドが実行できないため、変更したくてもシステム全体を起動できません。

演習:exec/noexecオプションについて説明する

#1、查看系统中已经挂载的文件系统,注意有虚拟文件系统
#命令结果是代表:/dev/sda3分区挂载到/目录,文件系统是ext4,权限是读写
[root@localhost] # mount
/dev/sda3 on/type ext4(rw)proc on/proc type proc(rw)
sysfs on/sys type sysfs(rw)
devpts on/dev/pts type devpts(rw,gid=5,mode=620)
tmpfs on/dev/shm type tmpfs(rw)
/dev/sdal on/boot type ext4(rw)
none on/proc/sys/fs/binfmt_misc type binfmt_misc(rw)
sunrpe on/var/lib/nfs/rpe_pipefs type rpc_pipefs(rw)


#2、修改特殊权限
#我们查看到/boot分区已经被挂载,而且采用的defaults 选项,那么我们重新挂载分区,并采用 noexec
[root@localhost ~ ] # mount -o remount,noexec /boot(临时生效)

然后用mount命令查询一下分区,boot分区多了noexec权限
/dev/sdal on /boot type ext4 (rw,noexec)

#权限禁止执行文件执行,看看会出现什么情况(注意不要用根分区做试验,#不然系统命令也不能执行了)。
# 执行一个shell脚本
[root@localhost boot]#./hello.sh
-bash:./hello.sh:权限不够

# 再修改回来权限,就可以执行了。
[root@localhost ~ ] # mount -o remount,exec /boot

この演習では、remountその機能と使用方法も覚えておく必要があります。

3.CDマウント

CD マウントの前提は、依然として CD のデバイス ファイル名を指定することです。Linux のバージョンが異なれば、デバイス ファイル名も異なります。

  • CentOS5.x より前のシステムの場合、CD デバイスのファイル名は /dev/hdc です。
  • CentOS6.x 以降のシステムの場合、CD デバイスのファイル名は /dev/sr0 です。

どのシステムにソフト接続 /dev/cdrom があり、CD として使用できるデバイス ファイル名があるかは関係ありません。

/dev/cdrom が /dev/sr0 (Windows システムのショートカットに相当) のソフトリンクであることがわかります。ソース ファイル dev/sr0 を使用することをお勧めします。
Linux システムでは、デフォルトでルート ディレクトリに 3 つの空のフォルダーが提供されます。

  • メディア (CD をマウントすることを推奨)
  • その他(ネットワークストレージディスクを推奨)
  • mnt (U ディスクまたはモバイル ハードディスクをハングすることをお勧めします)。

私は外部デバイスをマウントするために mnt フォルダーに空のディレクトリを作成することに慣れています。以下に、ディスクをマウントする手順をまとめます。
1. mnt フォルダーに cdrom という名前の空のディレクトリを作成します。

[root@localhost /]# mkdir /mnt/cdrom

管理上不便となるため、ルート ディレクトリに多すぎる第 1 レベルのディレクトリを作成することはお勧めできません。
2. CD のデバイス ファイル名を確認します
。CentOS6.x 以降のシステムの場合、CD のデバイス ファイル名は /dev/sr0 です。これは修正されているので、覚えておいてください。
CentOS5.x以前のシステムでは、昔からハードディスクとCDシステムの名称がシステム内で統一されており、ハードディスクがhdaとhdbの2台あり、CDのデフォルト認識がhdcだと思われていたため、CDデバイスのファイル名は/dev/hdcとなっていました。しかし、ストレージ容量の需要はますます大きくなり、その結果、2 台のハードディスクでは需要を満たすことができなくなり、新しいハードディスクを追加し続ける必要があります。このとき、CD のデバイス ファイル名の認識は自動的に逆方向に変更されます。ハードディスクが 3 台ある場合、CD のデバイス ファイル名は hdd になります。
この時点では、CD のデバイス ファイルが修正されないため、CD をコンピュータにマウントすることになり、まず CD のデバイス ファイル名を確認してからマウントする必要があります。したがって、CentOS6.x 以降のシステムでは、CD のデバイスファイル名は sr0 に固定され、1 枚目の CD-ROM のデバイスファイル名は sr0、2 枚目の CD-ROM のデバイスファイル名は sr1 というようになります。この利点は、ハードディスクのデバイス ファイル名とは関係がないことです。
3. ディスクをマウントします

[root@localhost ~ ] # mount -t iso9660 /dev/sr0 /mnt/cdrom/

注意:
-t文件系统:加入文件系统类型来指定挂载的类型,
可以ext3、ext4、iso9660等文件系统。
挂载光盘就用iso9660类型的文件系统类型。
也可以直接省略-t iso9660,
挂载光盘时候系统自动添加。

[root@localhost ~ ] # mount /dev/sr0 /mnt/cdrom/

上記のコマンドを実行すると、ファイル システムを指定する必要があるというエラーが報告されます。次のように:

[root@localhost /]# mount /dev/sr0 /mnt/cdrom/
mount: you must specify the filesystem type

ファイルシステムを追加して再度実行します。次のように:

[root@localhost /]# mount -t iso9660  /dev/sr0 /mnt/cdrom/
mount: no medium found on /dev/sr0

今回のエラー メッセージは正確で、/dev/sr0 にディスクが見つからなかったことを示しています。
CD ファイルを仮想マシン ソフトウェアに追加し、CD-ROM ドライブに配置する必要があります。

CD マウント コマンドを再度入力します。

[root@localhost /]# mount /dev/sr0 /mnt/cdrom/
mount: block device /dev/sr0 is write-protected, mounting read-only

/dev/sr0 が読み取りおよび書き込み権限を必要としているが、現在は読み取り専用権限が与えられているというエラーを報告する別の行があります。ディスクの使用は追記型であるため、その後は読み取り専用になります。したがって、この行はエラーを報告しており、これはディスクが正しくマウントされていることを示していると考えられます。
最後にmountコマンドを実行して確認します。

4. 閉じたディスク内のデータにアクセスするには、
マウント ポイントに移動して、/mnt/cdrom/ ディレクトリにある CD 内のデータにアクセスする必要があります。

こちらがディスクの内容です。
5. マウント ポイントをアンインストールします。
マウントされた CD であっても、USB フラッシュ ドライブであっても、使用後はアンインストールする必要があります。アンインストールせずに CD を変更すると、問題が発生します。何度かアンインストールしたりCDを入れ替えたりしないと、一定の確率で、どのディスクを入れても、読み出したデータは入れたCDのデータではないことがわかります。これは、仮想マシンに付属するツール vmtools のコンテンツです。その後、ディスクをアンインストールしても動作しなくなります。
現時点での解決策は、仮想マシン内の既存の CD-ROM ドライブを削除し、新しい CD-ROM ドライブを追加することです。

マウントポイントをアンマウントする

#因为设备文件名和挂载点已经连接到一起,卸载哪一个都可以
[root@localhost ~ ] # umount /dev/sr0
[root@localhost ~ ] # umount /mnt/cdrom
卸载
[ root@ localhost cdrom]# umount /dev/sr0
umount:/mnt/cdrom: device is busy.
(In some cases useful info about processes that use the device is found by 1sof(8) or fuser(1))

上边报错说设备正忙,以为此时位置正在光盘里边cdrom目录中,要退出在进行卸载。
注意:卸载的时候需要退出光盘目录,才能正常卸载。

6. マウント ポイントに空のディレクトリを使用する理由

#在/mnt/cdrom目录中创建两个文件abc,bcd
[root@localhost cdrom] # ls
abc  bcd

#在/mnt/cdrom目录上挂载光盘
[root@localhost cdrom] # mount /dev/sr0 /mnt/cdrom/
mount: block device /dev/sr0 is write-protected, mounting read-only
可以看到看到光盘是可以挂载到有文件的目录上。

#查看/mnt/cdrom目录中的文件
[root@localhost cdrom]# ls /mnt/cdrom/
CentOS_BuildTag  isolinux                  RPM-GPG-KEY-CentOS-Debug-6
EFI              Packages                  RPM-GPG-KEY-CentOS-Security-6
EULA             RELEASE-NOTES-en-US.html  RPM-GPG-KEY-CentOS-Testing-6
GPL              repodata                  TRANS.TBL
images           RPM-GPG-KEY-CentOS-6
文件夹中并没有之前的abc,bcd文件了。而只有光盘中的数据。

#把光盘挂载点卸载了
[root@localhost cdrom]# umount /dev/sr0 

#再次查看/mnt/cdrom目录中的文件
[root@localhost cdrom]# ls /mnt/cdrom/
abc  bcd
发现abc,bcd文件又出现了。

これは、/mnt/cdrom がディレクトリとして使用される場合、内部にデータを保存するためのブロックがあるためです。/mnt/cdrom をマウント ポイントとして使用する場合、このディレクトリを別のパーティションに入る介入ポイントとして使用します (CD もストレージ領域であり、独立した領域です)。そのため、ディレクトリとしての /mnt/cdrom のアクセス ポイントは存在しませんが、内部のデータは削除されません。そのため、/mnt/cdrom マウント ポイントをアンインストールすると、/mnt/cdrom ディレクトリは元の場所に戻り、元のファイル内のデータを再度読み取ることができます。
このため、空のディレクトリをマウント ポイントとして使用する必要があります。データのあるディレクトリをマウント ポイントとして使用すると、元のディレクトリ内のデータを参照したり削除したりできなくなり、システム リソースが占有されて不合理になるためです。

焦点: 学習教材とビデオ教育のサポート

そこで、上記の概要の詳細情報を注意深く準備しました。以下にリンクします。

おすすめ

転載: blog.csdn.net/m0_59868866/article/details/126273936
おすすめ