磁盘及文件系统管理

  终端类型:

    console:控制台

    pty:物理终端 (VGA)

    tty#:虚拟终端 (VGA)

    ttyS#:串行终端

    pts/#:伪终端

 

  ln [-s -v] SRC DEST

  硬链接:多个路径的链接到同一个文件,且显示指向次数

    1、只能对文件创建,不能应用于目录;

    2、不能跨文件系统;

    3、创建硬链接会增加文件被链接的次数;   

  符号链接:链接

    1、可应用于目录;

    2、可以跨文件系统;

    3、不会增加被链接文件的链接次数;

    4、其大小为指定的路径所包含的字符个数;


  链接

  设备文件:

    b: 按块为单位,随机访问的设备;

    c:按字符为单位,线性设备;   

    b: 硬盘

    c: 键盘

   

  /dev

    主设备号 (major number

      标识设备类型

    次设备号 (minor number

      标识同一种类型中不同设备

 

  mknod  用于创建Linux中的字符设备文件和块设备文件

  mknod [OPTION]... NAME TYPE [MAJOR MINOR]

    -mMODE

 

  硬盘设备的设备文件名:

    IDE, ATAhd

    SATAsd

    SCSI: sd

    USB: sd

      a,b,c,...来区别同一种类型下的不同设备

   

  IDE:

    第一个IDE口:主、从

      /dev/hda,/dev/hdb

    第二个IDE口:主、从

      /dev/hdc,/dev/hdd

  sda, sdb, sdc, ...

  hda:

    hda1:第一个主分区

    hda2:

    hda3:

    hda4:

    hda5:第一个逻辑分区

    hda6:第二个逻辑分区

    查看当前系统识别了几块硬盘:

      fdisk -l [/dev/to/some_device_file]


  管理磁盘分区:fdisk  

    英文原义:format disks/partitions

    执行权限:root


   fdisk /dev/sda

    p: 显示当前硬件的分区,包括没保存的改动

    n: 创建新分区

      e:扩展分区

      p:主分区

    d: 删除一个分区

    w: 保存退出

    q: 不保存退出

    t: 修改分区类型

      L:

    l: 显示所支持的所有类型

   

  Linux支持的文件系统: 一个分区是一个独立的文件系统

 

  partprobe  

  文件系统访问控制列表

  setfacl

    -bRemove all

    -m

    -x


  文件系统管理:重新创建文件系统会损坏原有文件

 

  mkfs: make file system

    -t FSTYPE   

  mkfs -t ext2 = mkfs.ext2

  mkfs -t ext3 = mkfs.ext3

  

  mke2fs: 专门管理ext系列文件

    -j: 创建ext3类型文件系统

    -b [BLOCK_SIZE]: 指定块大小,默认为4096;可用取值为1024、2048或4096;

    -L LABEL:指定分区卷标;

    -m #: 指定预留给超级用户的块数百分比

    -i #: 用于指定为多少字节的空间创建一个inode,默认为8192;

      这里给出的数值应该为块大小的2^n倍;

    -N #: 指定inode个数;

    -F: 强制创建文件系统;

    -E: 用户指定额外文件系统属性;


  blkid: 查询或查看磁盘设备的相关属性

    UUID

    TYPE

    LABEL

   

  e2label: 用于查看定义卷标

    e2label 设备文件 卷标: 设定卷标

   

  tune2fs: 调整文件系统的相关属性  英文tunable ext2 filesystem

    -j: 不损害原有数据,将ext2升级为ext3;

    -L LABEL: 设定或修改卷标;

    -m #: 调整预留百分比;

    -r #: 指定预留块数;

    -o: 设定默认挂载选项;

      acl

    -c #:指定挂载次数达到#次之后进行自检,0或-1表关闭此功能;

    -i #: 每挂载使用多少天后进行自检;0或-1表示关闭此功能;

    -l: 显示超级块中的信息;

   

  dumpe2fs: 显示文件属性信息   英文dump ext2 filesystem

    -h: 只显示超级块中的信息

   

  fsck: 检查并修复Linux文件系统  英文filesystem check

    -t FSTYPE: 指定文件系统类型

    -a: 自动修复

   

  e2fsck: 专用于修复ext2/ext3文件系统  英文 ext2 filesystem check

    -f: 强制检查;

    -p: 自动修复;


  挂载:将新的文件系统关联至当前根文件系统

  卸载:将某文件系统与当前根文件系统的关联关系预以移除;

  mount 设备 挂载

    设备: 设备文件:/dev/sda5

        卷标:LABEL=“”

        UUID: UUID=“”

    挂载点:目录

        要求:

         1、此目录没有被其它进程使用;

         2、目录得事先存在;

         3、目录中的原有的文件将会暂时隐藏;


  显示当前系统已经挂载的设备及挂载点

   mount [options] [-o options] DEVICE MOUNT_POINT

   -a: 表示挂载/etc/fstab文件中定义的所有文件系统

   -n: 默认情况下,mount命令每挂载一个设备,都会把挂载的设备信息保存至/etc/mtab文件;

     使用—n选项意味着挂载设备时,不把信息写入此文件;

   -t FSTYPE: 指定正在挂载设备上的文件系统的类型;

     不使用此选项时,mount会调用blkid命令获取对应文件系统的类型;

   -r: 只读挂载,挂载光盘时常用此选项

   -w: 读写挂载   

   -o: 指定额外的挂载选项,也即指定文件系统启用的属性

    remount: 重新挂载当前文件系统

    ro: 挂载为只读   -o ro = -r

    rw: 读写挂载    -o rw = -w

    acl: 额外访问权限组  -o acl

    loop: 挂载光驱等回环设备

     mount -o loop /dev/cdrom /mnt/  挂载光驱

     mount -t iso9660 /dev/scd0 /mnt/  挂载光驱

     mount -o loop linux.iso /mnt/  挂载ISO文件


  挂载完成后,要通过挂载点访问对应文件系统上的文件;

  umount: 卸载某文件系统

    umount 设备 / 挂载点  

    卸载注意事项: 挂载的设备没有进程使用;


 eg1.建一个2G的分区,文件系统为ext2,卷标为DATA,块大小1024,预留管理空间为磁盘分区的8%;挂载至/backup目录,要求使用卷标进行挂载,且在挂载时启动此文件系统上的acl功能;

# mke2fs -L DATA -b 1024 -m 8 /dev/sda7

# mount -o acl LABEL=DATA /backup


# tune2fs -o acl /dev/sda7

# mount LABEL=DATA /backup


 eg2.将此文件系统的超级块中的信息中包含了block和inode的行保存至/tmp/partition.txt中;

# tune2fs -l /dev/sdc3 | egrep -i "block|inode" >>/tmp/partition.txt 

# dumpe2fs -h /dev/sdc3| egrep -i "block|inode" >>/tmp/partition.txt


 eg3.复制/etc目录中的所有文件至此文件系统;而后调整此文件系统类型为ext3,要求不能损坏已经复制过来的文件;

# cp -r /etc/* /backup

# tune2 -j /dev/sda7


 eg4.调整其预留百分比为3%;

# tune2fs -m 3 -L DATA /dev/sda7


 eg5.以重新挂载的方式挂载此文件系统为不更新访问时间戳,并验正其效果;

# stat /backup/inittab

# cat /backup/inittab

# stat

 

# mount -o remount,noatime /backup

# cat /backup/inittab

# stat /backup/inittab

 

 eg6.对此文件系统强行做一次检测;

e2fsck -f /dev/sda7


 eg7.删除复制而来的所有文件,并将此文件系统重新挂载为同步(sync);而后再次复制/etc目录中的所有文件至此挂载点,体验其性能变化;

# rm -rf /backup/*

# mount -o remount,sync /backup

# cp -r /etc/* /backup


---end---