Linux磁盘管理笔记整理

1、df命令

作用:
列出文件系统的整体磁盘使用量。

选项:

  • -a:列出所有的文件系统,包括系统特有的/proc等文件系统;
  • -k:以KBytes的容量显示各文件系统。
  • -m:以MBytes的容量显示各文件系统。
  • -h:以较以阅读的GBytes、MBytes、KBytes等格式自行显示,常用。
  • -H:1M=1000K取代1M=1024k的进位方式。
  • -T:连同该分区的文件系统名称(如“xfs”)也列出。
  • -i:不用磁盘容量显出,而以inode的数量来显示

示例:

我一般使用“df -hT”较多,如下:

[root@localhost ~]# df -hT    #执行该命令
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        39G  4.2G   35G   11% /
devtmpfs                devtmpfs  895M     0  895M    0% /dev
tmpfs                   tmpfs     911M     0  911M    0% /dev/shm
tmpfs                   tmpfs     911M   11M  901M    2% /run
tmpfs                   tmpfs     911M     0  911M    0% /sys/fs/cgroup
/dev/mapper/centos-home xfs        19G   33M   19G    1% /home
/dev/sda1               xfs      1014M  170M  845M   17% /boot
tmpfs                   tmpfs     183M  8.0K  183M    1% /run/user/42
tmpfs                   tmpfs     183M     0  183M    0% /run/user/0
[root@localhost ~]# df -h /etc   #将/etc下可用的磁盘容量以易读的容量格式显示
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   39G  4.2G   35G   11% /
[root@localhost ~]# df -ih /etc    #查询这个目录的可用inode数量
文件系统                Inode 已用(I) 可用(I) 已用(I)% 挂载点
/dev/mapper/centos-root   20M    154K     19M       1% /

2、du命令

作用:

评估文件系统的磁盘使用量(常用在推估目录所占容量)。

选项:

  • -a:列出所有的文件与目录容量,默认仅统计目录下面的文件量而已。
  • -h:以较易读懂的容量格式(G/M)显示,常用。
  • -s:列出总量而已,而不列出每个个别的目录占用容量,常用。
  • -S:不包括子目录下的总计,与-s有点差别,不常用。
  • -k:以KBytes列出容量显示。
  • -m:以MBytes列出容量显示。

我一般使用“du -sh”较多,如下:

[root@localhost ~]# du -sh /etc    #统计/etc目录的总用量
37M /etc

3、ln命令

作用:
创建链接,可以将之当成windows中的创建快捷方式。

软连接及硬链接的区别:

链接有软连接及硬链接之分,软连接就是Windows中创建了一个快捷方式,而硬链接则相当于直接复制了一份到指定位置。

二者区别:软连接占用空间小,硬链接占用空间大,当源文件不存在时,软连接也就跟着失效了,而硬链接则没事,它相当于一个完全独立的个体。

选项:

  • -s:如果不加任何参数就进行链接,那就是创建的硬链接,而“-s”选项就是创建软连接。
  • -f:如果目标文件存在时,就主动的将目标文件直接移除后再创建。

示例:

#软连接示例:
[root@localhost ~]# ln -s /etc/passwd /tmp/password   #创建一个软连接
[root@localhost ~]# ls -ld /etc/passwd /tmp/password    #查看源文件及链接文件
-rw-r--r--. 1 root root 2342 7月  14 22:46 /etc/passwd
lrwxrwxrwx  1 root root   11 8月  17 22:54 /tmp/password -> /etc/passwd
#可以看到链接文件的权限很大,但实际的权限以源文件为准
[root@localhost ~]# du -sh /etc/passwd /tmp/password 
4.0K    /etc/passwd
0   /tmp/password    #可以看到软连接的文件大小基本可以忽略不计
#硬链接示例:
[root@localhost ~]# ln /etc/passwd /tmp/password2  #创建一个硬链接
#分别查看源文件和连接文件的大小
[root@localhost ~]# du -sh /etc/passwd
4.0K    /etc/passwd
[root@localhost ~]# du -sh /tmp/password2
4.0K    /tmp/password2
#可以看出来大小一样
[root@localhost ~]# ls -ld /etc/passwd /tmp/password2    #文件属性也一样
-rw-r--r--. 2 0 root 2277 8月  17 22:58 /etc/passwd
-rw-r--r--. 2 0 root 2277 8月  17 22:58 /tmp/password2

4、lsblk命令

作用:

列出系统上所有的磁盘列表。

选项:

  • -d:仅列出磁盘本身,并不会列出该磁盘的分区数据。
  • -f:同时列出该磁盘内的文件系统。
  • -i:使用ASCII的线段输出,不使用复杂的编码(某些环境下很有用)。
  • -m:同时输出该设备在/dev下面的权限数据(rwx的数据)。
  • -p:列出该磁盘设备的完整文件名,而不是仅列出最后的名字。
  • -t:列出该磁盘设备的详细数据,包括磁盘阵列机制、预读写的数据量大小等。

示例:

[root@localhost ~]# lsblk   #默认不加选项,查看磁盘上所有的分区信息
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   60G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   59G  0 part 
  ├─centos-root 253:0    0 38.3G  0 lvm  /
  ├─centos-swap 253:1    0    2G  0 lvm  [SWAP]
  └─centos-home 253:2    0 18.7G  0 lvm  /home
sr0              11:0    1 1024M  0 rom  
[root@localhost ~]# lsblk -d   #仅列出磁盘本身
NAME MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda    8:0    0   60G  0 disk 
sr0   11:0    1 1024M  0 rom  

5、blkid命令

作用:

列出磁盘设备的UUID等参数。

示例:

