磁盘管理及文件系统管理

一 Linux磁盘管理

 识别硬盘 /dev/sd#
 标记不同的硬盘设备 /dev/sd[a-]
 标记同一设备上的不同分区  /dev/sd[a-z][1-]
  
 设备文件 特殊文件
  设备号
   major,minor
   major 设备类型
   minor 同一类型下的不同设备
   
 块设备   标识为b 随机访问设备
 字符设备 标记为c 线性设备
 
 GPT
  分区,分隔存储空间为多个小的空间,每个空间可独立使用文件系统
 
 分区工具
  fdisk
  parted
  sfdisk
    
 fdisk 最多支持在一块硬盘上的15个分区
 fdisk -l
 
 让内核重读磁盘分区表
 partprobe [DEVICE ]
 partx
  partx -a -n 4:5 /dev/sda
 kpartx
  kpartx -af /dev/sda

fdisk  -l
fdisk /devsdb

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+10G
分区 1 已设置为 Linux 类型,大小设为 10 GiB

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x694b74e6

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    20973567    10485760   83  Linux
命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。

  

二 Linux 文件系统管理
 mke2fs [OPTION] ....device
 mke2fs - create an ext2/ext3/ext4 filesystem
  -t {etx2|etx3|etx4}  
  -b {1024|2048|4096}  
  -L 'LABEL'
  -j       mke2fs -t ext3
  -i #     bytes-per-inode  Specify the bytes/inode ratio
  -N #     
  -m #     reserved-blocks-percentage 预留磁盘空间占据多大百分比的空间为管理后期使用
  -O FEATURE []   feature[,...]  Create a filesystem with the given features (filesystem options) 开启特性
   -O ^FEATURE []              关闭特性
    man tune2fs
    tune2fs -O [^]feature[,...]
  

mke2fs -t ext4 -b 4096 /dev/sdb1

mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 2621440 blocks
131072 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2151677952
80 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Allocating group tables: 完成                           
正在写入inode表: 完成                           
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

mke2fs -L 'test1' /dev/sdb1

mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=test1
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 2621440 blocks
131072 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2684354560
80 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Allocating group tables: 完成                           
正在写入inode表: 完成                           
Writing superblocks and filesystem accounting information: 完成

 

blkid  /dev/sdb1

/dev/sdb1: LABEL="test1" UUID="c39d7e87-cb61-43c9-94bf-cc0f12310787" TYPE="ext2"

当执行mke2fs 不带-t ext4 参数时,默认文件系统为ext2

mke2fs -t ext4 -b 4096  -L 'test1' /dev/sdb1

文件系统属性查看及调整工具
  e2label  管理卷标
   e2label /dev/sda1   查看卷标
   e2label /dev/sda1 LABEL   设定卷标

e2label /dev/sdb1

test1

e2label /dev/sdb1  test2
e2label /dev/sdb1

test2   

 
  tune2fs   显示ext系列文件系统的属性或调整其属性
   -l   列表,显示超级块信息(显示整个文件系统属性及布局等信息)
   -L   卷标
   -m #  调整预留给管理员的管理空间百分比
   -j   将ext2 升级到 ext3
   -O FEATURE 启用或关闭属性(^FEATURE 关闭特性)
   -o    文件系统默认挂载选项的开启或关闭
    tune2fs -o acl /dev/sda1
  dumpe2fs  
   -h   仅显示超级块信息
  

tune2fs  -l /dev/sdb1

tune2fs 1.42.9 (28-Dec-2013)
Filesystem volume name:   test2
Last mounted on:          <not available>
Filesystem UUID:          c39d7e87-cb61-43c9-94bf-cc0f12310787
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      ext_attr resize_inode dir_index filetype sparse_super large_file
Filesystem flags:         signed_directory_hash
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              655360
Block count:              2621440
Reserved block count:     131072
Free blocks:              2574545
Free inodes:              655349
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      639
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8192
Inode blocks per group:   512
Filesystem created:       Sun Sep  6 17:16:58 2015
Last mount time:          n/a
Last write time:          Sun Sep  6 17:18:08 2015
Mount count:              0
Maximum mount count:      -1
Last checked:             Sun Sep  6 17:16:58 2015
Check interval:           0 (<none>)
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:           256
Required extra isize:     28
Desired extra isize:      28
Default directory hash:   half_md4
Directory Hash Seed:      a17cf0ef-10c9-47b6-8d41-d79d154d0b4d

 

  blkid

 文件系统检测工具

