计算机中存放信息的主要的存储设备就是硬盘,但是硬盘不能直接使用,

必须对硬盘进行分割,分割成的一块一块的硬盘区域就是磁盘分区。

在传统的磁盘管 理中,将一个硬盘分为两大类分区:主分区和扩展分区。

由于64位的主分区列表只能记载四个分区的数据,所以最多只能有四个主分区。

为了不将存储空间浪费 掉,将一个分区设置为扩展分区,

再将扩展分区作为一个容器划分为许多的逻辑分区。这样就可以高效的利用存储空间。

一、分区

1.Linux默认可分为3个分区,分别是boot分区、swap分区和根分区。

2.磁盘分区是使用分区编辑器(partition editor)在磁盘上划分几个逻辑部分,盘片一旦划分成数个分区(Partition),不同类的目录与文件可以存储进不同的分区。越多分区,也就有更 多不同的地方,可以将文件的性质区分得更细,按照更为细分的性质,存储在不同的地方以管理文件;但太多分区就成了麻烦。空间管理、访问许可与目录搜索的方 式,依属于安装在分区上的文件系统。当改变大小的能力依属于安装在分区上的文件系统时,需要谨慎地考虑分区的大小。
在一个mbr分区表类型的硬盘中最多只能存在4个主分区。如果一个硬盘上需要超过4个以上的磁盘分块的话,那么就需要使用扩展分区了。如果使用扩展分区, 那么一个物理硬盘上最多只能3个主分区和1个扩展分区。扩展分区不能直接使用,它必须经过第二次分割成为一个一个的逻辑分区,然后才可以使用。一个扩展分 区中的逻辑分区可以任意多个。

 

mbr
主引导记录(Master Boot Record,缩写:MBR),又叫做主引导扇区,

是计算机开机后访问硬盘时所必须要读取的首个扇区,

它在硬盘上的三维地址为(柱面,磁头,扇区)=(0,0,1)。

mbr是由分区程序(如Fdisk,Parted)所产生的,

它不依赖任何操作系统,而且硬盘引导程序也是可以改变的,

从而能够实现多系统引导。

从主引导记录的结构可以知道,它仅仅包含一个64个字节的硬盘分区表。

由于每个分区信息需要16个字节,所以对于采用MBR型分区结构的硬盘(其磁盘卷标类型为MS-DOS),

最多只能识别4个主要分区。所以对于一个采用此种分区结构的硬盘来说,

想要得到4个以上的主要分区是不可能的。这里就需要引出扩展分区了。

扩展分区也是主分区(Primary partition)的一种,

但它与主分区的不同在于理论上可以划分为无数个逻辑分区,

每一个逻辑分区都有一个和MBR结构类似的扩展引导记录(EBR)。

在MBR分区表中最多4个主分区或者3个主分区+1个扩展分区,

也就是说扩展分区只能有一个,然后可以再细分为多个逻辑分区。

在Linux系统中,硬盘分区命名为sda1-sda4或者hda1-hda4(其中a表示硬盘编号可能是a、b、c等等)。

在MBR硬盘中,分区号1-4是主分区(或者扩展分区),逻辑分区号只能从5开始。

在MBR分区表中,一个分区最大的容量为2T,且每个分区的起始柱面必须在这个disk的前2T内。

你有一个3T的硬盘,根据要求你

至少要把它划分为2个分区,且最后一个分区的起始扇区要位于硬盘的前2T空间内。

 

磁盘分区方案

硬盘分区的各个分区的意义
尽管可以根据我们已经提到的分区原则,Linux 装在一个单一的大分区中,但更好的主意是将它分开。综合了单一分区的简单性和多分区的灵活性,我们推荐以下配置。请注意:如果你想安装Linux 的所有软件包的话,必须使用这里指出的较大的分区尺寸。事实上,你可能会加大我们推荐的尺寸,以使将来升级时不必重新分区。

1) 一个交换(swap)分区。交换分区用来支持虚拟内存。如果你的计算机内存小于16MB,

必须创建交换分区。即使你有更多的内存,仍然推荐使用交换分区。 交换分区的最小尺寸是你的内存的大小,

16MB(两者取大)。交换分区最大可以达到127 MB ,所以创建更大的交换分区是浪费空间。

