linux中的挂载命令,linux查看mount记录
mount命令装载文件系统。 其基本命令格式为mount-ttype [-o选项] devicedirdevice。 指定要挂载的设备,如磁盘、光驱等。 dir指定装载文件系统的目录。 类型指定要挂载的文件系统的类型。 通常不指定也可以自己判断mount命令。 选项:指定装载参数。 例如,ro表示以只读方式装载文件系统。 帮助 使用man page和-h选项可以获取最直接的帮助文档。 $manmount$mount-h 文件系统类型 在许多情况下,不需要指定-t参数来明确说明文件系统类型,但文件系统类型对mount命令非常重要。 因为,如果尝试挂载当前系统不支持的文件系统,它将不起作用。 当前系统支持的文件系统类型由内核决定,默认情况下支持常见的文件系统,如ext2、ext3、ext4、sysfs和proc。 可以查看/proc/filesystems文件以确定当前系统支持的文件系统。 $ cat/proc /文件系统 第一列指示是否需要在块设备上挂载文件系统,而nodev指示后续文件系统不需要在块设备上挂载。 第二列是内核支持的文件系统。 查看输出的文件系统信息 使用mount命令显示挂载的文件系统时,将显示丰富的信息,如下图所示。 首先,让我说明一下输出信息的格式和含义。 输出中的每一行表示挂载的文件系统。 其格式为fs_speco NFS _ filetype fs _ VFS type (fs _ mnt opts ) fs _ spec :挂载的块设备或远程文件系统fs_file :文件系统例如,上图中的第一行表示装载的设备是sysfs,装载点是/sys,文件系统类型是sysfs。 括号中的rw表示可读写地装载文件系统,noexec表示不能直接在该文件系统上运行程序。 与mount命令相关的文件 /etc/fstab/etc/mtab/proc/mounts mount -a乘以/etc/fstab中定义的所有挂载点。 (通常在系统启动时的脚本中调用,所以最好不要自己使用。 请参阅。 mount和umount命令维护当前挂载在/etc/mtab文件中的文件系统的列表。 当前系统也支持此文件。 但是,更好的方法是使用链接文件/proc/mounts代替/etc/mtab文件。 这是因为在用户空间中维护的常见文件/etc/mtab很难与Linux高级功能(如namespaces和containers )稳定可靠地协作。 在ubuntu 16.04中,/etc/mtab是指向/proc/self/mounts的链接文件,与/proc/mounts类似。 以下是mount命令的一些常见用例。 查看挂载的文件系统 输出系统挂载的所有文件系统如果运行mount命令(无参数),将输出系统挂载的所有文件系统。 $mount 输出指定类型的文件系统-t参数仅允许输出指定类型的文件系统。 例如,以下命令仅打印tmpfs类型的文件系统: $mount-ttmpfs 格式化和装载磁盘 对于磁盘分区,可以使用mkfs命令将磁盘分区格式化为指定的文件系统,例如ext4。 $sudomkfs-text4/dev/sdb1 然后,在/mnt目录中装载分区。 $sudomount/dev/sdb1/mnt 安装光驱 现在偶尔需要用光驱。 装载光驱的命令如下: $sudomount/dev/cdrom/mnt 此命令将设备/dev/CD-rom挂载到/mnt目录中,以便可以从/mnt目录下访问cdrom驱动器的内容。 装载为只读 可以将文件系统装载到只读模式以保护数据。 例如,以只读模式将/dev/sdb1置于/mnt目录中: $sudomount-oro/dev/sdb1/mnt 因此,/mnt目录下的所有文件都是只读的。 将只读装载重新装载到读写模式 如果系统出现故障,进入单用户模式,则正常/根目录将挂载为只读;如果尝试修改文件,则可以看到所有文件都是只读的,无法修改。 幸运的是,Linux上的mount命令支持remount选项,只需运行以下命令: $mount/-orw,remount 就可以将根分区重新挂载为读写状态。 除了根目录,重新挂载其它挂载点也是一样的,比如我们把前面挂载的 sdb1 分区重新挂载为读写模式: $ sudo mount /mnt -o rw,remount 挂载 windows 共享文件 局域网中一般都是 windows 系统和 Linux 系统共存的,如果能轻松的从 Linux 系统中访问 windows 的文件共享将是一件很开心的事情。其实这也很简单,在 windows 上共享文件时指定一个本机的用户,然后在 mount 命令中指定这个用户及其密码就可以了: $ sudo mount -t cifs -o username=nick,password=Test123456 //10.32.2.30/doc /mnt 注意,-t cifs 是可以省略的,mount 命令能够自动识别。一定要使用 IP 代替 windows 主机的名称。 挂载虚拟文件系统 proc、tmpfs、sysfs、devpts 等都是 Linux 内核映射到用户空间的虚拟文件系统,它们不和具体的物理设备关联,但它们具有普通文件系统的特征,应用层程序可以像访问普通文件系统一样来访问他们。比如内核的 proc 文件系统默认被挂载到了 /proc 目录,当然我们也可以再把它挂载到其它的目录,比如 /mnt 目录下: $ sudo mount -t proc none /mnt 由于 proc 是内核虚拟的一个文件系统,并没有对应的设备,所以这里的 -t 参数不能省略。由于没有对应的源设备,这里的 none 可以是任意字符串,取个有意义的名字就可以了,因为用 mount 命令查看挂载点信息时第一列显示的就是这个字符串。 在 Linux 上我们还可以通过 tmpfs 文件系统轻松地构建出内存磁盘来。比如在内存中创建一个 512M 的 tmpfs 文件系统,并挂载到 /mnt 下,这样所有写到 /mnt 目录下的文件都存储在内存中,速度非常快,不过要注意,由于数据存储在内存中,所以断电后数据会丢失掉: $ sudo mount -t tmpfs -o size=512m tmpfs /mnt 挂载 loop 设备 在 Linux中,硬盘、光盘、软盘等都是常见的块设备,他们在 Linux 下的目录一般是 /dev/sda1、/dev/cdrom、 /dev/fd0 这样的。而 loop device 是虚拟的块设备,主要目的是让用户可以像访问上述块设备那样访问一个文件。 loop device 设备的路径一般是 /dev/loop0、dev/loop1 等,具体的个数跟内核的配置有关。 挂载 ISO 文件需要用到 loop device 的最常见的场景是挂载一个 ISO 文件。比如将 /tmp/test.iso 这个光盘镜像文件使用 loop 模式挂载到 /mnt 下,这样就不需要把 ISO 文件刻录到光盘上了,当然也不需要光驱了。下面的命令把 projects 目录下的内容打包到 test.iso 文件中: $ mkisofs -o test.iso projects/ 然后把这个 ISO 文件挂载到 /mnt 目录下: $ sudo mount test.iso /mnt 挂载 test.iso 文件使用了虚拟设备 /dev/loop0,并且是只读的模式。 虚拟硬盘loop 设备另一种常见的用法是虚拟一个硬盘,比如我想玩儿一下 btrfs 这个文件系统,但系统中目前的所有分区都已经用了,里面都是有用的数据,不想格式化他们,这时虚拟硬盘就有用武之地了。 我们先通过 dd 命令创建一个 512M 的文件: $ dd if=/dev/zero bs=1M count=512 of=./vdisk.img 然后在这个文件里面创建 btrfs 文件系统: $ sudo apt install btrfs-progs $ mkfs.btrfs vdisk.img 最后把它挂载到 /mnt : $ sudo mount vdisk.img /mnt 把多个设备挂载到同一个目录 在 Linux 中可以把多个设备挂载到同一个目录。默认后面挂载的内容会让前面挂载的内容隐藏掉,只有 unmount 了后面挂载的内容,才会显示原来的内容。 挂载一个设备到多个目录 我们也可以把同一个设备挂载到不同的目录,这样在不同的目录中看到的是同样的内容。还可以在不同的目录中控制挂载的权限,比如以只读方式挂载: $ sudo mount -o ro vdisk.img ./testdir 这样从不同的目录访问相同的文件系统时就具有了不同的访问权限。 总结 mount 是 Linux 系统中非常重要的一个命令,因为离开 mount 挂载的文件系统我们几乎什么也干不了。本文介绍了一些 mount 命令的基础用法 ,日常使用应该是够了。mount 命令还有一些相关的复杂概念和用法,比如 bind mount 和 shared subtree 等,笔者会在今后写专门的文章进行介绍。
本文链接:https://www.kinber.cn/post/3003.html 转载需授权!
推荐本站淘宝优惠价购买喜欢的宝贝: