Linux磁盘管理

文章来源于菜鸟教程:http://www.runoob.com/linux

在这里为了加深记忆,所以写当前文章。如果版权问题,留言。

Linux 磁盘管理

Linux磁盘管理好坏直接关系到整个系统性能问题。

Linux磁盘管理常用三个命令为df 、du和fdisk。

  • df : 列出文件系统整个磁盘使用量
  • du: 检查磁盘空间使用量
  • fdisk:用于磁盘分区

df

df命令参数功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘占用了多少空间,目前还剩下多少空间等信息。

语法:

df [-ahikHTm] 目录或文件名

选项与参数:

  • -a: 列出所有的文件系统,包括系统特有的/proc等文件系统;
  • -k:以KBytes的容量显示各文件系统;
  • -m:以MBytes的容量显示各文件系统;
  • -h:以人们交易阅读的GBytes,MBytes,KBytes等格式自行显示;
  • -H:以M=1000k取代M=1024K的禁止方式;
  • -T:显示文件系统类型,连同该partition的filesystem名称(例如ext3)也列出;
  • -i:不用硬盘容量,而已inode的数量显示

 实例1:

将系统内所有的文件系统列出来!

[root@centos0921 ~]# df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda3       17814528 1098436  16716092   7% /
devtmpfs          487948       0    487948   0% /dev
tmpfs             498976       0    498976   0% /dev/shm
tmpfs             498976    7788    491188   2% /run
tmpfs             498976       0    498976   0% /sys/fs/cgroup
/dev/sda1        1038336  126600    911736  13% /boot
tmpfs              99796       0     99796   0% /run/user/0

在Linux底下如果df没有任何选项,那么默认会将系统内所有的(不含特殊内存内的文件文件系统与swap)都以1KBytes的内容量列出来。

实例2:

将容量结果以易读的容量格式显示出来

