Linux平台及应用
潘小玲 郑国华 丁敏

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

硬盘及分区

发布时间:2020-04-19 20:45   发布人:潘小玲   浏览次数:590

2、硬盘及分区

2.1硬盘及其分类

硬盘(Hard Disk)是计算机配置的大容量外存储器。随着技术的进步,磁盘可以分为以下两类。

Ø  机械硬盘:机械硬盘主要由盘片、磁头、盘片转轴及控制电机、磁头控制器、数据转换器、接口、缓存等几个部分组成。

Ø  固态硬盘(Solid State Disk, SSD):是由固态电子存储芯片阵列而制成的,无机械部件。固态硬盘具有读写速度很快、更加抗震,无噪音且工作温度范围大等优点,但现在的固态硬盘都有固定的读写次数限制且价格较机械硬盘昂贵。

2.2硬盘接口方式

硬盘的接口方式主要有PATA (俗称IDE)接口、SATA接口、SCSI接口、SAS接口和FC-AL接口。个人桌面多采用SATA接口;服务器多采用SCSI、SAS和FC-AL接口。

如果说服务器是网络数据的核心,那么服务器硬盘就是这个核心的数据仓库,所有的软件和用户数据都存储在这里。服务器-般需要7x24 小时不间断运行,其硬盘也要24小时不停地运转。因此,选择服务器硬盘应从如下几方面考虑:

Ø  较高的稳定性和可靠性。

Ø  支持热插拔。

Ø  较快的硬盘速度。

为了使硬盘能够适应大数据量、超长工作时间的工作环境,服务器一般采用高速、稳定、安全的SAS、SCSI和FC-AL接口硬盘。

Ø  FC-AL 接口主要应用于任务级的关键数据的大容量实时存储。可以满足高性能、高可靠和高扩展性的存储需要。

Ø  SCSI 接口主要应用于商业级的关键数据的大容量存储。

Ø  SAS接口是个全才,可以支持SAS和SATA磁盘,很方便地满足不同性价比的存储需求,是具有高性能、高可靠和高扩展性的解决方案,因而被业界公认为取代并行SCSI的不二之选。

Ø  SATA 接口主要应用于非关键数据的大容量存储,近线存储和非关键性应用(如替代以前使用磁带的数据备份)。

确定了硬盘的接口和类型后,就要重点考察影响硬盘性能的技术指标,根据转速、单碟容量、平均寻道时间、缓存等因素,并结合资金预算,选定性价比最合适的硬盘方案。

2.3使用fdisk分区

Linux环境下通常使用fdisk工具对磁盘进行分区。fdisk 命令的常用格式如下:

# fdisk <硬盘设备名>  //进入fdisk的交互操作方式,对指定的硬盘进行分区操作。

# fdisk -l <硬盘设备名>  //在命令行方式下显示指定硬盘的分区表信息。

在fdisk的交互操作方式下可以使用若干子命令,如下表所示。

fdisk 的子命令

命令

说     明

命令

说        明

a

为分区设置可启动标志

p

列出硬盘分区表

d

删除一个硬盘分区

q

退出fdisk,不保存更改

l

列出所有支持的分区类型

t

更改分区类型

m

列出所有命令说明

u

切换所显示的分区大小的单位

n

创建一个新的分区

w

把设置写入硬盘分区表,然后退出

o

创建DOS类型的空分区表

g

创建GPT类型的空分区表

注意:

当前fdisk 还不能完全支持GUID分区表( GUID Partition Table, GPT), 因

此在创建大于2TB的分区时应使用完全支持GPT的gdisk 工具,其使用方法与fdisk完全一致。

 

操作步骤4.1使用fdisk分区工具

//对系统中的第2块SCSI/SAS/SATA接口的硬盘进行分区操作

# fdisk /dev/sdb

欢迎使用fdisk (util-linux 2.23.2)。

 

更改将停留在内存中,直到您决定将更改写入磁盘。

使用写入命令前请三思。

 

命令(输入m获取帮助): m

