在Linux中,当我们在系统中添加一个新硬盘时,我们无法使用它,因为它还没有被分区和格式化,只有当我们对新硬盘进行分区和格式化时,将其挂载到某个目录下,然后,我们要学习三个硬盘分区工具,fdisk、gdisk、parted,分别针对MBR分区格式、GPT分区格式,以及高级分区工具(上面两个分区都可以用,使用起来也比较复杂),请参考MBR和GPT的硬盘结构基础。
fdisk (MBR)
磁盘
-l /dev/sdX 查看硬盘分区信息
-c (centos6)开启或关闭dos模式
-u (centos6)切换显示单位(扇区/柱面)
-c (centos7) -c=dos -c=nondos
-u (centos7) -u=圆柱体 -u=扇区
fdisk /dev/sdX 用于分区
帮助
n 创建分区
d 删除分区
p 显示分区信息
t 转换分区类型
设置/取消指定分区的活动分区
L 查看分区类型
o 重建分区表
v 验证分区表,显示剩余未分区扇区数
g 创建 GPT 格式的分区 (centos7)
q 退出不保存,不保存,所有修改不生效
w 退出并保存
[root@CT6 ~]# fdisk -l /dev/sdb WARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support GPT. Use GNU Parted. Disk /dev/sdb: 536.9 GB, 536870912000 bytes -------------------------硬盘大小 255 heads, 63 sectors/track, 65270 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 -----------------------------------------未分区磁盘
[root@CT6 ~]# fdisk /dev/sdb --------------------------磁盘分区
WARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support GPT. Use GNU Parted.
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x52ce01ab.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): m ------------------------查看帮助
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
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
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)
Command (m for help): Command (m for help): n ------------------------------添加一个分区
Command action
e extended
p primary partition (1-4)
p ---------------------------------------------添加主分区
Partition number (1-4): 1 ----------------------------磁盘编号1,即:sdb1
First cylinder (1-65270, default 1): -------------------开始位置,不填写,默认就行
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-65270, default 65270): +20G -----------填写大小
Command (m for help): p --------------------------------查看刚刚的分区
Disk /dev/sdb: 536.9 GB, 536870912000 bytes
255 heads, 63 sectors/track, 65270 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: 0x52ce01ab
Device Boot Start End Blocks Id System
/dev/sdb1 1 2612 20980858+ 83 Linux -----------------创建了一个分区Command (m for help): l ------------------查看可用的分区类型 0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris 1 FAT12 39 Plan 9 82 Linux swap / So c1 DRDOS/sec (FAT- 2 XENIX root 3c PartitionMagic 83 Linux DRDOS/sec (FAT- 3 XENIX usr 40 Venix 80286 84 OS/2 hidden C: c6 DRDOS/sec (FAT- 4 FAT16 <32M 41 PPC PReP Boot 85 Linux extended c7 Syrinx 5 Extended 42 SFS 86 NTFS volume set da Non-FS data 6 FAT16 4d QNX4.x 87 NTFS volume set db CP/M / CTOS / . 7 HPFS/NTFS 4e QNX4.x 2nd part 88 Linux plaintext de Dell Utility 8 AIX 4f QNX4.x 3rd part 8e Linux LVM df BootIt 9 AIX bootable 50 OnTrack DM 93 Amoeba e1 DOS access a OS/2 Boot Manag 51 OnTrack DM6 Aux 94 Amoeba BBT e3 DOS R/O b W95 FAT32 52 CP/M 9f BSD/OS e4 SpeedStor c W95 FAT32 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi eb BeOS fs e W95 FAT16 (LBA) 54 OnTrackDM6 a5 FreeBSD ee GPT f W95 Ext'd (LBA) 55 EZ-Drive a6 OpenBSD ef EFI (FAT-12/16/ 10 OPUS 56 Golden Bow a7 NeXTSTEP f0 Linux/PA-RISC b 11 Hidden FAT12 5c Priam Edisk a8 Darwin UFS f1 SpeedStor 12 Compaq diagnost 61 SpeedStor a9 NetBSD f4 SpeedStor 14 Hidden FAT16 <3 63 GNU HURD or Sys ab Darwin boot f2 DOS secondary 16 Hidden FAT16 64 Novell Netware af HFS / HFS+ fb VMware VMFS 17 Hidden HPFS/NTF 65 Novell Netware b7 BSDI fs fc VMware VMKCORE 18 AST SmartSleep 70 DiskSecure Mult b8 BSDI swap fd Linux raid auto 1b Hidden W95 FAT3 75 PC/IX bb Boot Wizard hid fe LANstep 1c Hidden W95 FAT3 80 Old Minix be Solaris boot ff BBT 1e Hidden W95 FAT1 Command (m for help):
Command (m for help): w -----------------------保存并退出 The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
gdisk (GPT)
磁盘
-l /dev/sdX 查看分区信息
磁盘
(?|m)帮助
n创建分区
d 删除分区
c 更改分区名称
我显示分区的详细信息
p显示分区信息
t 转换分区类型
设置/取消指定分区的活动分区
l检查分区类型
o 重建分区表
v验证分区表,显示剩余的未分区扇区数
qExit不保存,不保存,所有修改不生效
w退出并保存
Gdisk 用于创建 GPT 分区。我们可以看到gdisk和fdisk的开头有些不同。
[root@CT6 ~]# gdisk /dev/sdb GPT fdisk (gdisk) version 0.8.10 Partition table scan: MBR: not present BSD: not present APM: not present GPT: present Found valid GPT with corrupt MBR; using GPT and will write new protective MBR on save. Command (? for help):
一个 GPT 分区
Command (? for help): o This option deletes all partitions and creates a new protective MBR. Proceed? (Y/N): y Command (? for help): p Disk /dev/sdb: 1048576000 sectors, 500.0 GiB ----------------磁盘大小,显示扇区数 Logical sector size: 512 bytes ---------------------------扇区大小 Disk identifier (GUID): E072194E-DA-449B-9CF9-E5171235E6D3 Partition table holds up to 128 entries First usable sector is 34, last usable sector is 1048575966 -------------------第一个有用的扇区在34,最后一个有用的扇区在104857966 Partitions will be aligned on 2048-sector boundaries Total free space is 1048575933 sectors (500.0 GiB) Number Start (sector) End (sector) Size Code Name Command (? for help):
更改磁盘类型
Command (? for help): t ------------------------------------------更改磁盘类型 Using 1 Current type is 'Linux filesystem' Hex code or GUID (L to show codes, Enter = 8300): 8e00 Changed type of partition to 'Linux LVM' -------------------------更改为"Linux LVM" Command (? for help): p Disk /dev/sdb: 1048576000 sectors, 500.0 GiB Logical sector size: 512 bytes Disk identifier (GUID): E072194E-DA-449B-9CF9-E5171235E6D3 Partition table holds up to 128 entries First usable sector is 34, last usable sector is 1048575966 Partitions will be aligned on 2048-sector boundaries Total free space is 838860733 sectors (400.0 GiB) Number Start (sector) End (sector) Size Code Name 1 2048 209717247 100.0 GiB 8E00 Linux LVM ------------------------ 改过了 Command (? for help):
我们看磁盘的时候,首先要看看磁盘是什么分区格式的,如果是MBR分区格式,最好用fdisk -l,如果是GPT分区格式的硬盘,我们用 gdisk -l 来看看。因为fdisk查看GPT格式的磁盘最多可以看到2T,所以看不到多少磁盘分区,会出错。
parted(高级分区工具)
parted 命令是 GNU 组织开发的一个强大的磁盘分区和分区大小调整工具。与 fdisk 不同,它支持调整分区大小。作为一款专为 Linux 设计的工具,它并不是为处理与 fdisk 关联的多种分区类型而构建的,但它可以处理最常见的分区格式,包括:ext2、ext3、fat16、fat3 2、NTFS, ReiserFS、JFS、XFS、UFS、HFS 和 Linux 交换分区。
分手
-h 显示帮助信息
-l 显示磁盘信息
-s 脚本模式,不提示用户
-v 显示版本号
[root@CT6 ~]# parted -h
Usage: parted [OPTION]... [DEVICE [COMMAND [PARAMETERS]...]...]
Apply COMMANDs with PARAMETERS to DEVICE. If no COMMAND(s) are given, run in
interactive mode.
OPTIONs:
-h, --help displays this help message
-l, --list lists partition layout on all block devices
-m, --machine displays machine parseable output
-s, --script never prompts for user intervention
-v, --version displays the version
-a, --align=[none|cyl|min|opt] alignment for new partitions
COMMANDs:
align-check TYPE N check partition N for TYPE(min|opt)
alignment
check NUMBER do a simple check on the file system
cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER copy file system to another partition
... ...[root@CT6 ~]# parted -l Model: VMware, VMware Virtual S (scsi) Disk /dev/sda: 215GB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 1049kB 1075MB 1074MB primary ext4 boot 2 1075MB 54.8GB 53.7GB primary ext4 3 54.8GB 108GB 53.7GB primary ext4 4 108GB 215GB 106GB extended 5 108GB 113GB 4295MB logical linux-swap(v1) 6 113GB 134GB 21.5GB logical
分开的/dev/sdX 分区
mklabel label_type 设置分区格式(MBR、GPT)
mkpart part-type [fs-type] start end (unit Mb) set partition
打印查看分区信息
help [command] 查看命令 [command] 是如何使用的
rm num 删除一个分区
set num flag status set flag (boot, root, swap) status (on, off)
退出退出
开始分区
[root@CT6 ~]# parted /dev/sdb GNU Parted 2.1 Using /dev/sdb Welcome to GNU Parted! Type 'help' to view a list of commands. (parted)
查看帮助
(parted) help
align-check TYPE N check partition N for TYPE(min|opt) alignment
check NUMBER do a simple check on the file system
cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER copy file system to another partition
help [COMMAND] print general help, or help on COMMAND --------------------查看命令如何使用
mklabel,mktable LABEL-TYPE create a new disklabel (partition table) ------------------设置磁盘类型
mkfs NUMBER FS-TYPE make a FS-TYPE file system on partition NUMBER
mkpart PART-TYPE [FS-TYPE] START END make a partition -------------------------------------------磁盘分区
mkpartfs PART-TYPE FS-TYPE START END make a partition with a file system
move NUMBER START END move partition NUMBER
name NUMBER NAME name partition NUMBER as NAME
print [devices|free|list,all|NUMBER] display the partition table, available devices, --------------查看分区
free space, all found partitions, or a particular partition
quit exit program
rescue START END rescue a lost partition near START and END
resize NUMBER START END resize partition NUMBER and its file system
rm NUMBER delete partition NUMBER -----------------------------------删除分区
select DEVICE choose the device to edit
set NUMBER FLAG STATE change the FLAG on partition NUMBER
toggle [NUMBER [FLAG]] toggle the state of FLAG on partition NUMBER
unit UNIT set the default unit to UNIT
version display the version number and copyright
information of GNU Parted
(parted) (parted) help mklabel
mklabel,mktable LABEL-TYPE create a new disklabel (partition table)
LABEL-TYPE is one of: aix, amiga, bsd, dvh, gpt, mac, msdos, pc98, sun, loop --------------可以设置的类型
(parted) 
(parted) mklabel gpt ------------------------------设置GPT分区
(parted) print Model: VMware, VMware Virtual S (scsi) Disk /dev/sdb: 537GB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags (parted)
(parted) help mkpart ----------------------------------查看分区命令如何用
mkpart PART-TYPE [FS-TYPE] START END make a partition
PART-TYPE is one of: primary, logical, extended
FS-TYPE is one of: ext4, ext3, ext2, fat32, fat16, hfsx, hfs+, hfs, jfs, swsusp,
linux-swap(v1), linux-swap(v0), ntfs, reiserfs, hp-ufs, sun-ufs, xfs, apfs2, apfs1,
asfs, amufs5, amufs4, amufs3, amufs2, amufs1, amufs0, amufs, affs7, affs6, affs5,
affs4, affs3, affs2, affs1, affs0, linux-swap, linux-swap(new), linux-swap(old)
START and END are disk locations, such as 4GB or 10%. Negative values count from
the end of the disk. For example, -1s specifies exactly the last sector.
'mkpart' makes a partition without creating a new file system on the partition.
FS-TYPE may be specified to set an appropriate partition ID.
(parted) mkpart primary 0 200G -------------------------------------------------设置分区
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? ignore
(parted) print -----------------------------------------------------查看分区
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 537GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 17.4kB 200GB 200GB primary -------------------------------分区大小
(parted) quit
Information: You may need to update /etc/fstab. 该命令为实时有效命令。当我们划分一个区域时,它可以直接生效而不结束它。与fdisk和gdisk不同,需要先退出才能保存生效。
lsblk
列出块设备
lsblk 命令用于列出所有可用块设备的信息,也可以显示它们之间的依赖关系,但不列出 RAM 盘的信息。块设备包括硬盘、闪存盘、光盘等。
例如:
lsblk /dev/sdb
[root@CT6 ~]# lsblk /dev/sda NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 200G 0 disk ├─sda1 8:1 0 1G 0 part /boot ├─sda2 8:2 0 50G 0 part / ├─sda3 8:3 0 50G 0 part /app ├─sda4 8:4 0 1K 0 part ├─sda5 8:5 0 4G 0 part [SWAP] └─sda6 8:6 0 20G 0 part
检查内核是否已经识别出新分区:
cat /proc/partations
[root@CT6 ~]# cat /proc/partitions major minor #blocks name 8 0 209715200 sda 8 1 1048576 sda1 8 2 52428800 sda2 8 3 52428800 sda3 8 4 1 sda4 8 5 4194304 sda5 8 6 20980890 sda6 8 16 524288000 sdb 8 17 195312483 sdb1
我们对原硬盘的未使用空间进行分区后,在物理设备上已经完成,可以用fdisk -l查看,但是内存信息中没有新的分区信息。这时候我们就需要手动更新分区表了。 centOS6用partx,5或7用partprobe(这个6有BUG)
partx -a /dev/sda 更新内存中的磁盘分区表信息
partx -d --nr 6 /dev/sda 删除内存中被删除的第六个分区的信息
一开始我们有五个分区,不管是内存中的信息还是物理硬盘中的信息
[root@CT6 ~]# lsblk /dev/sda NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 200G 0 disk ├─sda1 8:1 0 1G 0 part /boot ├─sda2 8:2 0 50G 0 part / ├─sda3 8:3 0 50G 0 part /app ├─sda4 8:4 0 1K 0 part └─sda5 8:5 0 4G 0 part [SWAP]
[root@CT6 ~]# fdisk -l /dev/sda | grep "^/dev/sda*" /dev/sda1 * 1 131 1048576 83 Linux /dev/sda2 131 6658 52428800 83 Linux /dev/sda3 6658 13185 52428800 83 Linux /dev/sda4 13185 26109 103808000 5 Extended /dev/sda5 13186 13708 4194304 82 Linux swap / Solaris
接下来,我们创建一个分区
Command (m for help): n
First cylinder (13185-26109, default 13185): 14000
Last cylinder, +cylinders or +size{K,M,G} (14000-26109, default 26109): +10G
Command (m for help): p
Disk /dev/sda: 214.7 GB, 214748364800 bytes
255 heads, 63 sectors/track, 26108 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: 0x0007a903
Device Boot Start End Blocks Id System
/dev/sda1 * 1 131 1048576 83 Linux
/dev/sda2 131 6658 52428800 83 Linux
/dev/sda3 6658 13185 52428800 83 Linux
/dev/sda4 13185 26109 103808000 5 Extended
/dev/sda5 13186 13708 4194304 82 Linux swap / Solaris
/dev/sda6 14000 15305 10490444+ 83 Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.我们划分完区域后,如上图红色字体显示,我们刚刚划分的区域还没有读入内存,也就是说fdisk可以读取,lsblk不行
[root@CT6 ~]# fdisk -l /dev/sda | grep "^/dev/sda.*" /dev/sda1 * 1 131 1048576 83 Linux /dev/sda2 131 6658 52428800 83 Linux /dev/sda3 6658 13185 52428800 83 Linux /dev/sda4 13185 26109 103808000 5 Extended /dev/sda5 13186 13708 4194304 82 Linux swap / Solaris /dev/sda6 14000 15305 10490444+ 83 Linux [root@CT6 ~]# lsblk /dev/sda NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 200G 0 disk ├─sda1 8:1 0 1G 0 part /boot ├─sda2 8:2 0 50G 0 part / ├─sda3 8:3 0 50G 0 part /app ├─sda4 8:4 0 1K 0 part └─sda5 8:5 0 4G 0 part [SWAP]
接下来我们更新分区信息
[root@CT6 ~]# partx -a /dev/sda BLKPG: Device or resource busy error adding partition 1 BLKPG: Device or resource busy error adding partition 2 BLKPG: Device or resource busy error adding partition 3 BLKPG: Device or resource busy error adding partition 4 BLKPG: Device or resource busy error adding partition 5 [root@CT6 ~]# lsblk /dev/sda NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 200G 0 disk ├─sda1 8:1 0 1G 0 part /boot ├─sda2 8:2 0 50G 0 part / ├─sda3 8:3 0 50G 0 part /app ├─sda4 8:4 0 1K 0 part ├─sda5 8:5 0 4G 0 part [SWAP] └─sda6 8:6 0 10G 0 part
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/dianqi/article-381162-1.html
专家说
美国对英国的胜利不就是这样的吗