引言
这篇文章主要介绍Linux硬盘的管理。文中涉及几个常用的硬盘管理命令fdisk(硬盘分区等)、mkfs(分区的格式化)、mount(分区的挂载)。
文章目录
0×1.Linux硬盘和分区命名规则
在Linux中,硬盘是以设备文件的形式存在的,设备文件一般是在"/dev/"目录中,而对不同接口的硬盘,目录中对应的名称前缀稍有不同,下面是两种接口的硬盘前缀,其中IDE硬盘已经慢慢淡出历史舞台:
IDE接口硬盘盘符前缀为hd:
/dev/hd[a-p]
比如计算机有两块IDE接口的硬盘,那第一块IDE硬盘设备文件名就是:
/dev/hda
第二块就是:
/dev/hdb
以此类推;
SAS/SCSI/SATA/USB接口硬盘盘符前缀sd:
/dev/sd[a-p]
比如计算机有两块SATA接口的硬盘,那第一块SATA硬盘设备文件名称就是:
/dev/sda
第二块就是:
/dev/sdb
以此类推;
例如,当前我所使用的笔记本的硬盘就属于SATA接口:
2 | qing@qingsword.com:~$ ls /dev/sd* |
3 | /dev/sda /dev/sda2 /dev/sdb1 /dev/sdb3 /dev/sdb5 |
4 | /dev/sda1 /dev/sdb /dev/sdb2 /dev/sdb4 |
0×2.使用fdisk对硬盘进行管理
实验环境为CentOS7,两块硬盘分别是/dev/sda(主硬盘)和/dev/sdb(从盘,大小20G),使用/dev/sdb来演示这些命令的使用。
a.使用fdisk查看硬盘以及分区信息
fdisk是Linux下面的一个硬盘管理命令。可以查看当前环境有几块硬盘,每块硬盘的大小,每块硬盘上都划分了那些区域,还可以对硬盘进行分区、删除、改变分区文件系统类型等操作:
10 | Disk /dev/sda: 42.9 GB, 42949672960 bytes |
11 | 255 heads, 63 sectors/track, 5221 cylinders |
12 | Units = cylinders of 16065 * 512 = 8225280 bytes |
13 | Sector size (logical/physical): 512 bytes / 512 bytes |
14 | I/O size (minimum/optimal): 512 bytes / 512 bytes |
15 | Disk identifier: 0x000e6c2b |
22 | Device Boot Start End Blocks Id System |
23 | /dev/sda1 * 1 64 512000 83 Linux |
24 | /dev/sda2 64 5222 41430016 8e Linux LVM |
27 | Disk /dev/sdb: 21.5 GB, 21474836480 bytes |
28 | 255 heads, 63 sectors/track, 2610 cylinders |
29 | Units = cylinders of 16065 * 512 = 8225280 bytes |
30 | Sector size (logical/physical): 512 bytes / 512 bytes |
31 | I/O size (minimum/optimal): 512 bytes / 512 bytes |
32 | Disk identifier: 0x00000000 |
b.使用fdisk创建主分区
想要对某个盘进行操作,只需使用root权限输入fdisk后面接硬盘路径即可,新建主分区实例:
03 | Command (m for help): m |
06 | a toggle a bootable flag |
08 | c toggle the dos compatibility flag |
10 | l list known partition types |
13 | o create a new empty DOS partition table |
14 | p print the partition table |
15 | q quit without saving changes |
16 | s create a new empty Sun disklabel |
17 | t change a partition's system id |
18 | u change display/entry units |
19 | v verify the partition table |
20 | w write table to disk and exit |
21 | x extra functionality (experts only) |
34 | Command (m for help): n |
37 | p primary partition (1-4) |
40 | Partition number (1-4): 1 |
42 | First cylinder (1-2610, default 1): |
45 | Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): +1000M |
47 | Command (m for help): p |
50 | Device Boot Start End Blocks Id System |
51 | /dev/sdb1 1 128 1028128+ 83 Linux |
53 | Command (m for help): w |
c.使用fdisk改变分区文件系统类型
改变分区文件系统类型:
04 | Command (m for help): l |
10 | Command (m for help): t |
14 | Hex code ( type L to list codes): 7 |
15 | Changed system type of partition 1 to 7 (HPFS/NTFS) |
17 | Command (m for help): p |
19 | Device Boot Start End Blocks Id System |
20 | /dev/sdb1 1 128 1028128+ 7 HPFS/NTFS |
22 | Command (m for help): w |
d.使用fdisk创建扩展分区
下面这个实例演示如何新建一个扩展分区,并且在扩展分区上面再划分出逻辑分区:
03 | Command (m for help): n |
06 | p primary partition (1-4) |
08 | Partition number (1-4): 1 |
09 | Partition 1 is already defined. Delete it before re-adding it. |
11 | Command (m for help): n |
14 | p primary partition (1-4) |
16 | Partition number (1-4): 2 |
17 | First cylinder (129-2610, default 129): |
18 | Using default value 129 |
21 | Last cylinder, +cylinders or +size{K,M,G} (129-2610, default 2610): +2G |
23 | Command (m for help): p |
25 | Device Boot Start End Blocks Id System |
26 | /dev/sdb1 1 128 1028128+ 7 HPFS/NTFS |
27 | /dev/sdb2 129 390 2104515 5 Extended |
29 | Command (m for help): n |
32 | p primary partition (1-4) |
34 | First cylinder (129-390, default 129): |
35 | Using default value 129 |
38 | Last cylinder, +cylinders or +size{K,M,G} (129-390, default 390): +1G |
40 | Command (m for help): p |
41 | Device Boot Start End Blocks Id System |
42 | /dev/sdb1 1 128 1028128+ 7 HPFS/NTFS |
43 | /dev/sdb2 129 390 2104515 5 Extended |
44 | /dev/sdb5 129 260 1060258+ 83 Linux |
47 | Command (m for help): w |
e.使用fdisk删除分区
03 | Command (m for help): d |
04 | Partition number (1-5): 5 |
06 | Command (m for help): p |
08 | Device Boot Start End Blocks Id System |
09 | /dev/sdb1 1 128 1028128+ 7 HPFS/NTFS |
10 | /dev/sdb2 129 390 2104515 5 Extended |
12 | Command (m for help): q |
分区完成后就可以对分区进行格式化操作了,只有被格式化之后,这个分区才能被挂载使用,格式化前必须重启系统,新建的分区才能被识别(不同的系统可能不一样,一部分Linux发行版分区完成后直接就能格式化无需重启)。
0×3.使用mkfs格式化分区
3 | mkfs.btrfs mkfs.ext2 mkfs.ext4 mkfs.minix mkfs.vfat |
4 | mkfs.cramfs mkfs.ext3 mkfs.fat mkfs.msdos mkfs.xfs |
0×4.使用mount挂载分区
使用下面的命令,将/dev/sdb5挂载到/home/qing/sdb5:
02 | qing@qingsword.com:~$ mkdir ~/sdb5 |
05 | qing@qingsword.com:~$ sudo mount /dev/sdb5 ~/sdb5 |
08 | qing@qingsword.com:~$ sudo chown -R qing:qing ~/sdb5 |
11 | qing@qingsword.com:~$ sudo umount ~/sdb5 |
挂载完成后,对目录~/sdb5的读写操作实际上就是直接读写的/dev/sdb5这个逻辑分区,但系统重启后,挂载会失效,可以使用下面的方法来让系统自动挂载。
a.编辑/etc/fstab文件实现自动挂载
2 | qing@qingsword.com:~$ sudo gedit /etc/fstab |
7 | /dev/sdb5 /home/qing/sdb5 ext4 defaults 0 0 |
0×5.创建SWAP分区
现在假设我们系统没有分配SWAP交换分区,而后我们想添加一个SWAP分区(或者扩充现有的SWAP分区大小),可以先使用fdisk从空余磁盘中取出一部分空间,然后激活成SWAP分区,请看下面的实例:
02 | t参数将分区类型替换成82交换分区,假设我分了一个/dev/sdb1分区大小是5G,下面将这个分区的类型改成Linux swap |
04 | Command (m for help): t |
06 | Hex code ( type L to list all codes): 82 |
07 | Changed type of partition 'Linux' to 'Linux swap / Solaris' |
08 | Command (m for help): w |
09 | The partition table has been altered! |
12 | [root@qingsword.com:~] |
15 | [root@qingsword.com:~] |
16 | total used free shared buffers cached |
17 | Mem: 1.8G 1.0G 770M 9.7M 1.2M 360M |
18 | -/+ buffers/cache: 695M 1.1G |
22 | [root@qingsword.com:~] |
25 | [root@qingsword.com:~] |
26 | total used free shared buffers cached |
27 | Mem: 1.8G 1.0G 765M 9.7M 1.2M 360M |
28 | -/+ buffers/cache: 699M 1.1G |
32 | /dev/sdb1 swap swap defaults 0 0 |
*转载请注明来自:晴刃(QingSword.COM)
*原文连接:http://www.qingsword.com/qing/917.html