//创建DOS类型的空分区表

命令(输入m获取帮助):。

使用磁盘标识符0x9dc5f4a0 创建新的DOS磁盘标签。

//创建新的分区

命令(输入m获取帮助): n

Partition type;

p   primary (0 primary, 0 extended, 4 free)

e   extended

Select (default p):    //直接回车,创建主分区

分区号(1-4, 默认1): //直接回车,创建编号为1的主分区

起始扇区(2048-41943039, 默认为2048): //直接回车,使用默认的起始扇区位置将使用默认值2048

Last扇区, 扇区or size{K,M,G} (2048-41943039,默认为41943039):

//直接回车,分区大小截至最后一个柱面

将使用默认值41943039

分区1已设置为Linux类型,大小设为20 GB

//显示当前分区表

命令(输入m获取帮助): p

磁盘/dev/sdb: 21.5 GB, 21474836480字节,41943040 个扇区

Units=扇区of 1* 512 = 512 bytes

扇区大小(逻辑/物理): 512字节/512 字节

VO大小(最小/最佳): 512 宇节/512字节

磁盘标签类型: dos

磁盘标识符: 0x9dc5f4a0

设备     Boot      Start     End       Blocks       Id      System

/dev/sdb1   2048           41943039    20970496     33       Linux

//删除已经存在的分区

命令(输入m获取帮助): d

已选择分区1

分区1已删除

//由于当前只有一个分区,所以没有被删除分区的编号提示选择,直接将此分区删除

//若当前存在多个分区,将出现分区的编号提示选择

 

//显示当前分区表,分区已经被删除

命令(输入m获取帮助): p

磁盘/dev/sdb: 21.5 GB, 21474836480字节,41943040 个扇区

Units=扇区of 1 * 512= 512 bytes

扇区大小(逻辑/物理): 512 字节/512字节

1O大小(最小最佳): 512字节/512字节

磁盘标签类型: dos

磁盘标识符: 0x9dc5f4a0

设备   Boot   Start  End   Blocks   Id   System

//创建大小为1GB的1号主分区

命令(输入m获取帮助): n

Partition type:

p  primary (0 primary, 0 extended, 4 free)

e  extended

Select (default p):p

分区号(1-4, 默认I):

起始扇区(2048-41943039, 默认为2048):

将使用默认值2048

Last扇区, 扇区or size{K,M,G} (2048 41943039,默认为41943039): 1G

分区1已设置为Linux 类型,大小设为1 GB

//创建大小为2GB的2号主分区

命令(输入m获取帮助): n

Partition type:

p  primary (1 primary, 0 extended, 3 free)

e  extended

Select (default p):p

分区号(2-4, 默认2):

起始扇区(2099200-41943039, 默认为2099200):

将使用默认值2099200

Last扇区, 扇区or size{K,M,G} (2099200-41943039,默认为41943039): 2G

分区2已设置为Linux 类型,大小设为2 GB

//对所有磁盘剩余空间创建编号为3的扩展分区

命令(输入m获取帮助): n

Partition type:

p  primary (2 primary, 0 extended,2 free)

e  extended

Select (default p): e

分区号(3,4, 默认3):

起始扇区(6293504 41943039,默认为6293504):

将使用默认值6293504

Last扇区, 扇区or size{K,M,G} (6293504-41943039,默认为41943039);

将使用默认值41943039

分区3已设置为Extended类型,大小设为17 GB

//创建大小为5GB的逻辑分区

命令(输入m获取帮助): n

Partition type:

p  primary (2 primary, 1 extended, 1 free)

1  logical (numbered from 5)

Select (default p): l

添加逻辑分区5

起始扇区(6295552 41943039,默认为6295552):

将使用默认值6295552

Last扇区, 扇区or size{K,M,G} (6295552-41943039,默认为41943039): 5G

分区5已设置为Linux 类型,大小设为5GB

//创建大小为8GB的逻辑分区

命令(输入m获取帮助): n

Partition type:

p  primary (2 primay, 1extended, 1 free)

