• Linux 磁盘挂载基本概念

    背景:

    Linux的mount 等磁盘操作信息是系统管理员应该熟记于心的基本内容。 遇到问题应该具备快速定位的能力,并具有发散思维解决问题的能力。 因为大多是一些基本的概念并且网上资料很全,但 细节决定成败,有扎实的基础也是同样重要的。此博文即用来总结备忘。

    mount (挂载)

    命令格式:mount [-t vfstype] [-o options] device dir

    -t    vfstype 指定文件系统的类型。常用类型有:

    •   光盘或光盘镜像:iso9660
    •   DOS fat16文件系统:msdos
    •   Windows 9x fat32文件系统:vfat
    •   Windows NT ntfs文件系统:ntfs
    •   Mount Windows文件网络共享:smbfs
    •   UNIX(LINUX) 文件网络共享:nfs、ext3、ext4 等

    -o options 主要用来描述设备或文件的挂载方式。常用的参数有:

    •        loop:用来把一个文件当成硬盘分区挂接上系统
    •   ro:采用只读方式挂接设备
    •   rw:采用读写方式挂接设备
    •   iocharset:指定访问文件系统所用字符集

    device 表示要挂接(mount)的设备。

    dir  表示设备在系统上的挂接点(mount point)

    umount (卸载)

    命令格式: umount <挂载点|设备>

    注: 使用umount命令时很方便,无论你指定device(设备)或者dir(文件)都可以。

    有些时候,我们在Linux需要执行umount常常会碰到此设备正在被使用,无法卸载的状况。 遇到这种情况时,通常我们可以有两种办法:

    1. 通过lsof命令查看此分区到底有哪些还处于被使用状态,逐一清除

    2. 可以使用umount -l 参数,此命令将会断开设备并关闭打开该设备的全部句柄。

    /etc/fstab 文件

    Linux系统下,  /etc/fstab 文件记录了当前系统的磁盘挂载信息。 在Linux开机的时候,会自动去读取并根据此文件中的信息进行磁盘挂载和检测等操作:

    yy

    • 第一列 (device)是磁盘设备的文件名 或 该设备的label (标签) 。

    —— 什么是label(标签)呢? 其实这个就好比Windows系统中的标示C盘D盘的那些信息一样,比如我们通常会给C盘起个名字为系统盘,给F盘起名字为“娱乐”。

    • 第二列  (mount point)挂载点
    • 第三列  文件系统
    • 第四列  文件系统参数 ,即我们在mount挂载的时候,用-o参数指定的参数。比如:

    async / sync : 设置磁盘是否以异步方式运行。

    auto / noauto: 当用mount  -a命令时,此文件系统是否被主动测试挂载。

    defaults : 同时具有rw (可读写),suid (允许suid的存在),dev , exec , auto , nouser (不允许普通用户挂载), async

    • 第五列  能否被dump备份命令作用, dump是一个备份的命令,0 表示不要做dump备份,1表示每天进行dump的操作,2代表其他不定日期的dump备份操作。通常不是0就是1。
    • 第六列: 是否已fsck检验扇区 ,开机的过程中,系统会以fsck检验我们的文件系统是否完整 。 0是不要检测, 1 表示最早检测(一般只有/目录会设置为1),2表示稍晚检测。一般将根目录设置为1 ,其他目录设置为2 即可。

    :/etc/fstab 是开机时的挂载配置,实际上文件系统的挂载是记录到/etc/mtab 与 /proc/mounts这两个文件当中的。每次我们在改动文件系统的挂载时,也会同时跟动这两个文件。 当你在/etc/fstab里的配置写错时,导致无法开机,则可以进入单例模式中。到时候虽然 / 是readonly的,可以使用下面的命令:

    mount  -n  -o  remount,rw  /