[Linux实用命令]硬盘分区与管理

引言

这篇文章主要介绍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接口:

1 #可以从下面的信息分析出,我的笔记本有两块硬盘,主盘sda,从盘sdb,其中sda又划分了两个主分区分别是sda1和sda2,而从盘sdb划分了三个主分区sdb[1-3],以及逻辑分区sdb[4-5],逻辑分区占用一个主分区号,所以sdb3这个主分区号实际上下面是两个逻辑分区4-5
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下面的一个硬盘管理命令。可以查看当前环境有几块硬盘,每块硬盘的大小,每块硬盘上都划分了那些区域,还可以对硬盘进行分区、删除、改变分区文件系统类型等操作:

01 #对硬盘的操作需要root权限,使用sudo执行命令,查看当前环境下硬盘的全局信息
02 [root@localhost ~]# sudo fdisk -l
03  
04 #这是主硬盘/dev/sda的综合信息,部分字段解释如下:
05 #硬盘类型sd,说明硬盘接口是"SAS/SCSI/SATA/USB"中的一种,总大小42.9 GB;
06 #255 heads : 255个磁头;
07 #63 sectors/track : 63个扇区;
08 #5221 cylinders : 5221个磁柱;
09 #Units = 每个磁柱容量;
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
16  
17 #这是主硬盘/dev/sda上的分区情况,部分字段解释如下:
18 #Device下面显示的是设备分区号,Boot下面带*号的是引导分区;
19 #Start和End是起始和结束的磁柱,通过起始和结束磁柱可以计算Blocks大小,计算方法(End-Start)*(Units/1024)小数点四舍五入;
20 #Id是系统对文件系统的编号(83=Linux文件系统ext,7=NTFS文件系统);
21 #System是文件系统的名称和ID对应,文件系统编号稍后会介绍到;
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
25  
26 #还没有分区的从盘/dev/sdb
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后面接硬盘路径即可,新建主分区实例:

01 #进入/dev/sdb这块硬盘的命令模式
02 [root@localhost ~]# sudo fdisk /dev/sdb
03 Command (m for help): m  #输入m,查看命令帮助
04  
05 Command action
06    a   toggle a bootable flag
07    b   edit bsd disklabel
08    c   toggle the dos compatibility flag
09    d   delete a partition
10    l   list known partition types
11    m   print this menu
12    n   add a new partition
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)
22  
23 #上面是fdisk支持的全部命令,下面是几个常用命令的解释:
24 # d 删除一个分区;
25 # l 显示一个分区文件类型列表,在这个列表会看所有的分区文件类型所对应的数字;
26 # t 改变分区类型(配合l使用);
27 # m 列出帮助信息;
28 # n 新建一个分区;
29 # p 列出分区表(fdisk -l是显示所有硬盘的分区表,这里的p是显示当前硬盘的分区表);
30 # w 保存当前操作然后退出;
31 # q 不保存退出;
32  
33 #在这块硬盘上划分一个主分区
34 Command (m for help): n  #输入n回车
35 Command action  #询问是创建一个扩展分区(e),还是主分区(p)
36    e   extended
37    p   primary partition (1-4)
38 p      #输入p,创建一个主分区
39  
40 Partition number (1-4): 1 #输入主分区编号,因为这是块新硬盘,所以输入1
41  
42 First cylinder (1-2610, default 1): #输入起始磁柱,一般默认回车就可以
43  
44 #输入这个新的分区的大小,单位可以是K,M,G,本例输入+1000M,加号不能省略
45 Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): +1000M
46  
47 Command (m for help): p   #查看一下当前分区表
48  
49 #刚才创建的分区已经显示出来了
50 Device    Boot  Start    End     Blocks    Id  System
51 /dev/sdb1         1      128     1028128+  83  Linux
52  
53 Command (m for help): w
54 #保存分区操作退出,如果觉得前面的操作不满意,不想保存退出,可以输入q不保存退出

c.使用fdisk改变分区文件系统类型

改变分区文件系统类型:

01 #再次进入这块硬盘的命令模式
02 [root@localhost ~]# sudo fdisk /dev/sdb
03  
04 Command (m for help): l #输入l查看当前可用的文件系统类型
05 ...
06  6  FAT16
07  7  HPFS/NTFS
08 #fdisk是支持NTFS文件系统的,下面就将刚才的主分区改成这个文件系统
09  
10 Command (m for help): t  #输入t
11  
12 #输入要改变的分区号,因为没有其他分区了,默认自动输入了1
13 Selected partition 1
14 Hex code (type L to list codes): 7   #改变成7,即NTFS文件系统
15 Changed system type of partition 1 to 7 (HPFS/NTFS)
16  
17 Command (m for help): p #查看一下,ID变成了7
18  
19 Device    Boot  Start   End    Blocks   Id  System
20 /dev/sdb1        1      128  1028128+   7  HPFS/NTFS
21  
22 Command (m for help): w #保存退出

d.使用fdisk创建扩展分区

下面这个实例演示如何新建一个扩展分区,并且在扩展分区上面再划分出逻辑分区:

