Linux에서 마운트는 "마운트"를 의미하며 지정된 디렉터리를 통해 장치 파일 시스템과 Linux 파일 시스템을 연결하는 데 사용됩니다. 구문은 "mount [-t 시스템 유형] [-L 볼륨 레이블 이름] [ -o 특수 옵션] [-n] 장치 파일 이름 마운트 지점", "mount -a" 등
이 튜토리얼의 운영 환경: linux5.9.8 시스템, Dell G3 컴퓨터.
Linux 시스템에서는 "모든 것이 파일입니다"이며 모든 파일은 루트 디렉터리를 루트로 하는 트리 디렉터리 구조에 배치됩니다. Linux의 관점에서 보면 모든 하드웨어 장치도 파일이며 각 장치에는 자체 파일 시스템(파일 디렉터리 구조)이 있습니다.
발생하는 문제는 이러한 하드웨어 장치를 Linux 시스템에서 사용할 때 Linux 자체의 파일 디렉터리와 하드웨어 장치의 파일 디렉터리가 하나로 결합되어야만 우리가 하드웨어 장치를 사용할 수 있다는 것입니다. 두 개를 하나로 결합하는 과정을 "마운팅"이라고 합니다.
마운팅이란 장치 파일의 최상위 디렉터리를 Linux 루트 디렉터리 아래의 디렉터리(바람직하게는 빈 디렉터리)에 연결하는 것을 의미합니다. 이 디렉터리에 액세스하는 것은 장치 파일에 액세스하는 것과 같습니다.
마운팅이란 하드웨어 장치의 파일 시스템을 지정된 디렉터리(마운트 지점)를 통해 Linux 시스템의 파일 시스템과 연결하는 것을 의미합니다. Linux 시스템에 파일 시스템을 마운트하려면 mount 명령을 사용해야 합니다.
mount 명령의 일반적인 형식은 다음과 같습니다.
mount [-l]
mount 명령을 사용하면 시스템에 마운트된 장치 정보가 표시됩니다. -l 옵션을 사용하면 볼륨 이름이 추가로 표시됩니다. (독자가 직접 실행할 수 있습니다. 보기
mount -a
-a
옵션의 의미는 /etc/fstab 파일에 생략된 마운트된 장치 파일이 있는지 자동으로 확인하고, 있으면 자동 마운트 작업을 수행한다는 것입니다. 다음은 /etc/fstab 파일에 대한 간략한 소개입니다. 이 파일은 시스템 전원을 켜면 파일 구성에 따라 /etc/fstab 파일의 내용을 적극적으로 읽습니다. 시스템은 지정된 장치를 자동으로 마운트합니다. 자동 마운트(이 파일 수정)에 대한 구체적인 소개는 다음 기사에서 설명합니다.
mount [-t 系统类型] [-L 卷标名] [-o 特殊选项] [-n] 设备文件名 挂载点
각 옵션의 의미는 다음과 같습니다.
-t 시스템 유형: 마운트할 파일 시스템 유형을 지정합니다. Linux에서 일반적으로 지원되는 유형에는 EXT2, EXT3, EXT4, iso9660(디스크 형식), vfat, reiserfs 등이 있습니다. 특정 유형을 지정하지 않으면 Linux는 마운트 시 자동으로 이를 감지합니다.
-L 볼륨 이름: 장치 파일 이름(예: /dev/hdc6)을 사용하는 것 외에도 파일 시스템의 볼륨 레이블 이름을 사용하여 마운트할 수도 있습니다.
-n: 기본적으로 시스템은 실제 마운트 상황을 /etc/mtab 파일에 실시간으로 기록하지만 일부 시나리오(예: 싱글 플레이어 유지 관리 모드)에서는 문제를 방지하기 위해 의도적으로 쓰지 않을 것이므로 지금은 이 옵션을 사용해야 합니다.
-o 특수 옵션: 읽기 및 쓰기 권한, 동기화/비동기 등과 같은 추가 마운트 옵션을 지정할 수 있습니다. 지정하지 않은 경우 기본값이 사용됩니다). 특정 특수 옵션은 표 1을 참조하세요.
options | function |
---|---|
rw/ro | 마운트된 파일 시스템에 대한 읽기 및 쓰기 권한이 있는지 여부 rw 이는 읽기 및 쓰기 권한이 있음을 의미하는 기본값입니다. ro는 읽기 전용 권한을 의미합니다. |
async/sync | 이 파일 시스템이 동기 쓰기(동기화) 또는 비동기(비동기) 메모리 메커니즘을 사용하든 기본값은 비동기 비동기입니다. |
dev/nodev | 이 파일 시스템의 블록 파일에서 데이터를 추출하는 것이 허용되는지 여부. 데이터 설치를 보장하기 위해 기본값은 nodev입니다. |
auto/noauto | 이 파일 시스템이 mount -a를 사용하여 자동으로 마운트되도록 허용할지 여부입니다. 기본값은 auto입니다. |
suid/nosuid | 파일 시스템에 SetUID 및 SetGID 권한이 있는지 설정합니다. 기본값은 yes입니다. |
exec/noexec | 파일 시스템에서 실행 파일 실행 허용 여부를 설정합니다. 기본값은 허용입니다. |
user/nouser | 이 파일 시스템에서 일반 사용자가 마운트를 사용하여 마운트를 수행할 수 있는지 여부를 설정합니다. 기본값은 허용되지 않으며(nouser) 루트만 가능합니다. |
defaults | rw, suid, dev, exec, auto, nouser 및 async의 7가지 옵션에 해당하는 기본값을 정의합니다. |
remount | 마운트된 파일 시스템을 다시 마운트합니다. 일반적으로 특수 권한을 지정하고 수정하는 데 사용됩니다. |
【例 1】
[root@localhost ~]# mount #查看系统中已经挂载的文件系统,注意有虚拟文件系统 /dev/sda3 on / type ext4 (rw) <--含义是,将 /dev/sda3 分区挂载到了 / 目录上,文件系统是 ext4,具有读写权限 proc on /proc type proc (rw) sysfe on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw, gid=5, mode=620) tmpfs on /dev/shm type tmpfs (rw) /dev/sda1 on /boot type ext4 (rw) none on /proc/sys/fe/binfmt_misc type binfmt_misc (rw) sunrpc on /var/lib/nfe/rpc_pipefs type rpc_pipefs (rw)
【例 2】
修改特殊权限。通过例 1 我们查看到,/boot 分区已经被挂载了,而且采用的是 defaults 选项。这里我们重新挂载分区,并采用 noexec 权限禁止执行文件执行,看看会出现什么情况(注意不要用 / 分区做实验,否则系统命令也就不能执行了。
[root@localhost ~]# mount -o remount noexec /boot #重新挂载 /boot 分区,并使用 noexec 权限 [root@localhost sh]# cd /boot #写一个 shell 脚本,看是否会运行 [root@localhost boot]#vi hello.sh #!/bin/bash echo "hello!!" [root@localhost boot]# chmod 755 hello.sh [root@localhost boot]# ./hello.sh -bash:./hello.sh:权限不够 #虽然赋予了hello.sh执行权限,但是仍然无法执行 [root@localhost boot]# mount -o remount exec /boot #记得改回来,否则会影响系统启动
对于特殊选项的修改,除非特殊场景下需要,否则不建议大家随意修改,非常容易造成系统出现问题,而且还找不到问题的根源。
【例 3】挂载分区。
[root@localhost ~]# mkdir /mnt/disk1 #建立挂载点目录 [root@localhost ~]# mount /dev/sdb1 /mnt/disk1 #挂载分区
/dev/sdb1 分区还没有被划分。我们在这里只看看挂载分区的方式,非常简单,甚至不需要使用 "-ext4" 命令指定文件系统,因为系统可以自动检测。
可能会想,为什么使用 Linux 系统的硬盘分区这么麻烦,而不能像 Windows 系统那样,硬盘安装上就可以使用?
其实,硬盘分区(设备)挂载和卸载(使用 umount 命令)的概念源自 UNIX,UNIX 系统一般是作为服务器使用的,系统安全非常重要,特别是在网络上,最简单有效的方法就是“不使用的硬盘分区(设备)不挂载”,因为没有挂载的硬盘分区是无法访问的,这样系统也就更安全了。
另外,这样也可以减少挂载的硬盘分区数量,相应地,也就可以减少系统维护文件的规模,当然也就减少了系统的开销,即提高了系统的效率。
相关推荐:《Linux视频教程》
위 내용은 리눅스에서 마운트는 무엇을 의미합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!