[root@localhost ~]# blkid    #查询磁盘的UUID及文件系统
/dev/sda1: UUID="cfcc42fb-78c0-4bf6-84ec-bc3f52803d14" TYPE="xfs" 
/dev/sda2: UUID="fLk953-Bcni-gHbP-E6Sq-F5o6-55pz-LScGyM" TYPE="LVM2_member" 
/dev/mapper/centos-root: UUID="9693181b-8904-4ead-94d8-eb7638055f7a" TYPE="xfs" 
/dev/mapper/centos-swap: UUID="c5c51833-e6a5-4223-b848-aa02d2128dfe" TYPE="swap" 
/dev/mapper/centos-home: UUID="5a05f8d3-3211-401b-8f22-99ef3681777f" TYPE="xfs"

6、parted命令

作用:
列出磁盘的分区表类型与分区信息。

示例:

[root@localhost ~]# parted /dev/sda print    #列出/dev/sda磁盘的相关数据,需要加“print”参数
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 64.4GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 
#下面是分区数据
Number  Start   End     Size    Type     File system  标志
 1      1049kB  1075MB  1074MB  primary  xfs          启动
 2      1075MB  64.4GB  63.3GB  primary               lvm

7、gdisk命令

对磁盘进行分区等一系列改动操作,使用GPT模式进行分区,另一种模式是MBR分区格式,使用fdisk命令,两者分区时的操作大同小异。这里不写示例了,可以参考我之前的博文:Linux中磁盘的分区管理。

对磁盘分区进行改动后,最好手动更新Linux核心的分区信息,命令如下:

[root@localhost ~]# partprobe -s   “-s”选项可以不加,那样就不会输出任何信息
/dev/sda: msdos partitions 1 2

8、mkfs命令

作用:
对磁盘分区后,需要使用此命令进行格式化。

关于其选项有些多,直接上个截图吧!

一般使用如下即可(没有特殊要求的话):

[root@localhost ~]# mkfs.xfs /dev/sdb1   #格式化此磁盘,将会输出磁盘的详细信息
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=1310655 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=5242619, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@localhost ~]# grep 'processor' /proc/cpuinfo   #查询CPU个数
processor   : 0
#结果是只有一个CPU,可以设置相关参数,来优化文件系统的读写性能。

文件系统优化方案可以参考:xfs文件系统优化。

9、xfs_repair命令

作用:

对文件系统进行检验。

选项:

  • -f:后面跟的设备其实是个文件而不是实体设备。
  • -n:单纯检查并不修改文件系统的任何数据(检查而已)。
  • -d:通常用在单人维护模式下面,针对根目录(/)进行检查与修复的动作,很危险,不要随便使用。

示例:

[root@localhost ~]# xfs_repair /dev/sdb1   #检查/dev/sdb1文件系统

10、fsck命令

作用:

常用于检查ext4文件系统并尝试修复出现的错误,通常只有身为 root 用户且文件系统出现问题时才会使用,否则,在正常状况下使用 fsck 命令,很可能损坏系统。另外,如果你怀疑已经格式化成功的硬盘有问题,也可以使用此命令来进行检查。

使用 fsck 检查并修复文件系统是存在风险的,特别是当硬盘错误非常严重的时候,因此,当一个受损文件系统中包含了非常有价值的数据时,务必首先进行备份!

选项:

  • -a:自动修复文件系统,没有任何提示信息。
  • -r:采取互动的修复模式,在修改文件前会进行询问,让用户得以确认并决定处理方式。
  • -A:按照 /etc/fstab 配置文件的内容,检查文件内罗列的全部文件系统。
  • -t :文件系统类型 指定要检查的文件系统类型。
  • -C:显示检查分区的进度条。
  • -f:强制检测,一般 fsck 命令如果没有发现分区有问题,则是不会检测的。如果强制检测,那么不管是否发现问题,都会检测。
  • -y:自动修复,和 -a 作用一致,不过有些文件系统只支持 -y。
  • -D:针对文件系统下的目录进行最优化配置。
  • -b:后面接superblock的位置,一般用不到这个选项,但是如果你的uperblock因故障损毁时,通过这个参数即可利用文件系统内备份的superblock来尝试救援。一般来说,superblock备份在:1K block放在8193,2K block放在16384,4K block放在32768。

需要注意的是,在使用 fsck 命令修改某文件系统时,这个文件系统对应的磁盘分区一定要处于卸载状态,磁盘分区在挂载状态下进行修复是非常不安全的,数据可能会遭到破坏,也有可能会损坏磁盘。

示例:

[root@localhost eee]# fsck.ext4 -f /dev/sdb1   #检查该分区
e2fsck 1.42.9 (28-Dec-2013)
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3步: 检查目录连接性
Pass 4: Checking reference counts
第5步: 检查簇概要信息
/dev/sdb1: 11/1310720 files (0.0% non-contiguous), 126322/5242619 blocks

模拟ext4的文件系统故障及恢复,请参考ext3/ext4 超级块修复。

[root@localhost /]# dumpe2fs -h /dev/sdb1 | grep "Blocks per group"
#该命令可以查找到superblock所在位置,每个block群组会有#32768个block,因此第二个superblock应该就在32768上,因为#block号码从0开始的。
dumpe2fs 1.42.9 (28-Dec-2013)
Blocks per group:         32768

11、mount命令

作用:

挂载文件系统。

自己看吧!

12、umount命令

作用:

卸载文件系统。

选项:

  • -f:强制卸载,可用在类似网络文件系统(NFS)无法读取到的情况下。
  • -l:立刻卸载文件系统,比“-f”还强。
  • -n:不更新/etc/mtab情况下卸载。

13、附加

设置开机自动挂载时,一些可以设置的参数:

———————— 本文至此结束,感谢阅读 ————————

你可能感兴趣的:(Linux磁盘管理笔记整理)