l   logical (mumbered from 5)

Select (defaut p):1

添加逻辑分区6

起始扇区(16783360-41943039,默认为16783360):

将使用默认值16783360

Last扇区, 扇区or size{KM,G} (16783360 41943039,默认为41943039): 8G

分区6已设置为Linux类型,大小设为8GB

//显示当前分区表

命令(输入m获取帮助): p

磁盘 /dev/sdb: 21.5 GB, 21474836480字节,41943040 个扇区

Units=扇区of 1* 512=512 bytes

扇区大小(逻辑/物理): 512字节/512字节

I/O大小(最小/最佳): 512字节/512字节

磁盘标签类型: dos

磁盘标识符: 0x9dc5f4a0

设备 Boot       Start      End      Blocks     Id     System

/dev/sdb1        2048     2099199   1048576    83      Linux

/dev/sdb2      2099200     6293503   2097152    83     Linux

/dev/sdb3      6293504    41943039   17824768   5      Extended

/dev/sdb5      6295552    16781311    5242880   83     Linux

/dev/sdb6     16783360    33560575    8388608   83     Linux

 

//将1号分区更改为swap类型

命令(输入m获取帮助): t

分区号(1-3,5,6, 默认6): 1

Hex代码(输入L列出所有代码): 82

已将分区"Linux"的类型更改为“Linux swap/ Solaris”

//将2号分区更改为lvm类型

命令(输入m获取帮助): t

分区号(1-3,5,6, 默认6): 2

Hex代码(输入L列出所有代码): 8e

已将分区"Linux”的类型更改为“Linux LVM"

//将6号分区更改为lvm类型

命令(输入m获取帮助): t

分区号(1-3,5,6, 默认6): 6

Hex代码(输入L列出所有代码): 8e

已将分区"Linux." 的类型更改为“Linux LVM”

//显示当前分区表,类型已经更改

命令(输入m获取帮助): p

 

磁盘/dev/sdb: 21.5 GB, 21474836480字节,41943040个扇区

Units=扇区of 1 * 512= 512 bytes

扇区大小(逻辑/物理): 512 字节1512字节

1/O大小(最小/最佳): 512 字节/512字节

磁盘标签类型: dos

磁盘标识符: 0x9dc5f4a0

 

设备Boot     Start      End     Blocks    Id    System

/dev/sdbl      2048    2099199   1048576   82    Linux swap/ Solaris

/dev/sdb2   2099200    6293503   2097152   8e    Linux LVM

/dev/sdb3   6293504   41943039  17824768    5    Extended

/dev/sdb5   6295552   16781311   5242880   83    Linux

/dev/sdb6  16783360   33560575   8388608   8e    Linux LVM

//将当前的分区设置保存,并退出fdisk

命令(输入m获取帮助): w

The partition table has been altered!

 

Calling ioctlO to re-read parition table.

正在同步磁盘。

//通知操作系统内核分区表已更改,请求操作系统重新读取分区表

# partprobe /dev/sdb

2.4静态分区的缺点

在安装Linux的过程中,如何正确地评估各分区大小是-一个难题,因为系统管理员不但要考虑到当前某个分区需要的容量,还要预见该分区以后可能需要的容量的最大值。如果估计不准确,当遇到某个分区不够用时,系统管理员甚至可能要备份整个系统、清除硬盘、重新对硬盘分区,然后恢复数据到新分区。

某个分区空间耗尽时,通常的解决方法如下。

Ø  使用符号链接:将破坏Linux文件系统的标准结构。

Ø  使用调整分区大小的工具必须停机一段时间。

Ø  备份整个系统、清除硬盘、重新对硬盘分区,然后恢复数据到新分区,必须停机一段时间进行恢复操作。

注意:

使用静态分区,当某个分区空间耗尽时,只能暂时解决问题,而没有从根本

提示上解决问题。使用Linux 的逻辑卷管理可以从根本上解决这个问题,使用户在无须停机的情况下方便地调整各个逻辑卷的大小。