blkid  /dev/sdb1

/dev/sdb1: LABEL="test2" UUID="c39d7e87-cb61-43c9-94bf-cc0f12310787" TYPE="ext4"


  fsck
   fsck -t type
   -a  自动修复错误
   -r  交互式修复错误
   -f  强制检测
  fsck.type 
  e2fsck
   -y  自动回答 yes
   -f  强制检测

 三  文件系统的挂载和使用
          kernel-->rootfs(分区)
          rootfs分区
          bin  sbin etc  lib  lib64  dev  tmp  proc  sys
   
          /sbin/init  cenos6
          /sbin/systemd  cenos7
          将额外文件系统与根文件系统与现存的目录建立起关联关系,进而使得此目录做为其它文件系统访问入口的行为,称为挂载
  解除关系的过程 卸载
  
   挂载点 mount print 设备挂载至目录
   挂载点在挂载之后,其内部原有的文件会被隐藏, 建义使用空目录为挂载点
   挂载方法
  mount    通过读到 /etc/mtab 文件来赤示当前系统中所有已挂载的设备
  mount -a   挂载/etc/fstab 文件中的所有支持的自动挂载的文件系统
  mount [option] [-o options] DEVICE  MOUNT_POINT
     [options]  命令选项
     [-o options] 挂载选项
     
     DEVICE  要挂载的设备
      1.设备文件  例 /dev/sda4
      2.卷标 -L 'LABEL'
      3.UUID  -U 'UUID'
      4. 伪文件系统
     MOUNT_POINT 挂载点
     
    常用选项
     -t type   文件系统类型
     -r     以只识方式挂载此文件系统
     -w     以读写方式挂载
     -n     每个文件系统挂载时会自动更新/etc/mtab文件,-n禁用此功能
         如果想查看挂载的所有文件系统   cat /proc/mounts
     -a     自动挂载所有支持自动挂载的设备
     -B    绑定目录至另一个目录上
      
     -o 挂载选项 
      async   异步模式
      sync     同步模式
      
      atime   更新访问时间戳
      noatime  不更新访问时间戳
      
      diratime 更新目录访问时间戳
      nodiratime 不更新目录访问时间戳
      
      auto  自动挂载
      noaut  不自动挂载
      
      exec  允许执行此文件系统上应用程序
      noexec  不允许执行此文件系统上应用程序
      
      dev   支持在此设备上使用设备文件
      nodev   不支持在此设备上使用设备文件
      
      suid
      nosuid
      
      remount  重新挂载

      ro
      rw
      
      user   允许普通用户挂载此高备
      nouser  不允许普通用户挂载此高备
      
      acl 
      
  unmount  取消挂载
   
  fuser  查看目录下 有哪些在使用
   -v  查看挂载点正在使用的进程
   -km  强制结束正在使用的进程

mount /dev/sdb1 /mydata

mount -L 'test2' /mydata

mount -U 'c39d7e87-cb61-43c9-94bf-cc0f12310787' /mydata

umount /mydata

 交换分区
 free -m  查看物理内存和交换分区的使用状态
  -m  MB
  -g GB
 mkswap  创建交换分区
 mkswap [option] DEVICE
  -L 'LABEL'
 swapon DEVICE  激活交换分区
   -a     激活全部交换分区
  -p  PRIORITY 设定交换分区的优先级
 swapoff DEVICE 关闭交换分区
   -a     关闭全部交换分区
 
 文件系统等空间占用信息的查看工具
 df   disk free
  -h, --human-readable
  -i, --inodes   
  -P, --portability  use the POSIX output format
  
 du   disk usage
  -s, --summarize
  -h, --human-readable  