注意,可以创建和使用一个以上的交换分区(尽管这通常安装在大的服务器上)。

2) 一个根(root)分区。根分区是”/”(根目录)所在地(注意不是/root)。

它只需要启动系统所须的文件和系统配置文件。对于大多数系统,

50MB 到100M B 的根分区可以工作得很好。

3) 一个/usr 分区。/usr是Linux 系统的许多软件所在的地方。根据你交换安装的包的数量,

这个分区应该在300MB到700MB之间。如果可能,将最大的空间用于/usr分区。

任何你以后将要安装的基于RPM 的包都会使用比其他分区更多的/usr空间。

4) 一个/home分区。这是用户的home目录所在地; 它的大小取决于你的Linux 系统有多少用户,

以及这些用户将存放多少数据。如果系统将用作E-mail服务的话,

为每一位用户预留5MB左右的空间,如果将提供个人主页存放空间的 话,

则应至少为每位用户预留20MB空间。对于网站建设者,还有一点需要注意的是,

你的Web 服务和匿名Ftp/home/ftp)服务器的内容也在这里

 

 

1.本地存储设备的识别

1.设备查看

使用fdisk -l,我们可以查看本机的真实存在的设备有哪些:
cat /proc/partiton   系统识别的硬盘
blkid       系统可使用的设备
partprode  同步分区表
df         统正在挂载的设备

 




2.对于设备名称,遵循以下规则:

