zoukankan      html  css  js  c++  java
  • Linux 文件系统挂载

    文件系统挂载简介
      磁盘分区和格式化完成后,磁盘分区要想能够使用,就需要挂载,在挂载某个分区前需要先建立一个挂载点
      挂载:将新的文件系统关联至当前根文件系统
      卸载:将某文件系统与当前根文件系统的关联关系移除;卸载时设备没有进程在使用
      挂载点:作为要挂载文件系统的访问入口;挂载点事先必须存在;不会被进程使用到的目录;挂载点下原有文件将会被临时隐藏

    文件系统挂载管理工具
      mount 不跟任何参数显示当前系统已经挂载的设备及挂载点
      cat /proc/mounts 显示内核中挂载的设备,mount命令就是去读取该文件显示出来
      cat /etc/mtab mount命令去挂载和卸载的操作信息会记录到该文件,也可以显示系统挂载的设备
      mount [options] -t FSTYPE -o [option] 设备名称 挂载点
      [options] 命令选项
      -n        挂载后不更新操作记录到/etc/mtab文件
      --bind dir1 dir2 将dir1挂载到dir2上,使得dir2也能访问dir1的文件(绑定某个目录到另外一个目录)
      -t FSTYPE     指定挂载的文件系统类型
      -r        只读挂载
      -w        读写挂载
      -L LABLE     指定卷标名,用卷标名字挂载;也可以使用LABLE="lable"
      -U UUID      使用UUID挂载,也可以使用 UUID="uuid"
      -a         自动挂载所有/etc/fstab配置文件中定义的挂载

      -o [options] 挂载时启动分区特性(多选项用逗号隔开)
        async    异步I/O数据的写入先缓存在内存中,再写入硬盘;数据写入硬盘会有延迟,突然断电数据会丢失
       sync    同步I/O数据同步写入硬盘,频繁操作IO,影响性能
       auto/noauto 是否能够被mount -a自动挂载
       dev/nodev  是否能创建设备文件
       diratime/nodirtime 是否更新目录的访问时间戳
       exec/noexec 是否允许执行二进制程序
       suid/nosuid 是否能设置文件的SUID,SGID权限位
       user/nouser 是否允许普通用户挂载此设备(默认管理员才能挂载)
       ro     只读挂载
       rw     读写挂载
       remount   重新挂载
       acl     启用文件此文件系统上的acl功能
       _netdev   挂载NFS网络文件系统时候,如果网络功能还没起来,可能导致挂载进程一直卡住,此选项可以停止挂载此网络设备
       atime/noatime 是否更新文件的访问时间戳,不是特别重要的文件,建议noatime
       relatime/norelatime 是否实时更新atime
       strictatime/nostrictatiom 是否实时更新atime(这三个参数不同的内核版本或文件系统类型可能生效的参数不一样)
      如果默认挂载没指定选项默认选项是:rw,suid,dev,exec,auto,nouser,async

      dd命令
      cp命令复制文件是以文件为单位复制的,是先将文件信息读取到内存中,在将内存中的信息存储到硬盘的目标位置(需要经过虚拟文件系统VFS)
      dd命令复制底层的数据流(硬盘底层的0和1代码,不经过VFS)
      dd if=input_file of=output_file
      dd if=input_file of=output_file bs=#[b|k|m|g] count=#
       bs   一次读多大数据量
       count 读取次数
       if   输入文件
       of   输出文件

      制作光盘文件:
      dd if=/dev/cdrom of=/tmp/linux.iso
      cat /dev/cdrom > /tmp/linux.iso
      备份启动盘的MBR信息:
      dd if=/dev/sda of=/mnt/usb/mbr.backup bs=512 count=1
      还原MBR信息:
      dd if=/mnt/usb/mbr.backup of=/dev/sda bs=512 count=1

      拷贝内存资料到硬盘
      dd if=/dev/mem of=/root/mem.bin bs=1024
      将内存里的数据拷贝到root目录下的mem.bin文件

      从光盘拷贝iso镜像
      dd if=/dev/cdrom of=/root/cd.iso
      拷贝光盘数据到root文件夹下,并保存为cd.iso文件

      销毁磁盘数据
      dd if=/dev/urandom of=/dev/sda1
      利用随机的数据填充硬盘,在某些必要的场合可以用来销毁数据。执行此操作以后,/dev/sda1将无法挂载,创建和拷贝操作无法执行。

      测试硬盘读写速度
      dd if=/root/1Gb.file bs=64k | dd of=/dev/null
      dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000
      通过上两个命令输出的执行时间,可以计算出测试硬盘的读/写速度

      修复硬盘
      dd if=/dev/sda of=/dev/sda
      当硬盘较长时间(比如1,2年)放置不使用后,磁盘上会产生消磁点。当磁头读到这些区域时会遇到困难,并可能导致I/O错误。当这种情况影响到硬盘的第一个扇区时,可能导致硬盘报废。上边的命令有可能使这些数据起死回生。且这个过程是安全,高效的。

      挂载光盘设备:
      光盘设备文件:
      IDE口光驱设备: /dev/hdc
      SATA口光驱设备: /dev/sr0
      符号链接文件(链接到上面的设备文件):/dev/cdrom、/dev/cdrw、/dev/dvd、/dev/dvdrw

      mount -t iso9660 -r /dev/cdrom /media/cdrom
      umount /dev/cdrom

      开机自动挂载
     /etc/rc.d/rc.sysinit系统初始化脚本其中一个功能是挂载/etc/fstab文件中定义的文件系统挂载表(每条记录6个字段)
    # /etc/fstab
    # Created by anaconda on Sat Jul 16 14:42:59 2016
    #
    # Accessible filesystems, by reference, are maintained under '/dev/disk'
    # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    #
    UUID=a9e077c4-fa4c-4189-a593-6f33ff40a4f1  /    ext4 defaults 1 1
    UUID=92c80024-7269-4b0a-8d58-781dbc0114a2  swap swap defaults 0 0
    tmpfs  /dev/shm tmpfs     defaults                   0 0
    devpts /dev/pts devpts     gid=5,mode=620           0 0
    sysfs  /sys sysfs         defaults               0 0
    proc  /proc proc        defaults               0 0

      要挂载的设备:设备文件名称、也可以指定UUID="uuid"、LABEL="LabName"、伪文件系统名称进行挂载
      挂载点:有的文件系统没有挂载点 swap没有挂载点,挂载点为swap
      文件系统类型:指定挂载文件系统类型
      挂载选项:默认为defaults,使用默认挂载选项;要使用某个选项的时候通过逗号隔开添加
      转储频率:(每多少天做一次文件系统完全备份),0表示不做备份,该项现在很少使用
       0 从不备份
        1 每日备份
        2 每隔一天备份
       文件系统开机自检测次序:(0表示不检查,只有根可以为1);开机的时候要检查文件系统
        1  首先自检,通常只能被根/使用
        2-9 表示自检顺序
        0  从不自检

      umount 卸载设备
      umount Device
      umount Mount_Point

      如果卸载设备出现device is busy报错,则表示该文件系统正在被使用,可以使用以下命令
     fuser 找出正在使用某个目录所有进程
     fuser -v 挂载点 显示那些进程访问挂载文件
     fuser -km 挂载点 强制剔除shell进程
      -u 除了进程的PID之外,同时列出该进程的拥有者      
      -m 列出所有使用某个目录的进程号
      -v 可以列出每个文件与进程还有指令的完整相关性
      -k 找出使用挂载点中文件或目录的 PID ,以 SIGKILL这个信号杀死该 PID
      -i 与-k结合使用,交互式模式,杀死前会询问用户
      -signal 例如 -1 -15 ,若不加的话,预设是 SIGKILL (-9)

      lsof
      lsof 挂载点 可以使用命令lsof查看正在被使用的文件

  • 相关阅读:
    #419 Div2 Problem B Karen and Coffee (统计区间重叠部分 && 前缀和)
    #418 Div2 Problem B An express train to reveries (构造 || 全排列序列特性)
    FZU 2203 单纵大法好 (二分 && 贪心)
    51Nod 1413 权势二进制 (思维)
    51Nod 1433 0和5 (数论 && 被9整除数的特点)
    POJ 2492 A Bug's Life (带权并查集 && 向量偏移)
    POJ 1456 Supermarket (贪心 && 并查集优化)
    POJ 1182 食物链 (带权并查集 && 向量偏移)
    #417 Div2 Problem B Sagheer, the Hausmeister (DFS && 枚举)
    #417 Div2 Problem C Sagheer and Nubian Market (二分 && std::accumulate)
  • 原文地址:https://www.cnblogs.com/Link-Luck/p/9856168.html
Copyright © 2011-2022 走看看