硬盘分区及格式化
Linux操作系统在安装过程中,必须对硬盘进行分区操作,并将分区格式化为不同的文件系统之后,才可以挂载使用。
硬盘一般分为:IDE硬盘、SCSI硬盘和SATA硬盘
在Linux中,IDE接口的设备被称为hd
SCSI和SATA接口的设备被称为sd。第一块硬盘被称为sda,第二块称为adb……以此类推。
硬盘的分区分为主分区和扩展分区。一个硬盘最多可以划分为4个主磁盘分区,分别被命名为sda1、sda2、sda3、sda4,这时不能再创建扩展分区。
一个硬盘中最多只能创建一个扩展分区,扩展分区不能直接使用,必须在扩展分区中再划分出逻辑分区才可以使用。
逻辑分区是从5开始的(前4个是4个主磁盘分区),每多1个逻辑分区,在末尾的分区号上加1(数字加1)就可以。逻辑分区没有个数限制。
因此,如果想拥有超过4个分区数,合理的分区结构应该是:先划分出不超过3个的主分区,然后创建一个扩展分区,再从扩展分区中划分出多个逻辑分区。
【操作示例】在sdb上先新建3个分区:1个主分区,1个扩展分区,1个swap分区;然后在扩展分区上新建2个逻辑分区
先查看Linux虚拟机上现有的硬盘:ls /dev | grep sd
发现只有一个硬盘,所以再添加一个:
一直点下一步,然后确定,重启虚拟机
再次查看,就有sdb了:
然后开始分区:
先输入:fdisk /dev/sdb
按m可查看选项
要新建分区就输入 n
或 new
,要删除分区就输入 d
新建分区后要写入,如果没有写入就退出是无效的,不会保存
然后输入 new
新建分区, p 表示主分区,e 表示扩展分区:
我们这里要新建主分区,就输入 p
:
然后再建一个分区,还是建主分区,等下会把这个改成交换分区:
再建一个分区,这次建扩展分区,选 e
,然后其他都默认(直接按回车),把剩下所有的空间都给扩展分区了:
用p查看,现在已经分了3个分区:
现在把第二个分区改为交换分区(swap分区):
输入type
:
由上面查到的,交换是 82:
然后就更改成功了,输入p
检查一下:
下面在扩展分区下建两个逻辑分区:
建第二个,大小也直接回车,默认把剩下的空间都分给它:
输入p
查看:
最后一定要写入,输入w
输入ls /dev |grep sdb
检查分区情况:
分区号之后,要格式化成对应的文件系统后才能使用,操作如下:
此时分区还是无法打开,需要把格式化后的分区挂载到根目录的某一个空文件夹中,才能真正查看分区的内容,操作如下:
先在根目录下新建一个空的文件夹(这里取名新文件夹为sdb1):
mkdir /sdb1
然后把之前格式化的sdb1这个分区映射到刚刚新创建的这个空文件夹中:
mount /dev/sdb1 /sdb1
(注意分区名和文件夹中间有空格)
之后对于分区sdb1的操作就直接在新创建的文件夹操作就可以了,对文件夹sdb1的操作就相当于对分区sdb1的操作:
这样子,就是把磁盘挂载到系统中了,也可以打开了,但是每次重启系统后都需要重新挂载,可以用自动挂载文件系统来解决:
自动挂载文件系统指的是系统启动以后自动将硬盘中的分区挂载到文件系统中,我们就可以直接使用这些分区中的内容了,而不用在每次需要使用某个分区的时候,再去手动输入命令进行挂载。
在Linux系统中,/etc/fstab
文件存储了自动挂载文件系统的参数,若想要系统在每次启动时自动挂载指定的文件系统,则必须修改该文件中的参数。
使用cat命令打开/etc/fstab文件:
<file system> //文件系统
<mount point> //挂载点
如果希望系统自动挂载 /dev/sdb1 分区,可在 /etc/fstab 文件的尾部添加:
/dev/sdb1 /web ext4 defaults 0 0
//文件系统是 /dev/sdb1 ,挂到目录 /web 下,文件格式是ext4 ,采用默认格式,不需要备份,对启动没有要求
保存退出后重启系统
系统启动后就可以通过 /web 目录直接访问 /dev/sdb1分区中的内容,而不用每次都是用 mount 命令来挂载该分区。
操作示例:
打开fstab文件 gedit /etc/fstab
,然后在最后一行输入/dev/sdb1 /sdb1 ext4 defaults 0 0
:
保存然后重启系统
其他知识点:
硬盘分区介绍
硬盘的分区分为主分区和扩展分区。一个硬盘最多可以划分为4个主磁盘分区,这时不能再创建扩展分区。一个硬盘中最多只能创建一个扩展分区,扩展分区不能直接使用,必须在扩展分区中再划分出逻辑分区才可以使用。
逻辑分区是从5开始的,每多1个分区,数字加1就可以。因此,如果想拥有超过4个分区数,合理的分区结构应该是:先划分出不超过3个的主分区,然后创建一个扩展分区,再从扩展分区中划分出多个逻辑分区。
硬盘标识
Linux系统安装好后,整个磁盘和每个分区都被Linux表示为/dev目录中的文件,硬盘类型不同标识也不同。有以下两种类型的硬盘:
(1)IDE硬盘
驱动器标识符为hd[a-d]*,hd表示硬盘类型为IDE,中括号中的字母为a、b、c、d中的一个,a是基本盘,b是从盘,c是辅助主盘,d是辅助从盘,*指分区,即主分区和扩展分区。例如:hda1代表第一个IDE硬盘上的第一个分区。hdb5代表第二个IDE硬盘的第一个逻辑分区。
(2)SCSI/SATA硬盘
驱动器标识符为sd[a-p]*,sd表示SCSI/SATA硬盘。SCSI/SATA的引导盘使用设备文件/dev/sda1、/dev/sda2、/dev/sda3、/dev/sda4作为主分区或者扩展分区,而以/dev/sda5,/dev/sda6等作为逻辑分区。
磁盘检查命令
对于磁盘这种外部存储设备,当然有出问题的时候,所以,我们平时最好多进行检查,防患于未然。
①fsck 检查未挂载的分区是否正常
fsck -t ext4 /dev/sdb6
//检查/dev/sdb6是否正常。② badblocks //检查是否有坏的扇区
badblocks /dev/sdb5
挂载硬盘分区
首先在文件系统中创建一个空目录作为挂载点,如将格式化后的分区/dev/sdc5用来保存音乐文件,可使用 mkdir
/usr/music和mount /dev/sdc5
/usr/music命令,执行完这两条命令后,即可以通过/usr/music目录访问/dev/sdc5分区中的内容。
挂载光驱
如果想使用光驱,必须将光驱挂载到文件系统中。通常情况下将光驱挂载到 /mnt/cdrom 目录下,执行
mkdir /mnt/cdrom
和mount /dev/cdrom /mnt/cdrom
这两条命令后,就可以使用ls /mnt/cdrom
命令显示光驱中的文件。
挂载U盘
将U盘插入计算机USB接口中,使用
ls /dev/sd*
命令查看U盘的设备名,假如sdd就是U盘设备,sdd1就是U盘的分区。执行
mkdir /mnt/usb
和mount /dev/sdd1 /mnt/usb
这两条命令后,就可以使用ls /mnt/usb
命令显示U盘中的文件。
挂载Windows下的C盘(FAT32格式)
执行
mkdir /mnt/dosc
和
mount -t vfat /dev/sda1 /mnt/dosc
这两条命令后,就可以使用ls /mnt/dosc
命令显示C盘中的文件。注意:C盘必须已经被格式化为FAT32格式。
自动挂载文件系统
自动挂载文件系统指的是系统启动以后自动将硬盘中的分区挂载到文件系统中,我们就可以直接使用这些分区中的内容了,而不用在每次需要使用某个分区的时候,再去手动输入命令进行挂载。
在Linux系统中,/etc/fstab文件存储了自动挂载文件系统的参数,若想要系统在每次启动时自动挂载指定的文件系统,则必须修改该文件中的参数。
使用cat命令打开/etc/fstab文件,如下图所示。
由上图显示的内容可以看出fstab文件是由一条一条的记录所组成,其中每一行表示一条记录,代表一个自动挂载项。每条记录由6个字段组成,第1个字段是设备名称,第2个字段设备挂载点,第3个字段显示文件系统的类型,第4个字段是挂载选项,使用defaults表示系统自动识别文件系统进行挂载,第5个字段设置是否备份,0表示不备份,1表示要备份,第6个字段设置自检顺序,该字段被fsck命令用来决定在系统启动时需要被扫描的文件系统的顺序,根文件系统“/”对应该字段的值为1,其他文件系统为2,如果某文件系统在启动时不需要扫描,则该字段的值设置为0。如果想要系统自动挂载/dev/sdc5分区,可使用vi命令打开/etc/fstab文件并添加下面这行后保存退出。
/dev/sdc5 /usr/music ext4 defaults 0 0
这样系统启动后就可以通过/usr/music目录直接访问/dev/sdc5分区中的内容,而不用每次都使用mount命令来挂载该分区。
注意:由于fstab文件非常重要,如果这个文件有错误,就可能会造成系统不能正常启动。因此向fstab文件中添加数据时应非常小心。
修改完该文件后务必使用mount -a命令测试有没有错误。
显示系统内所有已经挂载的文件系统
# mount
不带任何参数执行mount命令,则会显示当前系统中已经挂载的所有的文件系统列表。
卸载设备——umount
格式:
umount <设备名或挂载点>
说明:卸载指定的设备,既可以使用设备名也可以使用挂载点名。
举例:
如果已经使用命令mount /dev/cdrom /mnt/cdrom将光驱挂载成功的话,使用以下两条命令中的任何一条都可以成功卸载刚才挂载的光盘。
# umount /dev/cdrom
# umount /mnt/cdrom
这两条命令均可以卸载刚才挂载的光盘。
虚拟内存的增加与减少
通过将硬盘中某一个可用分区的类型转换为Linux swap
/Solaris分区,然后制作成swap交换分区,就可以增加Linux操作系统内的虚拟内存,同样,使用相关的命令也可以减少系统内的虚拟内存。
增加虚拟内存的具体步骤如下:
在系统中增加一块新硬盘/dev/sdb。
将新硬盘分区,并设置其中的一个可用分区类型为Linux swap交换分区,例如将/dev/sdb6的分区类型改变为Linux swap交换分区。
使用命令:mkswap /dev/sdb6制作出swap分区。
使用命令:swapon /dev/sdb6增加系统内的虚拟内存。
通过“应用程序”——>“系统工具”——>“系统监视器”——>“资源”——> “内存和交换历史”中的“交换”查看虚拟内存的数量。
减少虚拟内存的具体步骤如下:
使用
swapoff /dev/sdb6
删除刚才增加的虚拟内存。