/dev/xdx  ##/dev/hd0 /dev/hd1 /dev/sda1 /dev/sda2 /dev/sdb1
/dev/sr0        光驱
/dev/mapper/*   虚拟设备

 

注意:在liunx中挂载是一个很重要的功能,它将一个设备挂接到一个已经存在的目录上,

挂载完成后此目录下以前的文件将不可用,linux将所有 的设备都映射为文件

它将整个计算机的资源都整合成一个大的文件目录,我们要访问存储设备中的文件,

必须将文件所在的分区挂载到一个已经存在的目录上,然 后通过访问此目录来访问存储设备

使用df,我们可以查看当前挂载的设备有哪些:



在系统中可能存在很多设备,有些设备系统可以识别,有些则不能,

/proc/partitions查看此文件,我们可以查看到系统此时已经识别的设备:

blkid   此命令用来显示系统当前可以使用的设备

2.设备的挂载和卸载

我们可以看到,插入u盘,此u盘有默认的挂载目录:



此时,我们将u盘挂载到/mnt/目录下:

我们进入/mnt目录,边可以查看u盘中的内容,下图中,文件中,显示的文件全是问号的原因是因为文件名中包含有中文字符,编码错误所以显示为问号:

使用mount,可以查看当前设备的挂载信息:

“注意”:上图中,u盘设备sdb1是读写挂载,所以我们可以在对u盘进行读写,若此时是只读挂载,我们是不能在u盘中写入文件的
例如:在读写挂载的情况下,我们可以读写u盘的文件

也可以新建文件/目录:

当我卸载设备的时候,可能会出现以下“设备正忙”的情况:

我们能可以使用以下两种方法:
1).lsof /mnt/ ##查看占用/mnt的进程


再结束此进程之后就可以正常卸载了:

此时可以正常卸载,df也看不到挂载:

若我们再次挂载时选择只读挂载:



查看挂载状态为只读(ro):

mount


此时我们不能增删u盘中的文件,并且卸载时显示正忙,我们可以使用第二种方法卸载:

fuser -kvm /mnt

umount /mnt

df

即可
此时可以正常卸载,我没用这种方法,但两种方法都可以

3.系统分区


1.在我们以下实验中,我们需要了解一些基础知识:
 硬盘的0磁道1扇区,是系统刚开启时磁头停留的位置,磁头再次读取信息一边决定接下来要做的事情,我们已经知道,1个扇区包含512个字节,其中包含:
 446字节的信息:MBR(master boot record)称为主引导分区,,它用于硬盘启动时将系统控制转给用户指定的并在分区表中登记了的某个操作系统;
2字节的硬盘有效性标识:55AA,这部分内容是固定的无法更改;
64字节的分区表:分区表用来记录系统的分区设置,例如我们在windows常设置c盘,d盘等,就是对系统进行分区。
 在分区表中,由于每个分区记录16字节,因此最多可以划分4个分区,这4个分区称为主分区(P),显然,只能划分4个分区对我们来说在某些应用场景下是远远不够的,但是,我们的分区表容量有限,那么此时我们怎么办?
 我们可以在其中一个主分区中在进行分区的划分,这个主分区称为扩展分区(E),其内的子分区称为逻辑分区(L),逻辑分区的分区表就存储在扩展分区内,而主分区的分区表则存在于0磁道1扇区中的分区表内。
2..系统分区划分:
1).查看系统当前可识别的硬件,我们可以看到,/dev/vda中已有分区划分,而/dev/vdb是一块10G空硬盘空间:

2).fdisk /dev/vdb ##对/dev/vdb进行分区





划分完成后,查看当前系统可以识别的分区:



再查看此时可用的分区:



2.对新分区添加文件系统
 发现此时/dev/sdb1并不可用,这是因为没有给新划分的分区添加文件系统,

当前可以使用的文件系统有:ext4、ext2、 vfat、xfs,相比较二言,xfs的性能稳定,

扩展性强,并且文件传输速率高,是目前的主流文件系统,

因此,选择给新分区添加文件系统类型为 xfs:

mkfs.xfs /dev/vdb1  为新分区添加xfs,

添加完成后,我们可以看到此时vdb1可用:

 



此时可以将vdb1挂载到/mnt目录下:

3.再新建分区2,3,4;对分区4选择扩展分区

由于2,3分区为主分区,添加步骤与上诉方法相同,

因此以下展示分区4(扩展分区)的添加:



注意,在添加完成后,会出现如下警告:



意思是,需要重启或者同步分区表才可以使配置生效
3.同步分区表
可以看到,虽然我们进行了分区划分,但在系统可识别设备的文件中,找不到新划分的分区:



因此我们需要同步分区表:

同步完成后,我们会看到,刚刚划分的分区此时可以被设备识别:



4.添加逻辑分区:



同步分区表:



可以看到,在未添加文件系统时,是不能挂载的,会出现报错:空的文件系统类型



添加文件系统后,就可以正常挂载:



“注意”:设备在进行挂载时可以让一个设备挂载到一个目录下,也可以使一个设备挂载到多个目录,但是不能使多个设备挂载到一个目录
如下,我们在根下新建目录:/huige

 


将设备同时挂载到两个目录下:



在/mnt下新建文件,可以看到,此时此文件也可以在/test文件中看到:



5.开机自动挂载策略文件
对于我们新划分的分区,使用mount进行挂载后,这种挂载是临时的,

在我们进行重启后,挂载的信息会消失,那么,我们如何设置永久挂载?

vim /etc/fstab


再重启,就可以看到此时vdb1自动挂载到/mnt目录下:

 

4.swap分区管理

1.swap分区建立swapon -s 列出swap分区

在未进行设置的情况下,

可以看到当前不存在 swap分区



2).新建swap分区:




同步分区表,可以看到vdb6为swap分区:




3).添加swap分区设置:

swapon -a 临时添加swap分区,可被系统识别


4).永久添加wsap分区

vim /etc/fstab  永久添加swap分区

未添加前,-s不能列出swap分区的设置,添加后如图

永久添加swap分区的信息:



4).swap分区删除
 1.删除fstab中的信息


 2.swapoff /dev/vdb6 ##关闭设备

 3.fdisk /dev/vdb ##删除分区(必须先关闭设备,再删除分区)



同步分区表,查看分区信息,vdb6的分区信息被删除:

5.配额

配额是针对设备的容量限制,用户只有在指定设备上被限制使用存储空间的容量
1.新建目录

2.挂载设备,将目录设置为满权限再卸载:
“注意”:一定要先挂载再修改权限

 



3.对设备开启限额

可以看到,开启限额后,mount查看挂载状态发生改变:

 




4.查看限额是否开启



5.对用户配额:



6.测试:
切换到用户student:
发现,截取10M数据,对于用户student来说可以存储

但是student想储存30M的数据,就会提示超出配额,实际储存为24M:

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