Linux发行版按照打包方式划分主要包括Debian系(基于Dpkg)、Red Hat系(基于RPM)、Slackware系等,其中Debian系、Red Hat系是我们所常见的,前者包括Ubuntu、Debian GNU/Linux等,后者包括Red Hat Enterprise Linux、CentOS、Fedora等。本文介绍硬盘分区的基础知识、Linux系统的目录结构及与硬盘分区的挂载关系、在双硬盘PC上指定分区安装Ubuntu系统的方法。


硬盘分区基础知识

硬盘安装于计算机中用于存储数据,出厂(初始)状态时犹如一张白纸,是不能直接往其中写入数据的,必须经过分区及格式化之后才能使用,分区及格式化相当于为白纸划分了不同区域(如正文区、注释区等)并分别在不同区域内画上了线条格以便于书写。格式化之后的分区就是我们通常见到的硬盘分区,如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

上图显示识别了2块硬盘,设备名称分别为/dev/sda、/dev/sdb,前者容量为232.9Gib,后者容量为465.8Gib;两块硬盘均建立了MBR分区表,/dev/sda1表示第一块硬盘上的第一个主分区,/dev/sda2表示第一块硬盘上的扩展分区,/dev/sda5表示第一块硬盘上的第一个逻辑分区,/dev/sda6表示第二个逻辑分区,/dev/sdb1 ~ /dev/sdb8的含义与之类似。

  • 临时挂载硬盘分区
    假定我们需要读取/dev/sdb5、/dev/sdb6分区中的数据,则将其挂载到/mnt/D、/mnt/E目录,步骤如下:
# 创建挂载目录
$ 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

新增参数的格式为:“设备文件 挂载目录 格式类型 权限选项 自检 优先级”,各字段含义如下:

  1. 设备文件:一般为设备的路径+设备名称,也可以写唯一识别码(Universally Unique Identifier, UUID)
  2. 挂载目录:指定要挂载到的目录,需在挂载前创建好
  3. 挂载格式:指定文件系统的格式,比如Ext3、Ext4、XFS、swap、iso9660(光盘设备)等
  4. 权限选项:若设置为defaults,则默认权限为:rw,suid,dev,exec,auto,nouser,async
  5. 自检:若为1则开机后进行磁盘自检,为0则不自检
  6. 优先级:若“自检”字段为1,则可对多块硬盘进行自检优先级设置

编辑完成的fstab文件如下图所示,之后每次启动系统时,均会自动挂载硬盘分区。

挂载需要注意以下3点:

  • 挂载点必须为目录,不能为文件
  • 挂载目录需在挂载前创建好
  • 若挂载目录含有子目录或文件,挂载后该目录内的子目录或文件不可访问

在双硬盘PC上安装Ubuntu系统

目前双硬盘电脑越来越多,博主的PC也不例外,为安装互不影响的双系统,博主计划在硬盘位的固态盘中安装windows系统,在光驱位的机械盘中安装Ubuntu系统;为保留机械盘中扩展分区的数据,只需在安装时删除原主分区,紧接着将该分区再次创建为用于安装CentOS的主分区、指定分区的挂载点为“根(/)”即可。安装具体步骤如下:

  • 设置第一启动盘为机械盘

  • 安装类型选择其他

  • 删除原主分区

  • 新建主分区并指定挂载点为“根(/)”

  • 安装完成,硬盘结构如下

若要在同一块硬盘上安装双系统且保留其他分区的数据,也只需删除、新建待装CentOS的主分区,操作过程与上述步骤类似。

