Linux基础-20day-linux磁盘分区(fdisk/parted)
Linux磁盘分区(fdisk/parted) 一. 分区类型及表示方式 磁盘分区划分:常见的硬盘可以划分为主分区、扩展分区、和逻辑分区(MBR分区方式)。通常情况下主分区只有4个,而扩展分区看成一个特殊的主分区类型,在扩展分区可以建立逻辑分区。主分区一般用来安装操作系统,扩展分区则多用来储存文件数据。 MBR分区方案使用硬盘的第一个物理扇区中的64个字节作为分区表的空间保存硬盘分区信息,每个分区的信息要占16个字节。所以,MBR分区表最多只能保存4个分区的分区信息。 16个字节的分区信息保存有分区活动状态标志、文件系统标识、起止柱面号、磁头号、扇区号、起始扇区位置(4个字节)、分区总扇区数目(4个字节)等内容。这里最重要的是:分区的起始扇区位置与分区的总扇区数,都是用4个字节表示的。 一般每个扇区的容量是512字节,4个字节的扇区能表示的最大容量是2TB,由4可知,在MBR分区表中,分区的起始位置不能大于2TB,分区的最大容量,也不能大于2TB。所以,对2TB以上容量的物理硬盘,不适合使用MBR分区方案。 磁盘分区表示:Linux系统根据设备类型对硬盘设备进行识别,如果是IDE硬盘,计算机中被识别为“hd”,第一块设备被识别为“hda”,第二块设备被识别为“hdb”,以此类推。如果是ATA、SCSI等设备,将被识别为“sd”,同样依次类推,分别为“sda、sdb、sde”等。 第一块盘的第一个主分区应该是“sda1”,第一块磁盘的第二个主分区应该是“sda2”,第二块盘的第一个主分区应该是“sdb1”,第二块硬盘的第二个主分区应该是“sdb2”依此类推。 主分区共有4个,而扩展分区看成一个特殊的主分区,逻辑分区是建立在扩展分区之上。所以,第一个逻辑分区的表示方法是“sda5”,后面分依此类推。 二.磁盘分区 2.1传统MBR分区方式(fdisk) (1)fdisk -l 查看磁盘分区表 ########################################################### [root@localhost ~]# fdisk -l 磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x0001038f 设备 Boot Start End Blocks Id System /dev/sda1 * 2048 2099199 1048576 83 Linux /dev/sda2 2099200 41943039 19921920 8e Linux LVM 磁盘 /dev/mapper/cl-root:18.2 GB, 18249416704 字节,35643392 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘 /dev/mapper/cl-swap:2147 MB, 2147483648 字节,4194304 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 ########################################################### (2)fdisk 磁盘名称 #对硬盘进行分区 (3)分区实例:fdisk /dev/sdb ########################################################### [root@localhost ~]# fdisk /dev/sdb 欢迎使用 fdisk (util-linux 2.23.2)。 更改将停留在内存中,直到您决定将更改写入磁盘。 使用写入命令前请三思。 Device does not contain a recognized partition table 使用磁盘标识符 0x951146d9 创建新的 DOS 磁盘标签。 命令(输入 m 获取帮助):m #在此输入指令m,获取帮助 命令操作 a toggle a bootable flag #设置分区启动标识(*) b edit bsd disklabel #编辑bsd磁盘标签 c toggle the dos compatibility flag #设置dos兼容模式 d delete a partition #删除一个分区 g create a new empty GPT partition table #创建新的空GPT分区 G create an IRIX (SGI) partition table#创建新的SGI分区表 l list known partition types #显示分区类型 m print this menu #显示帮助菜单 n add a new partition #创建新分区 o create a new empty DOS partition table #创建新分区表 p print the partition table #显示分区列表信息 q quit without saving changes #不保存退出 s create a new empty Sun disklabel#创建新的sun磁盘标签 t change a partition's system id #修改分区id,l查看id u change display/entry units #修改容量单位 v verify the partition table #验证分区表 w write table to disk and exit #保存并推出 x extra functionality (experts only) #扩展功能 命令(输入 m 获取帮助):n #创建新分区 Partition type: p primary (0 primary, 0 extended, 4 free) #创建主分区 e extended #创建扩展分区 Select (default p): p #创建主分区 分区号 (1-4,默认 1):1 #选择主分区编号1 起始 扇区 (2048-20971519,默认为 2048): #回车,使用默认2048开始分区 Last 扇区, +扇区 or +size{K,M,G} (2048-20971519,默认为 20971519):+2G #指定创建分区大小为2G 分区 1 已设置为 Linux 类型,大小设为 2 GiB 命令(输入 m 获取帮助):p #显示分区信息(是否创建成功) 磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0xb46e950b 设备 Boot Start End Blocks Id System /dev/sdb1 2048 4196351 2097152 83 Linux 令(输入 m 获取帮助):n #创建新分区 Partition type: p primary (1 primary, 0 extended, 3 free) e extended Select (default p): e #创建扩展分区 分区号 (2-4,默认 2):2 #选择分区号为2 起始 扇区 (4196352-20971519,默认为 4196352): #回车 将使用默认值 4196352 Last 扇区, +扇区 or +size{K,M,G} (4196352-20971519,默认为 20971519): #回车将剩余空间全部划分为扩展分区 将使用默认值 20971519 分区 2 已设置为 Extended 类型,大小设为 8 GiB 命令(输入 m 获取帮助):n #创建新分区 Partition type: p primary (1 primary, 1 extended, 2 free) l logical (numbered from 5) #创建逻辑分区 Select (default p): l #创建逻辑分区 添加逻辑分区 5 起始 扇区 (4198400-20971519,默认为 4198400): #回车 将使用默认值 4198400 Last 扇区, +扇区 or +size{K,M,G} (4198400-20971519,默认为 20971519):+2G #创建逻辑分区大小为2G 分区 5 已设置为 Linux 类型,大小设为 2 GiB 命令(输入 m 获取帮助):p #显示分区列表,确认是否创建 磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x5f024b01 设备 Boot Start End Blocks Id System /dev/sdb1 2048 4196351 2097152 83 Linux /dev/sdb2 4196352 20971519 8387584 5 Extended /dev/sdb5 4198400 8392703 2097152 83 Linux 命令(输入 m 获取帮助):d #删除分区 分区号 (1,2,5,默认 5):5 #选择删除的分区编号5 分区 5 已删除 命令(输入 m 获取帮助):p #显示分区列表,确认是否删除 磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x5f024b01 设备 Boot Start End Blocks Id System /dev/sdb1 2048 4196351 2097152 83 Linux /dev/sdb2 4196352 20971519 8387584 5 Extended 命令(输入 m 获取帮助):w #保存并退出 The partition table has been altered! Calling ioctl() to re-read partition table. 正在同步磁盘。 ########################################################### 如果想要系统读取到新分区列表信息,有两种方式:对系统进行重启;或使用partprobe命令让内核立即读取分区列表。 [root@localhost ~]# partprobe /dev/sdb 2.2GPT分区方式(parted) 对与上述传统MBR分区方式而言,最多4个主分区,无法创建大于2TB分区。现在有一种新的GPT分区方式,不受以上限制,此外,GPT分区方式,提供了分区表冗余用于实现分区表的备份与安全。 改变分区方式后,原有磁盘中的数据将全部丢失,因此需要做好数据备份。 命令格式:parted [选项] [磁盘(命令)(参数)] parted主要选项:-l 显示所有分区列表 主要操作命令: 命令 功能 cp 将文件系统复制到另一个分区 mklabel 分区表格式 (mklabel 分区表格式) 指定分区表格式 mkpart mkpart 分区类型 [文件系统类型] 开始 结束,创建一个分区 rm NUMBER 删除指定分区 print 打印分区表信息 name NUMBER NAME 修改指定分区号对应的名称 rescue START END 挽救临近“起始点”、“终止点”的遗失的分区 set NUMBER FLAG STATE 修改指定分区号的分区标识 select DEVICE 选择要编辑的设备 help 显示帮助命令 quit 退出 案例选用第三块磁盘: (1)修改磁盘分区表类型 [root@localhost ~]# parted /dev/sdc mklabel gpt #修改分区表为GPT格式 警告: The existing disk label on /dev/sdc will be destroyed and all data on this disk will be lost. Do you want to continue? #磁盘数据将丢失,是否继续 是/Yes/否/No? yes #继续 修改完成后,通过print指令查看修改结果。 [root@localhost ~]# parted /dev/sdc print Model: VMware, VMware Virtual S (scsi) Disk /dev/sdc: 10.7GB Sector size (logical/physical): 512B/512B Partition Table: gpt #分区表类型为GPT Disk Flags: Number Start End Size File system Name 标志 (2)创建及删除分区 创建新分区需要使用parted命令的mkpart指令,格式如下: parted [磁盘] mkpart 分区类型 文件系统类型 开始 结束 其中,mkpart指令为创建新的分区,分区类型有primary(主分区)、logical(逻辑分区)、extended(扩展分区),文件类型有:fat16、fat32、ext2、ext3、ext4、Linux-swap等,开始于结束标记分区的开始和结束位置(默认单位MB)。 创建分区:创建主分区大小(1Mb-2G),格式ext4 [root@localhost ~]# parted /dev/sdc mkpart primary ext4 1 2G 查看是否创建成功: [root@localhost ~]# parted /dev/sdc print Model: VMware, VMware Virtual S (scsi) Disk /dev/sdc: 10.7GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name 标志 1 1049kB 2000MB 1999MB primary 删除已创建的分区 [root@localhost ~]# parted /dev/sdc rm 1 #rm接分区号,删除 查 看是否创建已删除: [root@localhost ~]# parted /dev/sdc print Model: VMware, VMware Virtual S (scsi) Disk /dev/sdc: 10.7GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name 标志 [root@localhost ~]# 三、磁盘格式化及挂载 对磁盘进行分区后,需要对磁盘进行分区及挂载。 3.1格式化 Linux系统使用mkfs命令对磁盘进行格式化。 使用权限 : 超级使用者 格式: mkfs [-V] [-t fstype] [fs-options] filesys [blocks] [-L Lable] 主要参数: 参数 功能 -V 详细显示模式 -t 指定文件系统类型 Eg: (1)对/dev/sdb1分区进行格式化,指定文件系统格式ext4 [root@localhost ~]# mkfs -t ext4 /dev/sdb1 (2)对交换分区使用mkswap进行格式化 #将/dev/sdb2格式化为交换分区 [root@localhost ~]# mkswap /dev/sdb2 3.2挂载分区 将磁盘分区、格式化后需要将分区进行挂载,然后进行使用。两种方式:(1)mount命令直接挂载,系统重启后失效;(2)修改/etc/fstab文件,系统重启后任然有效。 Eg: (1)将分区/dev/sdb1挂载到/mnt/sdb1目录 [root@localhost ~]# mkdir /mnt/sdb1 [root@localhost ~]# mount /dev/sdb1 /mnt/sdb1 [root@localhost ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/mapper/cl-root 17G 1.1G 16G 7% / devtmpfs 478M 0 478M 0% /dev tmpfs 489M 0 489M 0% /dev/shm tmpfs 489M 6.7M 482M 2% /run tmpfs 489M 0 489M 0% /sys/fs/cgroup /dev/sda1 1014M 139M 876M 14% /boot tmpfs 98M 0 98M 0% /run/user/0 /dev/sdb1 2.0G 6.0M 1.8G 1% /mnt/sdb1 [root@localhost ~]# 个人公众号: