linux磁盘管理 -- 学习笔记一. 查看磁盘分区使用状况 df -l 只显示本地磁盘的(默认) -a 显示所有文件系统的磁盘使用情况(包括0字节分区,
linux磁盘管理 -- 学习笔记
一. 查看磁盘分区使用状况
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之类的就说明成功了)
五. 如何给硬盘添加swap分区
第一步,建一个普通的分区(主分区or逻辑分区都行) 第二步,修改分区类型的16进制编码 第三步,格式化swap分区 第四步,启用swap分区 比方说,我要把 /dev/sdb7 这个分区做成swap分区 // 保证该分区已经被创建了,而且还没有被挂载 fdisk /dev/sdb // 输入 t 来修改分区类型 // 输入 7 表示我要对 /dev/sdb7 做修改 // 输入 L 来查看各种分区类型对应的编号 // 输入 82 (82是swap类型的编号) // 输入 w 来保存 mkswap /dev/sdb7 // 格式化交换分区 // 注意,它和格式化普通分区是有区别的,普通分区的格式化用的是mkfs命令 swapon /dev/sdb7 // 启用这个交换分区 // swapoff可以用来停用 vi /etc/fstab // 添加 : // /dev/sdb7 swap swap sw 0 0 重启生效