分区表,磁盘概念和parted的使用
登录陌生系统首先要做的事:
个人认为,首先得知道Linux版本的什么:cat /etc/issue
df:查看磁盘的分区和数据的分配情况,类型(NFS,ext4..),可用内存
有时候,当有的应用程序无法正确执行的时候,可能是磁盘空间利用率达到100了,比如/根分区ps: 查看当前有无程序挂了,或者其他异常的程序在运行
free: 查看内存的情况
磁盘的3D参数
磁盘两种不同的类型:
CHS:比较老基本不用,c:cylinder柱面数,h:head磁头,s:sector扇区
fdisk -l 看到的就是按照柱面的形式来分的[root@server3 ~]# fdisk -l Disk /dev/sda: 6442 MB, 6442450944 bytes 255 heads, 63 sectors/track, 783 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: 0x0005013e Device Boot Start End Blocks Id System /dev/sda1 * 1 39 307200 83 Linux
LBA:硬盘所有的扇区均从0开始编号,通过扇区数来指定扇区位置
扇区号与物理扇区位置之间的对应,是由内置的磁盘控制器来计算,通常扇区号越小,其对应的物理扇区就越位于磁盘的外侧
fdisk -lu 查看[root@server3 ~]# fdisk -lu Disk /dev/sda: 6442 MB, 6442450944 bytes 255 heads, 63 sectors/track, 783 cylinders, total 12582912 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 identifier: 0x0005013e Device Boot Start End Blocks Id System /dev/sda1 * 2048 616447 307200 83 Linux
Partition 1 does not end on cylinder boundary.
由于fdisk默认是以柱面的形式来表示磁盘分区的情况,但是现在一般都是LBA的方式,所以找不到结束柱面。
分区表
存储分区的起始和结束的位置
-
传统分区表
一个扇区512的字节
分区表存放在第0号扇区MBR的446~509(64)字节的部分
MBR的0~445字节中,存放引导加载程序,当服务器启动时用来引导BIOS的加电自检以及GRUB的加载
剩余的510~511一般为0xAA55,如果不是,说明此时MBR已经被破坏hexdump -s 446 -n66 -e '8/1 "%02x" 2/4 "%10d" " "' /dev/sda #查看当前的分区表情况
缺点 :只能支持到2TB,因为表示开始位置的扇区号和全体扇区的扇区数字总共是4字节的,表示的范围0x00000000~0xFFFFFFFF.
-
GPT
GPT写在第1扇区到第33扇区,而且还有一份副本
如果使用GPT的硬盘启动操作系统,需要UEFI的支持,
可支持128个分区
UEFI扩展了以前BIOS的功能,以前的BIOS的可用内存只有1M,所以功能简单,但是UEFI可以通过图形界面来操作设定硬件
另外,调用引导加载程序的方法也发生了改变,以前都需要想GRUB这样分阶段启动引导加载程序,而改进后,在以GPT方式创建的"EFI分区"中,引导加载程序存储就可以直接被调用了
对于这种大的磁盘的分区操作,必须使用parted进行
parted
parted可以划分单个分区大于2T的GPT格式的分区,也可以划分普通的MBR分区
两种模式操作:命令parted [option] device [command]、交互式
创建分区 parted /dev/sda mkpart primary [fs-type] 10.0G 20.0G
打印 parted /dev/sdb print
选择 select (交互常用)
删除 rm NUMBER
修改使用GPT来分区,mklabel gpt。修改会普通MBR,mklabel msdos
一般使用mkfs.fs_type进行格式化,确定分区名称使用fdisk -l,blkid查看设备UUID