[root@centos0921 ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        17G  1.1G   16G   7% /
devtmpfs        477M     0  477M   0% /dev
tmpfs           488M     0  488M   0% /dev/shm
tmpfs           488M  7.7M  480M   2% /run
tmpfs           488M     0  488M   0% /sys/fs/cgroup
/dev/sda1      1014M  124M  891M  13% /boot
tmpfs            98M     0   98M   0% /run/user/0

实例3:

将系统内所有的特殊文件格式及名称都列出来

 

[root@centos0921 ~]# df -aT
Filesystem     Type        1K-blocks    Used Available Use% Mounted on
rootfs         -                   -       -         -    - /
sysfs          sysfs               0       0         0    - /sys
proc           proc                0       0         0    - /proc
devtmpfs       devtmpfs       487948       0    487948   0% /dev
securityfs     securityfs          0       0         0    - /sys/kernel/security
tmpfs          tmpfs          498976       0    498976   0% /dev/shm
devpts         devpts              0       0         0    - /dev/pts
tmpfs          tmpfs          498976    7788    491188   2% /run
tmpfs          tmpfs          498976       0    498976   0% /sys/fs/cgroup
cgroup         cgroup              0       0         0    - /sys/fs/cgroup/systemd
pstore         pstore              0       0         0    - /sys/fs/pstore
cgroup         cgroup              0       0         0    - /sys/fs/cgroup/cpuset
cgroup         cgroup              0       0         0    - /sys/fs/cgroup/hugetlb
cgroup         cgroup              0       0         0    - /sys/fs/cgroup/cpu,cpuacct
cgroup         cgroup              0       0         0    - /sys/fs/cgroup/net_cls,net_prio
cgroup         cgroup              0       0         0    - /sys/fs/cgroup/blkio
cgroup         cgroup              0       0         0    - /sys/fs/cgroup/perf_event
cgroup         cgroup              0       0         0    - /sys/fs/cgroup/memory
cgroup         cgroup              0       0         0    - /sys/fs/cgroup/devices
cgroup         cgroup              0       0         0    - /sys/fs/cgroup/pids
cgroup         cgroup              0       0         0    - /sys/fs/cgroup/freezer
configfs       configfs            0       0         0    - /sys/kernel/config
/dev/sda3      xfs          17814528 1098176  16716352   7% /
selinuxfs      selinuxfs           0       0         0    - /sys/fs/selinux
systemd-1      -                   -       -         -    - /proc/sys/fs/binfmt_misc
mqueue         mqueue              0       0         0    - /dev/mqueue
hugetlbfs      hugetlbfs           0       0         0    - /dev/hugepages
debugfs        debugfs             0       0         0    - /sys/kernel/debug
/dev/sda1      xfs           1038336  126600    911736  13% /boot
tmpfs          tmpfs           99796       0     99796   0% /run/user/0
binfmt_misc    binfmt_misc         0       0         0    - /proc/sys/fs/binfmt_misc

实例4:

将/etc底下的可用磁盘容量以易读的容量格式显示

[root@centos0921 ~]# df -h /etc/
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        17G  1.1G   16G   7% /

du

Linux du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间查看,还是和df命令有一些区别的,这里介绍Linux du命令。

语法:

du [-ahskm] 文件或目录名称

选项与参数:

  • -a:列出所有文件与目录容量,因为默认仅统计目录底下的文件量而已。
  • -h:以人们易读的容量格式(G/M)显示;
  • -s:列出总量而已,并不列出每个各别目录占用量;
  • -S:不包含子目录下的总计,与-s有点区别。
  • -k:以KBytes列出容量显示;
  • -m:以MBytes列出容量显示;

实例1:

列出目录下所有文件容量

[root@centos0921 ~]# du
20 ./.ssh <==每个目录都会列出来 包括隐藏文件的目录
56 .          <==这个目录(.)所占用的总量

直接输入du没有加任何选项时,则du会分析当前所在目录的文件与目录所占用的硬盘空间。

实例2:

将文件的容量也列出来

有文件的列表了 
[root@centos0921 ~]# du -a
4    ./.bash_logout
4    ./.bash_profile
4    ./.bashrc
4    ./.cshrc
4    ./.tcshrc
4    ./anaconda-ks.cfg
4    ./.bash_history
4    ./.ssh/id_rsa_2048.pub
4    ./.ssh/id_rsa
4    ./.ssh/id_rsa.pub
4    ./.ssh/known_hosts
4    ./.ssh/authorized_keys
20    ./.ssh
4    ./passwd.txt
4    ./user.txt
56    .

实例3:

检查根目录下每个目录所占用的容量

[root@centos0921 ~]# du -sm /*
0 /bin
92 /boot
0 /dev
30 /etc
1 /home
0 /lib
0 /lib64
0 /media
0 /mnt
0 /opt
du: cannot access ‘/proc/11179/task/11179/fd/4’: No such file or directory
du: cannot access ‘/proc/11179/task/11179/fdinfo/4’: No such file or directory
du: cannot access ‘/proc/11179/fd/4’: No such file or directory
du: cannot access ‘/proc/11179/fdinfo/4’: No such file or directory
0 /proc
1 /root
8 /run
0 /sbin
0 /srv
0 /sys
1 /tmp
878 /usr
120 /var

通配符*来代表每个目录。

与df不一样的是,du这个命令其实会直接到文件系统内去寻找所有的文件数据。


 

fdisk

fdisk 是Linux 的磁盘分区表操作工具。

语法:

fdisk [-l] 装置名称

选项与参数:

  • -l:输出后面接的装置所有的区内容,若仅有fdisk -l时,则系统将会把整个系统内能够搜寻到的装置的分区均列出来。

实例1:

列出所有分区信息

[root@centos0921 ~]# fdisk -l

Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000aa620

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200     6293503     2097152   82  Linux swap / Solaris
/dev/sda3         6293504    41943039    17824768   83  Linux

实例2:

找出你系统中的根目录所在磁盘,并查阅该硬盘内的相关信息

[root@centos0921 ~]# df /   <==注意:重点在找出磁盘文件名而已
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda3       17814528 1098180  16716348   7% /

[root@centos0921 ~]# fdisk /dev/sda  <==仔细看,不要加上数字喔!
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help):   <==等待你的输入!

输入m后,就会看到底下这些命令介绍

Command (m for help): m   <== 输入 m 后,就会看到底下这些命令介绍
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition  <==删除一个partition
   g   create a new empty GPT partition table
   G   create an IRIX (SGI) partition table
   l   list known partition types
   m   print this menu
   n   add a new partition  <==新增一个partition
   o   create a new empty DOS partition table
   p   print the partition table  <==在屏幕上显示分割表
   q   quit without saving changes   <==不储存离开fdisk程序
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit   <==将刚刚的动作写入分割表
   x   extra functionality (experts only)

离开fdisk时按q,那么所有的动作都不会生效!相反的,按下w就是动作生效的意思。

Command (m for help): p   <== 这里可以输出目前磁盘的状态

Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors  <==这个磁盘的文件名与容量
Units = sectors of 1 * 512 = 512 bytes <==每个磁柱的大小
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000aa620

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200     6293503     2097152   82  Linux swap / Solaris
/dev/sda3         6293504    41943039    17824768   83  Linux
# 装置文件名 启动区否 开始磁柱    结束磁柱  1K大小容量 磁盘分区槽内的系统

想要不存储离开吗? 按下q就对了!不要随便按w啊!

使用p可以列出目前这个磁盘分割表信息,这个信息上半部分在显示整个磁盘的状态。


磁盘格式化

磁盘分割完毕后自然就是要进行文件系统的格式化,格式化的命令非常简单,使用mkfs (make filesystem)命令。

