LINUX中磁盘挂载与卸除

时间:2023-03-09 19:10:16
LINUX中磁盘挂载与卸除

一、挂载格式与参数说明:

  • 要将文件系统挂载到我们的 Linux 系统上,就要使用 mount 这个命令啦! 不过,这个命令真的是博大精深~粉难啦!我们学简单一点啊~ ^_^
    [root@www ~]# mount -a
    [root@www ~]# mount [-l]
    [root@www ~]# mount [-t 文件系统] [-L Label名] [-o 额外选项] \
    [-n] 装置文件名 挂载点
    选项与参数:
    -a :依照配置文件 /etc/fstab 的数据将所有未挂载的磁盘都挂载上来
    -l :单纯的输入 mount 会显示目前挂载的信息。加上 -l 可增列 Label 名称!
    -t :与 mkfs 的选项非常类似的,可以加上文件系统种类来指定欲挂载的类型。
    常见的 Linux 支持类型有:ext2, ext3, vfat, reiserfs, iso9660(光盘格式),
    nfs, cifs, smbfs(此三种为网络文件系统类型)
    -n :在默认的情况下,系统会将实际挂载的情况实时写入 /etc/mtab 中,以利其他程序
    的运行。但在某些情况下(例如单人维护模式)为了避免问题,会刻意不写入。
    此时就得要使用这个 -n 的选项了。
    -L :系统除了利用装置文件名 (例如 /dev/hdc6) 之外,还可以利用文件系统的标头名称
    (Label)来进行挂载。最好为你的文件系统取一个独一无二的名称吧!
    -o :后面可以接一些挂载时额外加上的参数!比方说账号、密码、读写权限等:
    ro, rw: 挂载文件系统成为只读(ro) 或可擦写(rw)
    async, sync: 此文件系统是否使用同步写入 (sync) 或异步 (async) 的
    内存机制,请参考文件系统运行方式。默认为 async。
    auto, noauto: 允许此 partition 被以 mount -a 自动挂载(auto)
    dev, nodev: 是否允许此 partition 上,可创建装置文件? dev 为可允许
    suid, nosuid: 是否允许此 partition 含有 suid/sgid 的文件格式?
    exec, noexec: 是否允许此 partition 上拥有可运行 binary 文件?
    user, nouser: 是否允许此 partition 让任何使用者运行 mount ?一般来说,
    mount 仅有 root 可以进行,但下达 user 参数,则可让
    一般 user 也能够对此 partition 进行 mount 。
    defaults: 默认值为:rw, suid, dev, exec, auto, nouser, and async
    remount: 重新挂载,这在系统出错,或重新升级参数时,很有用!

    二、挂载 CD 或 DVD 光盘

    范例三:将你用来安装 Linux 的 CentOS 原版光盘拿出来挂载!
    [root@www ~]# mkdir /media/cdrom
    [root@www ~]# mount -t iso9660 /dev/cdrom /media/cdrom
    [root@www ~]# mount /dev/cdrom /media/cdrom
    # 你可以指定 -t iso9660 这个光盘片的格式来挂载,也可以让系统自己去测试挂载!
    # 所以上述的命令只要做一个就够了!但是目录的创建初次挂载时必须要进行喔! [root@www ~]# df
    Filesystem 1K-blocks Used Available Use% Mounted on
    .....中间省略.....
    /dev/hdd 4493152 4493152 0 100% /media/cdrom
    # 因为我的光驱使用的是 /dev/hdd 的 IDE 接口之故!

三、挂载U盘

  • 请拿出你的闪盘并插入 Linux 主机的 U盘 槽中!注意,你的这个闪盘不能够是 NTFS 的文件系统喔! 接下来让我们测试测试吧!

    范例五:找出你的闪盘装置文件名,并挂载到 /mnt/flash 目录中
    [root@www ~]# fdisk -l
    .....中间省略.....
    Disk /dev/sda: 8313 MB, 8313110528 bytes
    59 heads, 58 sectors/track, 4744 cylinders
    Units = cylinders of 3422 * 512 = 1752064 bytes Device Boot Start End Blocks Id System
    /dev/sda1 1 4745 8118260 b W95 FAT32
    # 从上的特殊字体,可得知磁盘的大小以及装置文件名,知道是 /dev/sda1 [root@www ~]# mkdir /mnt/flash
    [root@www ~]# mount -t vfat -o iocharset=cp950 /dev/sda1 /mnt/flash
    [root@www ~]# df
    Filesystem 1K-blocks Used Available Use% Mounted on
    .....中间省略.....
    /dev/sda1 8102416 4986228 3116188 62% /mnt/flash

    四、重新挂载根目录与挂载不特定目录

整个目录树最重要的地方就是根目录了,所以根目录根本就不能够被卸除的!问题是,如果你的挂载参数要改变, 或者是根目录出现『只读』状态时,如何重新挂载呢?最可能的处理方式就是重新启动 (reboot)! 不过你也可以这样做:

范例六:将 / 重新挂载,并加入参数为 rw 与 auto
[root@www ~]# mount -o remount,rw,auto /

重点是那个『 -o remount,xx 』的选项与参数!请注意,要重新挂载 (remount) 时, 这是个非常重要的机制!尤其是当你进入单人维护模式时,你的根目录常会被系统挂载为只读,这个时候这个命令就太重要了!

另外,我们也可以利用 mount 来将某个目录挂载到另外一个目录去喔!这并不是挂载文件系统,而是额外挂载某个目录的方法! 虽然底下的方法也可以使用 symbolic link 来连结,不过在某些不支持符号链接的程序运行中,还是得要透过这样的方法才行。

范例七:将 /home 这个目录暂时挂载到 /mnt/home 底下:
[root@www ~]# mkdir /mnt/home
[root@www ~]# mount --bind /home /mnt/home
[root@www ~]# ls -lid /home/ /mnt/home
2 drwxr-xr-x 6 root root 4096 Sep 29 02:21 /home/
2 drwxr-xr-x 6 root root 4096 Sep 29 02:21 /mnt/home [root@www ~]# mount -l
/home on /mnt/home type none (rw,bind)

五、umount (将装置文件卸除)

[root@www ~]# umount [-fn] 装置文件名或挂载点
选项与参数:
-f :强制卸除!可用在类似网络文件系统 (NFS) 无法读取到的情况下;
-n :不升级 /etc/mtab 情况下卸除。

就是直接将已挂载的文件系统给他卸除即是!卸除之后,可以使用 df 或 mount -l 看看是否还存在目录树中? 卸除的方式,可以下达装置文件名或挂载点,均可接受啦!底下的范例做看看吧!

范例八:将本章之前自行挂载的文件系统全部卸除:
[root@www ~]# mount
.....前面省略.....
/dev/hdc6 on /mnt/hdc6 type ext3 (rw)
/dev/hdd on /media/cdrom type iso9660 (rw)
/dev/sda1 on /mnt/flash type vfat (rw,iocharset=cp950)
/home on /mnt/home type none (rw,bind)
# 先找一下已经挂载的文件系统,如上所示,特殊字体即为刚刚挂载的装置啰! [root@www ~]# umount /dev/hdc6 <==用装置文件名来卸除
[root@www ~]# umount /media/cdrom <==用挂载点来卸除
[root@www ~]# umount /mnt/flash <==因为挂载点比较好记忆!
[root@www ~]# umount /dev/fd0 <==用装置文件名较好记!
[root@www ~]# umount /mnt/home <==一定要用挂载点!因为挂载的是目录