硬盘分区、挂载及Ubuntu系统安装相关推荐

  1. Linux centOS 硬盘分区挂载

    文章转载自:http://linux008.blog.51cto.com/2837805/548711 1.什么是分区?     分区是将一个硬盘驱动器分成若干个逻辑驱动器,分区是把硬盘连续的区块当做 ...

  2. linux进行硬盘分区挂载-了解系统,最更好的开发

    linux 进行分区汇总.新电脑配置了一个固态256G的还有一个3T的硬盘.新公司要求自己进行安装.刚开始安装系统的时候没有注意到还有一块硬盘.导致在安装系统的时候没有进行把普通硬盘进行分区和挂载,那 ...

  3. linux服务器6t硬盘分区,linux多块6T大硬盘分区挂载GPT分区

    都说硬盘单块大于2T就不能用fidisk了,这次入了一台双6T硬盘的服务器, IDC已经完成了GPT转换. 把sdb硬格式并挂载了,然后sda除了系统之外,留下一大部分没动. 现就把sda剩下的分区搞 ...

  4. Linux的文件系统及其硬盘分区挂载原理

    如果您是一位新手,也许 您还不知道如何把文件从Windows拷贝到Linux上吧?下面,我们将说明Unix文件系统以及mount的工作过程,然后再比较详细地讨论. mount的使用和有关选项.如果您已 ...

  5. Ubuntu 硬盘”分区“图文教程(用于光盘,U盘安装Ubuntu)

    Ubuntu 硬盘"分区"图文教程(用于光盘,U盘安装Ubuntu) 关于Linux系统下的"分区"问题,对于新手来说一直是很头疼的.我来简单写一下,它的&qu ...

  6. Ubuntu 硬盘”分区“图文教程

    Ubuntu 硬盘"分区"图文教程(用于光盘,U盘安装Ubuntu) 关于Linux系统下的"分区"问题,对于新手来说一直是很头疼的.我来简单写一下,它的&qu ...

  7. linux的分区讲解,讲解Linux硬盘分区步骤

    <讲解Linux硬盘分区步骤>由会员分享,可在线阅读,更多相关<讲解Linux硬盘分区步骤(6页珍藏版)>请在技术文库上搜索. 1.讲解讲解 Linux 硬盘立分区步骤硬盘立分 ...

  8. linux系统创建硬盘分区,介绍Linux硬盘系统创建分区步骤

    本人很喜欢Linux硬盘系统,在工做中也很喜欢总结关于Linux的经验教训.Linux硬盘系统的知识里面介绍了些通常经常使用的挂载点,用户们学会就彻底能够操做Linux系统. Linux硬盘系统下,硬 ...

  9. 安装Ubuntu Linux系统时硬盘分区最合理的方法

    无论是安装Windows还是Linux操作系统,硬盘分区都是整个系统安装过程中最为棘手的环节,网上的一些Ubuntu Linux安装教程一般都是自动分区,给初学者带来很大的不便,下面我就根据多年来在装 ...

最新文章

  1. es 时间字段聚合_Elasticsearch 聚合(aggregation)查询返回所有
  2. java B2B2C Springcloud多租户电子商城系统-spring-cloud-eureka
  3. Android App监听软键盘按键的三种方式
  4. Phyton自定义包导入。
  5. IDEA同时使用maven和gradle
  6. 解题报告 树形图计数
  7. 计算机专业简历自我评价,计算机专业毕业生简历自我评价
  8. 面向边缘计算的资源优化技术研究进展
  9. android图片资源加载和异常
  10. 图的深度优先遍历算法
  11. 微信指纹java.lang_微信小程序调用指纹验证
  12. 如何在 JavaScript 中使用SpreadJS导入和导出 Excel 文件
  13. c语言 日期加减天数返回日期 闰年,日期计算器(多图)
  14. win7 最常用的快捷键 ( 完全可以使用键盘来操作)
  15. c语言isfinite用法,C# Double.IsFinite()用法及代码示例
  16. 基于android的社团管理app
  17. python3编程小车_控制小车
  18. 坑爹公司大盘点 --- 转自拉钩
  19. hevc_nvenc 详细分析1
  20. eclipse Android添加权限

热门文章

  1. excel网页服务器端,Excel服务――体系架构
  2. 跑胡子胡牌算法(带赖子、基于回溯算法)
  3. 巅峰跨界!腾势N7全球首搭法国潮奢科技音响品牌DEVIALET帝瓦雷车载音响
  4. C 和 C++ 区别 (函数/类/struct/class)
  5. video.min.js php,用Video.js实现H5直播界面
  6. JQuery checkedBox全选和全部选
  7. Android10/11/12/13 Uri与真实路径转换--全适配
  8. 频域中图像平滑的方法
  9. 基于神经网络的图像分割,图像识别神经网络算法
  10. 当下大数据发展的 8 个要点