01 [root@localhost ~]# sudo fdisk /dev/sdb
02  
03 Command (m for help): n
04 Command action
05    e   extended
06    p   primary partition (1-4)
07 e       #输入e,创建扩展分区
08 Partition number (1-4): 1  #输入扩展分区号,故意输入1,提示1已经使用
09 Partition 1 is already defined.  Delete it before re-adding it.
10  
11 Command (m for help): n
12 Command action
13    e   extended
14    p   primary partition (1-4)
15 e
16 Partition number (1-4): 2  #输入分区号2
17 First cylinder (129-2610, default 129): #默认起始磁柱,回车
18 Using default value 129
19  
20 #输入这个扩展分区的大小,本例划分2G
21 Last cylinder, +cylinders or +size{K,M,G} (129-2610, default 2610): +2G
22  
23 Command (m for help): p #查看当前分区表
24  
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
28  
29 Command (m for help): n  #在此基础上再新建分区
30 Command action
31    l   logical (5 or over) #只要已经存在扩展分区,就会出现逻辑分区选项
32    p   primary partition (1-4)
33 l      #输入l,在这个扩展分区上创建一个逻辑分区
34 First cylinder (129-390, default 129): #回车
35 Using default value 129
36  
37 #划分1G给这个逻辑分区
38 Last cylinder, +cylinders or +size{K,M,G} (129-390, default 390): +1G
39  
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
45  
46 #在第一部分已经详细讲解过,一个扩展分区也占用一个主分区号,逻辑分区的分区号是从5开始的(因为主分区号的范围是1~4,就算没有那么多主分区,分区号也会保留着)
47 Command (m for help): w #保存退出

e.使用fdisk删除分区

01 [root@localhost ~]# sudo fdisk /dev/sdb
02  
03 Command (m for help): d  #输入d回车
04 Partition number (1-5): 5 #输入要删除的分区号
05  
06 Command (m for help): p  #逻辑分区已经被删除了
07  
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
11  
12 Command (m for help): q
13 #这里我不保存刚才的删除分区操作,因为等下要用来演示格式化操作

分区完成后就可以对分区进行格式化操作了,只有被格式化之后,这个分区才能被挂载使用,格式化前必须重启系统,新建的分区才能被识别(不同的系统可能不一样,一部分Linux发行版分区完成后直接就能格式化无需重启)。

0×3.使用mkfs格式化分区

1 #在CentOS中mkfs所支持的文件系统类型
2 [root@localhost ~]# sudo mkfs.#在这个.后面连续按两下tab键,下面就是支持的格式化类型
3 mkfs.btrfs   mkfs.ext2    mkfs.ext4    mkfs.minix   mkfs.vfat   
4 mkfs.cramfs  mkfs.ext3    mkfs.fat     mkfs.msdos   mkfs.xfs
5  
6 #将/dev/sdb5格式化成ext4文件系统
7 [root@localhost ~]# sudo mkfs.ext4 /dev/sdb5

0×4.使用mount挂载分区

使用下面的命令,将/dev/sdb5挂载到/home/qing/sdb5:

01 #在自己的家目录创建一个文件夹sdb5
02 qing@qingsword.com:~$  mkdir ~/sdb5
03  
04 #将/dev/sdb5分区挂载到刚才创建的文件夹中
05 qing@qingsword.com:~$  sudo mount /dev/sdb5 ~/sdb5
06  
07 #因为挂载操作是root权限的,所以挂载后sdb5目录会变成只有root才能读写,当前用户需要读写请使用下面的命令将这个目录的用户和组都改为当前用户,将qing替换成你自己的用户名
08 qing@qingsword.com:~$  sudo chown -R qing:qing ~/sdb5
09  
10 #如果不需要使用了,可以使用下面的命令取消挂载
11 qing@qingsword.com:~$  sudo umount ~/sdb5

挂载完成后,对目录~/sdb5的读写操作实际上就是直接读写的/dev/sdb5这个逻辑分区,但系统重启后,挂载会失效,可以使用下面的方法来让系统自动挂载。

a.编辑/etc/fstab文件实现自动挂载

1 #使用gedit编辑器打开这个文件
2 qing@qingsword.com:~$  sudo gedit /etc/fstab
3 #在已有内容的后面新起一行,写入下面了内容;
4 #第一个参数为你要挂载的分区(/dev/sdb5);
5 #第二个参数为挂载的位置(/sdb5文件夹必须存在);
6 #第三个参数是分区文件类型(ext4),格式化的时候的那个类型,后面的参数默认即可;
7 /dev/sdb5   /home/qing/sdb5  ext4   defaults    0  0
8  
9 #保存退出,这样每次系统重启都会自动将/dev/sdb5分区挂载到/home/qing/sdb5目录中了

0×5.创建SWAP分区

现在假设我们系统没有分配SWAP交换分区,而后我们想添加一个SWAP分区(或者扩充现有的SWAP分区大小),可以先使用fdisk从空余磁盘中取出一部分空间,然后激活成SWAP分区,请看下面的实例:

01 #分区的步骤这里就不给出了,只是要注意在分区时使用
02 t参数将分区类型替换成82交换分区,假设我分了一个/dev/sdb1分区大小是5G,下面将这个分区的类型改成Linux swap
03 ....省略分区步骤....
04 Command (m for help): t
05 Selected partition 1
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!
10  
11 #使用mkswap将分区格式化成SWAP分区
12 [root@qingsword.com:~]# mkswap /dev/sdb1
13  
14 #现在系统中的swap分区大小是0
15 [root@qingsword.com:~]# free -h
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
19 Swap:           0B         0B         0B
20  
21 #使用swapon让上面格式化后的swap分区起作用
22 [root@qingsword.com:~]# swapon /dev/sdb1
23  
24 #再次查看,swap分区的大小变成了5G
25 [root@qingsword.com:~]# free -h
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
29 Swap:         5.0G         0B       5.0G
30  
31 #最后,如果想要让swap分区开机挂载使用,需要将下面这一句信息写入/etc/fstab文件中
32 /dev/sdb1 swap swap defaults 0 0

*转载请注明来自:晴刃(QingSword.COM)

*原文连接:http://www.qingsword.com/qing/917.html

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值