语法

mkfs [-t 文件系统格式] 装置文件名

选项与参数:

  • -t:可以接文件系统格式,例如ext3 、ext2、vfat等(系统有支持才会生效)

实例1:

查看mkfs 支持的文件格式

[root@centos0921 ~]# mkfs <==两下tab键
mkfs         mkfs.cramfs  mkfs.ext3    mkfs.minix   
mkfs.btrfs   mkfs.ext2    mkfs.ext4    mkfs.xfs 

按下两个tab, 会发现mkfs支持的文件格式如上所示。

实例2:

将分区/dev/hdc6(可指定你自己的分区)格式化为ext3文件系统:

[root@centos0921 ~]# mkfs -t ext3 /dev/hdc6
mke2fs 1.39 (29-May-2006)
Filesystem label=                <==这里指的是分割槽的名称(label)
OS type: Linux
Block size=4096 (log=2)          <==block 的大小配置为 4K 
Fragment size=4096 (log=2)
251392 inodes, 502023 blocks     <==由此配置决定的inode/block数量
25101 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=515899392
16 block groups
32768 blocks per group, 32768 fragments per group
15712 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912

Writing inode tables: done
Creating journal (8192 blocks): done <==有日志记录
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 34 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
# 这样就创建起来我们所需要的 Ext3 文件系统了!简单明了!

磁盘检查

fsck(file system check)用来检查和维护不一致的文件系统。

若系统掉电或磁盘繁盛问题,可以利用fsck命令对文件系统进行检查。

语法:

fsck [-t 文件系统] [-ACay] 装置名称

选项与参数:

  • -t:给定档案系统的形式,若在/etc/fstab中已经有定义或kernel本身已经支援的则不需加上此参数
  • -s:依序一个一个的执行fsck的指令来检查
  • -A:对/etc/fstab中所有列出的分区(partition)做检查
  • -C:显示完整的检查进度
  • -d:打印出e2fsck的debug结果
  • -p:同时有-A条件时,同时有多个fsck的检查一起执行
  • -R:同时有-A条件时,省略/不检查
  • -V:详细显示模式
  • -a:如果检查有错则自动修复
  • -r:如果检查有错则由使用者回答是否修复
  • -y选项指定检查每个文件是自动输入yes,在不确定哪些是不正常的时候,可以执行#fsck -y全部检查修复。

实例1:

查看系统有多少文件系统支持fsck命令:

[root@centos0921 ~]# fsck <==两次tab
fsck         fsck.cramfs  fsck.ext3    fsck.minix   
fsck.btrfs   fsck.ext2    fsck.ext4    fsck.xfs  

磁盘挂载与卸除

Linux的磁盘挂载使用mount命令,卸载使用unmount命令。

磁盘挂载语法:

mount [-t 文件系统] [-L Lable名] [-o 额外选项] [-n] 装置文件名 挂载点 

实例1:

用默认的方式,将/dev/cdrom 挂载到 /mnt/cdrom上面

[root@centos0921 ~]# mkdir /mnt/cdrom
[root@centos0921 ~]# ll /mnt
total 0
drwxr-xr-x. 2 root root 6 Sep 28 23:02 cdrom
[root@centos0921 ~]# mount /dev/cdrom /mnt/cdrom/
mount: /dev/sr0 is write-protected, mounting read-only
[root@centos0921 ~]# df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda3       17814528 1098180  16716348   7% /
devtmpfs          487948       0    487948   0% /dev
tmpfs             498976       0    498976   0% /dev/shm
tmpfs             498976    7788    491188   2% /run
tmpfs             498976       0    498976   0% /sys/fs/cgroup
/dev/sda1        1038336  126600    911736  13% /boot
tmpfs              99796       0     99796   0% /run/user/0
/dev/sr0         4364408 4364408         0 100% /mnt/cdrom

磁盘卸载命令umount语法:

umount [-fn] 装置文件名或挂载点

选项与参数:

  • -f:强制卸除,可用在类似网络文件系统(NFS)无法读取到的情况下;
  • -n:不升级/etc/mtab情况卸除。

 卸载/dev/cdrom

[root@centos0921 ~]# umount /dev/cdrom 
[root@centos0921 ~]# df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda3       17814528 1098180  16716348   7% /
devtmpfs          487948       0    487948   0% /dev
tmpfs             498976       0    498976   0% /dev/shm
tmpfs             498976    7788    491188   2% /run
tmpfs             498976       0    498976   0% /sys/fs/cgroup
/dev/sda1        1038336  126600    911736  13% /boot
tmpfs              99796       0     99796   0% /run/user/0

 

posted @ 2018-09-28 18:04  生活太多无奈  阅读(748)  评论(0编辑  收藏  举报