df
-l 只显示本地磁盘的(默认)
-a 显示所有文件系统的磁盘使用情况(包括0字节分区,往往0字节分区的数目还是比较多的)
-T 显示每个分区采用了什么文件系统
// 比如 /usr挂载点对应的分区 是ext4还是ext3
-h 以1024进制,用最合适的单位来表示大小
-H 以1000进制,用最合适的单位来表示大小
// 当不指定这两种参数的时候,默认显示的单位是KB
-t 指定只显示哪种文件系统(比如ext4)的分区
-x 指定不显示哪种文件系统(比如ext3)的分区
du
-b 以字节为单位
-k 以KB为单位
-m 以MB为单位
// 不指定单位的时候,默认是以KB为单位的
// 指定单位的时候,会可能有四舍五入的误差
-h 以1024进制,用最合适的单位来表示大小
-H 以1000进制,用最合适的单位来表示大小
// 注意,用 -b或-k或-m的时候,所有的文件都是一个单位
// 注意,用 -h或-H的时候,每个文件显示的单位可能是不一样的,它会对每个文件都按照最合适的单位来显示
-s 指定统计目标
// 不指定该参数的话,默认是统计当前目录
1. 主分区 + 扩展分区 的总数不能超过4个
2. 扩展分区要么没有,要么只有一个
3. 扩展分区不能直接存储数据,必须在扩展分区的内部创建逻辑分区,才能存储数据
sudo fdisk -l
查看磁盘情况,例如我的结果的一部分是 :
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 127999999 127997952 61G 83 Linux
/dev/sda2 * 128000000 130000895 2000896 977M 83 Linux
/dev/sda3 130000896 138000383 7999488 3.8G 82 Linux swap / Solaris
/dev/sda4 138002430 1305999359 1167996930 557G 5 Extended
/dev/sda5 138002432 650000383 511997952 244.1G 83 Linux
/dev/sda6 650002432 1162000383 511997952 244.1G 83 Linux
/dev/sda7 1162002432 1290000383 127997952 61G 83 Linux
/dev/sda8 1290002432 1297999871 7997440 3.8G 83 Linux
/dev/sda9 1298001920 1305999359 7997440 3.8G 83 Linux
// 可见,这是第一块磁盘(sda)的9个分区的情况
// 其中,sda1~sda4 是主分区&扩展分区
// 其中,sda5~sda9 是逻辑分区
// sda1,sda2,sda3是主分区, sda4是扩展分区, 且sda2是boot启动区
// fdisk -l 与 df -Th 命令结合着看 :
// 就可以知道我有哪些分区
// 每个分区是主分区,还是扩展分区,还是逻辑分区
// 每个分区对应哪个目录(即挂载点),各自的大小是多少
目标 : 加入 /dev/sdb 这块新硬盘
步骤 :
df -T -h
// 查看当前系统中有哪些分区,以及各分区的文件系统的类型
// 从返回结果可知当前的 /目录 的文件系统类型是ext4
sudo mkfs.ext4 /dev/sdb
// 把/dev/sdb这块硬盘格式化为ext4格式
// (我要在 /mydata 挂载硬盘,所以格式要和 /目录 保持一致)
sudo fdisk /dev/sdb
// 输入 m 查看帮助
// 我们先来创建一个主分区 :
输入 n 新建分区
输入 p 表明要创建的是主分区
输入 这个分区的编号是(我这里输入1)
(注意,主分区和扩展分区加起来最多4个,且编号为1~4)
输入 这个新分区的起始扇区位置(直接回车,使用默认值就行了)
输入 这个新分区的结束扇区位置
(键入数值,该数值减去刚才的起始位置就是你这个新分区的容量)
(我们这里输入 +20G,表示从该分区的起始位置往后20G才是终结位置,即给该分区分配20G的空间)
(在这之后,还可以继续用 n p 来创建新的主分区)
// 我们再来创建一个扩展分区
输入 n 继续创建下一个分区
输入 e 创建一个扩展分区
输入 这个扩展分区的编号(我这里输入2)
输入 这个扩展分区的起始扇区位置(我这里输入系统提示的默认值)
输入 这个扩展分区的结束扇区位置(我这里输入系统提示的默认值)
// 我们再来创建逻辑分区(因为扩展分区并不能直接存储数据,需要在它内部创建逻辑分区)
输入 n 创建分区(可以看到现在只能创建主分区和逻辑分区了,因为扩展分区最多只有一个,且已经在上一步中被创建过了)
输入 l 创建一个逻辑分区 \
输入 这个逻辑分区的编号(从5开始,因为1~4是给主分区和扩展分区用的)
输入 这个逻辑分区的起始扇区位置
输入 这个逻辑分区的终止扇区位置
// 输入 p 查看当前这块/dev/sdb磁盘的分区计划
// 最后输入 w 把上述制定的分区计划写入分区表
(注意,fdisk工具,只能给硬盘做MBR模式的分区)
// 例如,最后,我为/dev/sdb这块新硬盘的分区方案为 :
/dev/sdb1 主分区 编号=1 大小20G
/dev/sdb2 扩展分区 编号=2 大小40G
/dev/sdb5 逻辑分区(从属于扩展分区) 编号=5 大小10G
/dev/sdb6 逻辑分区(从属于扩展分区) 编号=6 大小30G
mkdir /mydata
mkdir /mydata/pA
mkdir /mydata/pB
mkdir /mydata/pC
// 新建空目录用来挂载硬盘
// 其中, /mydata/pA 作为 /dev/sdb1 的挂载点
// 其中, /mydata/pB 作为 /dev/sdb5 的挂载点
// 其中, /mydata/pC 作为 /dev/sdb6 的挂载点
// 注意, 扩展分区不需要挂载点,因为扩展分区并不存储数据,而是它下面的若干逻辑分区需要各自的挂载点
sudo mount -t ext4 /dev/sdb1 /mydata/pA
sudo mount -t ext4 /dev/sdb5 /mydata/pB
sudo mount -t ext4 /dev/sdb6 /mydata/pC
// 进行挂载
// 注意,mount命令是临时生效,如果想要永久生效,需要编辑 /etc/fstab
sudo vi /etc/fstab
// 添加 :
// /dev/sdb1 /mydata/pA ext4 defaults 0 1
// /dev/sdb5 /mydata/pB ext4 defaults 0 1
// /dev/sdb6 /mydata/pC ext4 defaults 0 1
sudo shutdown -r now
// 重启
sudo fdisk -l
// 再次查看磁盘情况(有/dev/sdb1之类的就说明成功了)
dd if=/dev/zero of=/var/swap bs=1M count=256
mkswap /var/swap
swapon /var/swap
// 以 root 身份,创建swap分区,大小是256M,并挂载在 /var/swap 目录下
vi /etc/fstab
// 添加一行 /var/swap swap swap defaults 0 0
vi /etc/rc.d/rc.local
// 将其中的 swapoff -a 注释掉
shutdown -r now
// 重启,使得swap分区生效