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@www ~# df
Filesystem      1K-blocks      Used Available Use% Mounted on
/dev/hdc2         9920624   3823112   5585444  41% /
/dev/hdc3         4956316    141376   4559108   4% /home
/dev/hdc1          101086     11126     84741  12% /boot
tmpfs              371332         0    371332   0% /dev/shm

在 Linux 底下若是 df 不加任何选项,那末默许会将体系内一切的 (不含特别内存内的文件体系与 swap) 都以 1 Kbytes 的容量来列出来!

实例 2

将容量成果以易读的容量格局显现出来

root@www ~# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/hdc2             9.5G  3.7G  5.4G  41% /
/dev/hdc3             4.8G  139M  4.4G   4% /home
/dev/hdc1              99M   11M   83M  12% /boot
tmpfs                 363M     0  363M   0% /dev/shm

实例 3

将体系内的一切特别文件格局及称号都列出来

root@www ~# df -aT
Filesystem    Type 1K-blocks    Used Available Use% Mounted on
/dev/hdc2     ext3   9920624 3823112   5585444  41% /
proc          proc         0       0         0   -  /proc
sysfs        sysfs         0       0         0   -  /sys
devpts      devpts         0       0         0   -  /dev/pts
/dev/hdc3     ext3   4956316  141376   4559108   4% /home
/dev/hdc1     ext3    101086   11126     84741  12% /boot
tmpfs        tmpfs    371332       0    371332   0% /dev/shm
none   binfmt_misc         0       0         0   -  /proc/sys/fs/binfmt_misc
sunrpc  rpc_pipefs         0       0         0   -  /var/lib/nfs/rpc_pipefs

实例 4

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

root@www ~# df -h /etc
Filesystem            Size  Used Avail Use% Mounted on
/dev/hdc2             9.5G  3.7G  5.4G  41% /

du

Linux du号令也是查抄操纵空间的,可是与df号令不同的是Linux du号令是对文件和目次磁盘操纵的空间的查抄,仍是和df号令有一些区分的,这里先容Linux du号令。

语法:

du -ahskm 文件或目次称号

选项与参数:

  • -a :列出一切的文件与目次容量,因为默许仅统计目次底下的文件量罢了。
  • -h :以人们较易读的容量格局 (G/M) 显现;
  • -s :列出总量罢了,而不列出每一个各异的目次占用容量;
  • -S :不包含子目次下的合计,与 -s 有点不同。
  • -k :以 KBytes 列出容量显现;
  • -m :以 MBytes 列出容量显现;

实例 1

只列出以后目次下的一切文件夹容量(包含埋没文件夹):

root@www ~# du
8       ./test4     <==每一个目次城市列出来
8       ./test2
....中心省略....
12      ./.gconfd   <==包含埋没文件的目次
220     .           <==这个目次(.)所占用的总量

间接输出 du 不加任何选项时,则 du 会阐发以后地点目次的文件与目次所占用的硬盘空间。

实例 2

将文件的容量也列出来

root@www ~# du -a
12      ./install.log.syslog   <==有文件的列表了
8       ./.bash_logout
8       ./test4
8       ./test2
....中心省略....
12      ./.gconfd
220     .

实例 3

查抄根目次底下每一个目次所占用的容量

root@www ~# du -sm /*
7       /bin
6       /boot
.....中心省略....
0       /proc
.....中心省略....
1       /tmp
3859    /usr     <==体系早期最大便是他了啦!
77      /var

通配符 * 来代表每一个目次。

与 df 不一样的是,du 这个号令实在会间接到文件体系内去搜索一切的文件数据。


fdisk

fdisk 是 Linux 的磁盘分区表操纵东西。

语法:

fdisk -l 装配称号

选项与参数:

  • -l :输出前面接的装配一切的分区内容。若唯一 fdisk -l 时, 则体系将会把全数体系内能够或许搜索到的装配的分区均列出来。

实例 1

列出一切分区信息

root@AY120919111755c246621 tmp# fdisk -l

Disk /dev/xvda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

    Device Boot      Start         End      Blocks   Id  System
