原文:https://blog.csdn.net/hurry0808/article/details/78882111
硬盘分区基础知识
硬盘安装于计算机中用于存储数据,出厂(初始)状态时犹如一张白纸,是不能直接往其中写入数据的,必须经过分区及格式化之后才能使用,分区及格式化相当于为白纸划分了不同区域(如正文区、注释区等)并分别在不同区域内画上了线条格以便于书写。格式化之后的分区就是我们通常见到的硬盘分区,如Windows系统中的C盘、D盘等等。
传统硬盘采用MBR(Master Boot Record,主引导记录)分区方式引导操作系统,与之配套使用的是BOIS(Basic Input Output System,基本输入输出系统)主板,随着技术和需求的不断发展,GPT(GUID Partition Table,全局唯一标识分区表)硬盘及UEFI(Unified Extensible Firmware Interface,统一可扩展固件接口)主板逐渐流行,后者现已常见并将成为今后的主流方向。BOIS、UEFI是主板相关术语,MBR、GPT属于硬盘相关术语,其不同组合及区别如下:
BOIS + MBR
可用,可启动操作系统。传统PC上最常见的组合方式,硬盘的主分区与扩展分区之和不能超过4个,硬盘容量最大识别到2T;操作系统启动时,顺序如下图所示:
BOIS + GPT
可用,但是无法启动操作系统。BIOS主板可以搭配GPT硬盘来作为资料盘,但不能引导系统;若电脑同时带有容量小于2T的硬盘和容量大于2T的硬盘,小于2T的可以用MBR分区方式安装操作系统,大于2T的可以使用GPT方式来存放资料,但必须使用64位操作系统。
UEFI + MBR
可用,可启动操作系统。为提高兼容性,近几年出现的UEFI主板大多采用UEFI+BIOS共存的模式,并且在BIOS中集成UEFI启动项。可以把UEFI设置成Legacy模式(传统模式)、打开CSM(Compatibility Support Module ,兼容性支持模块)模块以支持UEFI启动和非UEFI启动,其效果等同于BOIS + MBR 。
UEFI + GPT
可用,可启动操作系统。目前最常见的组合方式,也是未来的主流组合。如果要将操作系统安装于大于2T的硬盘时,必须如此设置,否则硬盘大于2T的部分无法识别;且操作系统必须使用64位的,否则无法引导。GPT方式可识别大于2T的硬盘,且理论上支持无限个分区(主分区最多为128个),操作系统启动时,顺序如下:
与传统的BOIS + MBR启动方式相比,少了BOIS自检环节,会加快启动速度;如果换上固态盘,启动速度会明显加快。
GPT 与 MBR
硬盘的GPT分区格式与MBR分区格式是可以互相转换的,但从GPT转换为MBR时,原分区数量不能超过4个,且大于2T的部分将不被识别;为以防万一,转换前备份好数据。
文件系统
确定好分区格式(MBR或者GPT)后,就可建立各分区,在进行分区格式化时,需要指定文件系统,Linux可用的文件格式包括,Ext4、Ext3、Ext2、btrfs、JFS、XFS、FAT16、FAT32等,NTFS、FAT32则是Windows常用的文件系统。Ext4、Ext3、XFS是目前Linux常用的文件系统,关于Linux文件系统的进一步论述及区别,请点击这里。
Linux系统的目录结构及硬盘分区挂载
对于一块新硬盘,假定使用MBR分区格式,如果安装Linux系统时不进行分区,Linux系统将被安装在整块硬盘中(整块硬盘为1个主分区),同安装Windows时不进行硬盘分区时的效果一样;具体来说,CentOS会自动在整块硬盘中划分出swap分区(大小与内存相当),Ubuntu则不会划分swap分区(会在挂载配置文件/etc/fstab中设置swapfile参数)。为便于系统维护和确保数据安全,在安装操作系统前应对硬盘进行分区,将操作系统安装于主分区。
Linux系统目录结构
在linux系统中,目录、字符设备、块设备、套接字、打印机等都被抽象成了文件,即“Linux系统中一切都是文件”。Linux系统中的一切文件都是从“根(/)”目录开始的,并按照文件系统层次结构标准(Filesystem Hierarchy Standard,FHS)采用树形结构来存放文件,且定义了常见目录的用途,文件和目录名称严格区分大小写。以Ubuntu系统为例,Linux系统的文件目录结构如下所示:
- /usr
这是一个非常重要的目录,包含绝大多数的(多)用户工具和应用程序,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。 - /lib
存放着系统最基本的动态链接共享库,其作用类似于Windows里的DLL文件,几乎所有的应用程序都需要用到这些共享库。 - /var
存放不断扩充的内容,如经常被修改的目录、文件(包含各种日志文件)等。 - /boot
存放启动Linux时使用的一些核心文件,包括一些引导程序文件、链接文件、镜像文件等。 - /home
用户的主目录,在Linux中,每个用户都有一个自己的目录,该目录名一般以用户账号命名,包含保存的文件、个人设置等。 - /sbin
s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。 - /bin
s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。 - /etc
存放所有的系统管理所需的配置文件和子目录,如interfaces(Ubuntu)、ipcfc-*(CentOS)、fstab等。 - /tmp
存放一些临时文件,在系统重启时临时文件将被删除。 - /snap
Ubuntu 16.04及之后版本引入了snap包管理器,与之相关的目录、文件(包括安装文件)位于/snap中。 - /lost+found
该目录一般情况下是空的,当系统非法关机后会在该目录生成一些遗失的片段。 - /media
linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到该目录下。 - /srv
该目录存放一些服务启动之后需要提取的数据。 - /cdrom
光驱目录。 - /root
该目录为系统管理员用户目录。 - /opt
该目录存放安装的第三方软件,如Oracle数据库就可以安装到该目录下。 - /mnt
挂载其他的文件系统(含硬盘分区)的目录。 - /lib64
类似lib目录,存放64位库文件。
对于上述目录,有些在安装时可以指定单独分区,Ubuntu安装时单独指定分区(对应于挂载点)的界面如下所示:
关于挂载点目录,说明以下3点:
- /boot分区不是必须的。对于陈旧的BOIS主板,无法识别1024个磁柱以外的硬盘数据,从而会导致Linux无法开机,此时需要专门划分100M左右的磁盘分区作为/boot分区,用以引导Linux正常启动;但随着硬件配置及Linux版本的提升,近几年生产的主板已经解决了上述问题,且划分/boot分区后,更新Linux内核几次后会导致分区容量不足,因此若非使用陈旧BOIS主板,不建议单独划分/boot分区。
- swap分区也不是必须的。swap分区类似windows系统的虚拟内存,当实际内存不够用时,会使用swap分区作为虚拟内存来交换数据,其大小一般设置为实际内存的1-4倍。若安装时不创建swap分区,CentOS系统会自动创建与实际内存大小相当的分区作为swap分区,Ubuntu系统则不创建swap分区。
- 可为/usr/local、/opt、/home等目录单独创建分区。Linux系统在使用过程中,会不断安装软件,此时将/usr/local、/opt单独分区,可将新安装的软件放置于单独分区中,从而节约根目录所在分区的磁盘空间、优化系统目录的管理结构,尤其是当需要重新安装Linux系统时,可仅格式化根目录所在分区并将/usr/local、/opt指向原独立分区,以保存/usr/local、/opt目录中的原有数据;/home目录单独分区也有类似效果。在安装时不创建上述目录对应的单独分区也没有关系,可在系统安装完成后再将硬盘分区挂载到/usr/local、/opt、/home等目录,具体方法如下。
硬盘分区挂载
在linux操作系统中, 挂载是指将一个设备(通常是存储设备)挂接到一个已存在的目录上。 我们要访问硬盘分区中的文件,必须将文件所在的硬盘分区挂载到一个已存在的目录上, 然后通过访问这个目录来访问硬盘分区。可以这样认为,挂载目录是硬盘分区的一个快捷方式,是访问硬盘分区的入口。
- 查看硬盘分区
在挂载硬盘分区前,应先查看分区结构,确定待挂载硬盘分区的设备名称。
# 显示所有可用的硬盘分区
$ sudo fdisk -l
- 临时挂载硬盘分区
假定我们需要读取/dev/sdb5、/dev/sdb6分区中的数据,则将其挂载到/mnt/D、/mnt/E目录,步骤如下:
上图显示识别了2块硬盘,设备名称分别为/dev/sda、/dev/sdb,前者容量为232.9Gib,后者容量为465.8Gib;两块硬盘均建立了MBR分区表,/dev/sda1表示第一块硬盘上的第一个主分区,/dev/sda2表示第一块硬盘上的扩展分区,/dev/sda5表示第一块硬盘上的第一个逻辑分区,/dev/sda6表示第二个逻辑分区,/dev/sdb1 ~ /dev/sdb8的含义与之类似。
# 创建挂载目录
$ sudo mkdir /mnt/D
$ sudo mkdir /mnt/D
# 临时挂载硬盘分区
$ sudo mount /dev/sdb5 /mnt/D
$ sudo mount /dev/sdb6 /mnt/E
# 目录结构树形显示软件安装
$ sudo apt-get install tree
- 永久挂载硬盘分区
挂载信息存储于/ect/fstab文件中,按规定格式编辑该文件,新增挂载参数,可在系统每次启动时自动挂载设置好的硬盘分区,达到永久挂载的效果。命令如下:
运行上述命令后即完成挂载,目录结构如下图所示:
临时挂载的硬盘分区,在系统重启后会失效,若要再次访问硬盘分区,需重新挂载,为解决该问题,可永久挂载硬盘分区。
# 编辑/ect/fstab文件
$ sudo gedit /etc/fstab
- 设备文件:一般为设备的路径+设备名称,也可以写唯一识别码(Universally Unique Identifier, UUID)
- 挂载目录:指定要挂载到的目录,需在挂载前创建好
- 挂载格式:指定文件系统的格式,比如Ext3、Ext4、XFS、swap、iso9660(光盘设备)等
- 权限选项:若设置为defaults,则默认权限为:rw,suid,dev,exec,auto,nouser,async
- 自检:若为1则开机后进行磁盘自检,为0则不自检
- 优先级:若“自检”字段为1,则可对多块硬盘进行自检优先级设置
- 挂载点必须为目录,不能为文件
- 挂载目录需在挂载前创建好
- 若挂载目录含有子目录或文件,挂载后该目录内的子目录或文件不可访问
设置第一启动盘为机械盘
安装类型选择其他
删除原主分区
新建主分区并指定挂载点为“根(/)”
安装完成,硬盘结构如下
新增参数的格式为:“设备文件 挂载目录 格式类型 权限选项 自检 优先级”,各字段含义如下:
编辑完成的fstab文件如下图所示,之后每次启动系统时,均会自动挂载硬盘分区。
挂载需要注意以下3点:
在双硬盘PC上安装Ubuntu系统
目前双硬盘电脑越来越多,博主的PC也不例外,为安装互不影响的双系统,博主计划在硬盘位的固态盘中安装windows系统,在光驱位的机械盘中安装Ubuntu系统;为保留机械盘中扩展分区的数据,只需在安装时删除原主分区,紧接着将该分区再次创建为用于安装CentOS的主分区、指定分区的挂载点为“根(/)”即可。安装具体步骤如下:
若要在同一块硬盘上安装双系统且保留其他分区的数据,也只需删除、新建待装CentOS的主分区,操作过程与上述步骤类似。