free -m

              total        used        free      shared  buff/cache   available
Mem:           1826         602         715           9         509        1029
Swap:          2047           0        2047

mkswap /dev/sdb2

正在设置交换空间版本 1,大小 = 2097148 KiB
无标签,UUID=3a31785b-303c-4506-a7a3-d902c3024204

free -m

              total        used        free      shared  buff/cache   available
Mem:           1826         602         715           9         509        1029
Swap:          2047           0        2047

swapon /dev/sdb2
free -m

              total        used        free      shared  buff/cache   available
Mem:           1826         603         714           9         509        1028
Swap:          4095           0        4095

swapoff /dev/sdb2
free -m

              total        used        free      shared  buff/cache   available
Mem:           1826         602         714           9         509        1029
Swap:          2047           0        2047


 文件系统挂载 相关的配置文件
 /etc/fstab    每行定义一个文件系统

 cat /etc/fstab
 /dev/mapper/centos-root                    /      xfs      defaults        0    0

 UUID=51d6b7a7-29f9-4a59-af18-3a746ca553e4  /boot  xfs      defaults        0    0

 /dev/mapper/centos-home                    /home  xfs      defaults        0    0

 /dev/mapper/centos-swap                    swap   swap     defaults        0    0

  要挂载的设备或文件系统        挂载点  文件系类型 挂载选项 转储频率  自检次序
 
   要挂载的设备或文件系统   设备文件  LABEL=  UUID=  伪言语件系统
   挂载选项       defaults
   转储频率        备份的频率
     0 不转储
     1 每天转储
     2  每隔一天转储
   自检次序
     0 不自检
     1 首先自检,通常只有/ 根才为1
     2 

vim /etc/fstab

#
# /etc/fstab
# Created by anaconda on Wed Sep  2 17:59:33 2015
#
# 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
#

/dev/mapper/centos-root                    /        xfs     defaults        0 0

UUID=c7be76f0-7549-4b55-987b-f02072487405  /boot    xfs     defaults        0 0

/dev/mapper/centos-home                    /home    xfs     defaults        0 0

/dev/mapper/centos-swap                    swap     swap    defaults        0 0

/dev/sdb1                                  /mydata  ext4    defaults        0 0

 四  文件系统的链接文件
     硬链接   两个路径指向同一个inode
     不能对目录进行创建
     不能跨分区
     指向同一个inode 的多个不同路径,创建文件的硬链接会 增加inode 的引用记数,删除硬 链接仅是删除其中一个访问路径,直到全部路径删除 ,才会真正删除
  
  符号链接  链接文件的数据指向另一个文件路径
  可以对目录进行
  可以跨分区
  指向的是另一个文件路径,而非inode
  文件大小是引用的大小,不是源文件大小
   对文件创建符号链接不会增加其引用记数,删除源文件,符号链接无法使用
   
 ln
 ln fstabe fstab.h   硬链接
 ln -s  fstabe fstab.s  符号链接
 -v 显示详细创建过程
 

 练习

3、创建一个10G的文件系统,类型为ext4,要求开机可自动挂载至/mydata目录

fdisk /devsdb

n

p

1

2048

+10G

w

mke2fs -t ext4 -b 4096  -L 'test2' /dev/sdb1
vim /etc/fstab

#
# /etc/fstab
# Created by anaconda on Wed Sep  2 17:59:33 2015
#
# 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
#

/dev/mapper/centos-root                     /           xfs     defaults    0 0

UUID=c7be76f0-7549-4b55-987b-f02072487405   /boot       xfs     defaults    0 0

/dev/mapper/centos-home                     /home       xfs     defaults    0 0

/dev/mapper/centos-swap                     swap        swap    defaults    0 0

/dev/sdb1                                   /mydata     ext4    defaults    0 0

 

你可能感兴趣的:(磁盘管理,文件系统管理)