/dev/xvda1   *           1        2550    20480000   83  Linux
/dev/xvda2            2550        2611      490496   82  Linux swap / Solaris

Disk /dev/xvdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x56f40944

    Device Boot      Start         End      Blocks   Id  System
/dev/xvdb2               1        2610    20964793+  83  Linux

实例 2

找出你体系中的根目次地点磁盘,并查阅该硬盘内的相干信息

root@www ~# df /            <==注重:重点在找出磁盘文件名罢了
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/hdc2              9920624   3823168   5585388  41% /

root@www ~# fdisk /dev/hdc  <==细心看,不要加上数字喔!
The number of cylinders for this disk is set to 5005.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

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
   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/hdc: 41.1 GB, 41174138880 bytes        <==这个磁盘的文件名与容量
255 heads, 63 sectors/track, 5005 cylinders      <==磁头、扇区与磁柱巨细
Units = cylinders of 16065 * 512 = 8225280 bytes <==每一个磁柱的巨细

   Device Boot      Start         End      Blocks   Id  System
/dev/hdc1   *           1          13      104391   83  Linux
/dev/hdc2              14        1288    10241437+  83  Linux
/dev/hdc3            1289        1925     5116702+  83  Linux
/dev/hdc4            1926        5005    24740100    5  Extended
/dev/hdc5            1926        2052     1020096   82  Linux swap / Solaris
# 装配文件名 启动区否 起头磁柱    竣事磁柱  1K巨细容量 磁盘分区槽内的体系

Command (m for help): q

想要不贮存分开吗?按下 q 就对了!不要随意按 w 啊!

操纵 p 能够或许列出今朝这颗磁盘的朋分表信息,这个信息的上半部在显现全体磁盘的状况。


磁盘格局化

磁盘朋分终了后天然便是要停止文件体系的格局化,格局化的号令很是的简略,操纵 mkfs(make filesystem) 号令。

语法:

mkfs -t 文件体系格局 装配文件名

选项与参数:

  • -t :能够或许接文件体系格局,比方 ext3, ext2, vfat 等(体系有撑持才会失效)

实例 1

查抄 mkfs 撑持的文件格局

root@www ~# mkfstabtab
mkfs         mkfs.cramfs  mkfs.ext2    mkfs.ext3    mkfs.msdos   mkfs.vfat

按下两个tab,会发明 mkfs 撑持的文件格局如上所示。

实例 2

将分区 /dev/hdc6(可指定你自身的分区) 格局化为 ext3 文件体系:

root@www ~# 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@www ~# fscktabtab
fsck         fsck.cramfs  fsck.ext2    fsck.ext3    fsck.msdos   fsck.vfat

实例 2

强迫检测 /dev/hdc6 分区:

root@www ~# fsck -C -f -t ext3 /dev/hdc6 
fsck 1.39 (29-May-2006)
e2fsck 1.39 (29-May-2006)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
vbird_logical: 11/251968 files (9.1% non-contiguous), 36926/1004046 blocks

若是不加上 -f 的选项,则因为这个文件体系未曾呈现题目,查抄的颠末很是疾速!若加上 -f 强迫查抄,才会一项一项的显现进程。


磁盘挂载与卸除

Linux 的磁盘挂载操纵 mount 号令,卸载操纵 umount 号令。

磁盘挂载语法:

mount -t 文件体系 -L Label名 -o 额定选项 -n  装配文件名  挂载点

实例 1

用默许的体例,将方才建立的 /dev/hdc6 挂载到 /mnt/hdc6 下面!

root@www ~# mkdir /mnt/hdc6
root@www ~# mount /dev/hdc6 /mnt/hdc6
root@www ~# df
Filesystem           1K-blocks      Used Available Use% Mounted on
.....中心省略.....
/dev/hdc6              1976312     42072   1833836   3% /mnt/hdc6

磁盘卸载号令 umount 语法:

umount -fn 装配文件名或挂载点

选项与参数:

  • -f :强迫卸除!可用在近似收集文件体系 (NFS) 没法读取到的环境下;
  • -n :不进级 /etc/mtab 环境下卸除。

卸载/dev/hdc6

root@www ~# umount /dev/hdc6