Linux江湖07:硬盘分区的陷阱及应对

  之所以想到写这篇,是因为本人在折腾Linux系统的过程中,有多次掉入硬盘分区的陷阱的经历。最近几天,再一次掉入坑中,折腾了两天才从坑中爬出来。经过多方查询资料,终于弄明白了硬盘分区的一些概念。下面将其记录下来,以警示来者。

  说起我自己掉坑的经历,无不与WinXP和Linux的激烈碰撞有关。多年前,我就开始在一台电脑上同时安装WinXP和Linux,只要遵守先安装WinXP再安装Linux的顺序,就不会出问题,Linux的安装程序会自动识别多系统,安装完成后可顺利启动多系统。有一天,我觉得单用Linux就够了,于是就格了整个硬盘安装了Linux。又有一天,我觉得还是要用WinXP,于是就重新安装WinXP(不要对我说虚拟机,多年前我的电脑还只有256M内存,虚拟机根本跑不动),结果发现,WinXP的安装程序没办法对硬盘进行分区了。这个坑是由Linux中的LVM引起的,WinXP识别不了LVM分区,那个时代的WinPE、DOS工具箱中的所有工具都没办法识别LVM,而那时我对Linux的了解又只停留在只会在安装系统的时候分区,根本不知道Linux系统中还有fdisk、parted这样的工具,所以折腾了许久才从坑里面爬出来。多年后的现在,我又一次掉入了坑中。我工作时用的电脑是WinXP系统(天朝国情,你懂的),为了干点私活,我又装了个Ubuntu上去了,这两个系统一直相安无事。直到有一天,我把Ubuntu系统又折腾挂了,于是重装,因为在分区的时候不小心选择了默认的“清除整个盘并安装Ubuntu”,然后硬盘就被整个格掉了,WinXP就没有了。我当时想,这多大点儿事,我再装个WinXP不就完了吗。但是问题来了,无论我怎么安装,WinXP系统就是启动不了。后来才整明白,这个坑是硬盘采用了GPT分区引起的。那为什么我让Ubuntu自动分区它就分成了GPT分区呢?这也怪这台惠普的工作用机比较奇葩,它即支持legacy BIOS,也支持EFI,当原来WinXP存在时,它用的当然是MBR分区(msdos分区),所以安装Ubuntu时就是使用的MBR分区,而后来Ubuntu自动分区时,它看到主板支持EFI,就自动把硬盘整成GPT分区了。我也是折腾了几天才明白这个道理,最后终于在Ubuntu LiveCD的parted程序的帮助下,使用一个mklabel msdos命令把硬盘从GPT分区更改为MBR分区,然后再按顺序安装WinXP和Ubuntu,才算是从坑里面爬出来。

  对于那些长期管理大型机房和大存储容量的服务器的朋友,对于硬盘分区,他们肯定是早就做好了功课。不会像我这样,直到碰到问题才会去学习相关的知识。对于硬盘分区的这些知识,我总结如下(只是简单总结,具体内容请大家自行搜素):

  1、传统的BIOS只支持从MBR分区的硬盘启动。MBR分区的分区表保存在硬盘的第一个扇区,而且只有64字节,所以最多只能有四个表项。也就是说,我们只能把硬盘分为4主分区,或者分成小于等于3个主分区再加一个扩展分区。扩展分区又可以分为多个逻辑分区。MBR分区的优点就是简单,大家都用,所以大家都懂的嘛,很多操作系统都可以从MBR分区的硬盘启动。缺点就是MBR分区不能识别大于2T的硬盘空间,也不能有大于2T的分区;

  2、GPT分区的硬盘可以解决以上MBR分区的所有缺点,它没有4个主分区的限制,想分几个主分区就可以分几个主分区,它可以识别大于2T的硬盘空间,每个分区的大小也可以超过2T。但是它的缺点是需要操作系统支持。比如只有WinXP 64位、Win Vista、Win 7和Win 8和比较新的Linux发行版支持GPT分区的硬盘。而且,如果没有EFI的支持的话,以上系统也只能将GPT分区的硬盘当成数据盘,不能从GPT分区的硬盘启动;

  3、要从GPT分区的硬盘启动,则主板使用EFI、硬盘使用GPT分区、操作系统支持GPT和EFI这三个条件缺一不可。目前比较新的64位Linux系统和Win8系统都是支持EFI的,所以都是需要从GPT分区的硬盘启动的。现在的电脑主板已经逐渐抛弃legacy BIOS,而只支持EFI了。(像我的工作机这样的过渡产品将越来越少。)目前很多预装Win8的笔记本的主板几乎都只支持EFI了。所以,学习GPT和EFI的相关知识势在必行;

  4、以上分区策略都是固定分区。硬盘分区一旦完成,则分区的大小不可改变,如果要改变分区的大小的话,只有重新分区。而且由于没有办法把多个硬盘分到一个区,所以再怎么分,每个分区的大小都有限。所以我们需要一种动态分区的东西。LVM就是这样一个东东,它叫逻辑卷管理。使用LVM的机制是这样的:首先把硬盘分区或者整块硬盘标记为一个物理卷(PV),然后再创建一个卷组(VG),把一个或多个物理卷加入卷组,最后对卷组进行分区,每一个分区称为一个逻辑卷(LV)。LVM的优点就是可以随时向卷组中添加物理卷扩展卷组的大小,以可以动态调整逻辑卷的大小。这在服务器中尤其有用,比如说有一个原本有100个用户的服务器,其/home目录下就会有100个用户的主目录,如果给他们每人分配20G的空间的话,就会占满一个2T的硬盘,如果这时再来100个用户怎么办?如果使用LVM就可以顺利解决这个问题,我们可以再加一个3T的硬盘,然后把这个硬盘加入卷组就可以扩大卷组的大小,然后再调整/home所在的逻辑卷的大小即可。LVM既可以搭配MBR使用,也可以搭配GPT使用。

下面通过Ubuntu 14.04安装过程中自动分区的策略来验证以上知识点。首先,对于只支持legacy BIOS的电脑,安装Ubuntu时分区选项如下:

这时,不选择启动LVM的选项。安装完操作系统后,使用parted程序查看硬盘分区,通过查看/etc/fstab文件来了解哪个分区对应哪个文件系统,如下图:

通过上面图片中parted程序中的print命令的输出可以看出,硬盘的分区表类型为msdos,也就是MBR分区。硬盘分为一个主分区sda1和一个扩展分区sda2,主分区sda1占20.4G,扩展分区sda2只有1072M,扩展分区中只有一个逻辑分区sda5。通过/etc/fstab可以看出主分区sda1挂载到根目录,逻辑分区sda5为交换空间。

  上面的分区方案是最简单最常用的一种。下面来看看启用LVM是什么效果。在选择分区方案的界面选择开启LVM的选项,如下图:

安装完操作系统后,还是通过parted程序和/etc/fstab来查看硬盘的分区及使用情况,如下图:

从图中可以看出,分区表的类型还是msdos。硬盘还是只分了一个主分区sda1和一个扩展分区sda2,但是主分区sda1只有255M,扩展分区sda2倒是有21.2G,同样扩展分区只分为一个逻辑分区sda5,逻辑分区sda5占用扩展分区中全部的21.2G空间,而且sda5的标志是lvm,说明该分区被标记为一个物理卷(PV),它肯定是被加入到了一个卷组(VG)中。通过/etc/fstab文件可以看出,主分区sda1挂载到/boot,而根目录和交换空间挂载的是两个逻辑卷(LV)。

  通过LVM命令可以查看系统中卷组、物理卷和逻辑卷的信息,如下图:

通过pvs和pvdisplay命令,可以看到系统中只有一个物理卷,那就是/dev/sda5,该物理卷加入到了卷组ubuntu-vg之中。通过vgs和vgdisplay命令可以看到系统中只有一个卷组,那就是ubuntu-vg,该卷组被分为两个逻辑卷。

  再看下图:

通过lvs和lvdisplay命令可以看到卷组分为两个逻辑卷,它们分别挂载到根目录和交换空间。

  通过LVM命令还可以进行更多的操作,比如创建新的卷组,将新的物理卷加入到卷组,增大或减小逻辑卷的大小等等。具体用什么命令,一个help即可搞定。

  最后,来看看在主板只支持EFI的情况下,Ubuntu如何分区。安装的启动界面如下:

这个安装界面和legacy BIOS系统下的安装界面是不同的,传统的安装界面如下:

  在EFI模式下,还是选择自动分区。安装完操作系统后,使用parted和/etc/fstab来查看硬盘的分区和使用情况,如下图:

通过以上图片可以看出,硬盘的分区表类型为gpt,硬盘分为三个区,都是主分区。其中第1个分区sda1的大小是537M,文件系统是fat32,其挂载的路径是/boot/efi,而另外两个分区一个挂载到根目录,一个为交换空间。从上面的信息我们不难推断:只支持EFI的主板只能从GPT分区的硬盘启动,而且该硬盘第1个分区必须为fat32文件系统,该文件系统中存放的是EFI需要的各种文件。

  如果在安装Ubuntu系统的时候不是选择自动分区,而是选择最后那个“其它选项”来自定义分区,会发现其实Ubuntu提供的自定义分区功能很有限。它没办法让人选择是使用MBR分区还是使用GPT分区,也没有办法选择是否启用LVM。如果需要更灵活的管理的话,还是只有点击“试用Ubuntu”按钮,进入LiveCD的Ubuntu系统后,使用parted命令和lvm命令手动管理硬盘分区。

延伸阅读:

  除了硬盘分区,平常还有可能用到的硬盘管理功能有以下一些:

  1、创建RAID,可以使用mdadm程序;

  2、查看个分区或各文件夹的空间占用 ,使用df和du程序;

  3、指定磁盘配额,使用quota软件包;

  4、查看各分区的文件系统、UUID、卷标,使用blkid程序。

(京山游侠于2014-07-13发布于博客园,转载请注明出处。)

Linux江湖07:硬盘分区的陷阱及应对,布布扣,bubuko.com

时间: 2024-10-12 16:09:26

Linux江湖07:硬盘分区的陷阱及应对的相关文章

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

无论是安装Windows还是Linux操作系统,硬盘分区都是整个系统安装过程中最为棘手的环节,网上的一些Ubuntu Linux安装教程一般都是自动分区,给初学者带来很大的不便,下面我就根据多年来在合肥上门装系统的经验谈谈安装Ubuntu Linux系统时硬盘分区最合理的方法. 在讲硬盘分区之前,我先来普及一下硬盘的相关分类,硬盘一般分为IDE硬盘.SCSI硬盘和SATA硬盘三种,在Linux系统中,IDE接口的硬盘被称为hd,SCSI和SATA接口的硬盘则被称为sd,其中IDE硬盘基本上已经淘

Linux学习笔记——硬盘分区和安装双系统

1.前言 假设电脑上已经安装了windows XP或者windows7.试图在使用windows的同时,在电脑上安装ubuntu. 假设电脑上已经存在C盘.D盘.E盘和F盘,且E盘和F盘的剩余空间较大. 假设ubuntu系统需要40G空间.     [使用软件]傲梅分区助手     [最终目标]为安装ubuntu系统节省出40G左右的空闲空间.40G空间来自于E盘空闲部分和F盘空闲部分.     [步骤简述] [1]从E盘节省出20G空间. [2]从F盘也节省出20G空间. [3]在E盘节省出的

Linux中的硬盘分区

1.硬盘的传输接口与设备文件名的关系 目前硬盘的传输接口主要有以下几种: IDE接口:IDE接口使用的排线较宽,每条IDE排线可以连接两个IDE设备,这两个设备被区分为Master(主设备)和Slave(从设备).通常主板会提供两个IDE接口,分别被称为IDE1(Primary)和IDE2(Secondary).因此,一块主板最多可以连接4个IDE设备,它们在Linux系统中的文件名如下表所示: IDE/Jumper Master Slave IDE1(Primary) /dev/hda /de

【linux硬件及硬盘分区】关于硬盘的规划和使用细节

ps:期末考试 终于结束了,这下我也终于有时间开始继续经营我的博客.这个学期上的一些课真的非常有用,感觉很多课程细地讲都可以写成非常精致的技术博文,比如流水线技术,数据库的一些技术,大学里的考试考的内容“不痛不痒”真正有价值的一些内容避而不考,但是追很多有的没的的概念很鸡肋.不管如何,这个暑假给自己留了很多本官方技术书籍慢慢去看,我也会在博客里继续补充一些自己的体会和心得. 一. 关于设备在linux中的名字 附:(linux中常见设备和设备在linux中的名字的对照表) -----------

linux系统挂载硬盘分区

1.每个磁盘分区被当作一个单独的设备. 2.每个存储设备都有自己的本地文件系统. 3.输入mount命令本身可以显示当前挂载到系统上的文件系统列表. 4. 其中:1.-t vfstype 指定文件系统的类型,通常不必指定.mount 会自动选择正确的类型.常用类型有:光盘或光盘镜像:iso9660DOS fat16文件系统:msdosWindows 9x fat32文件系统:vfatWindows NT ntfs文件系统:ntfsMount Windows文件网络共享:smbfsUNIX(LIN

如何在Linux 中获取硬盘分区或文件系统的UUID?

作为一个 Linux 系统管理员,你应该知道如何去查看分区的 UUID 或文件系统的 UUID.因为现在大多数的 Linux 系统都使用 UUID 挂载分区.你可以在 /etc/fstab 文件中可以验证. 有许多可用的实用程序可以查看 UUID.本文我们将会向你展示多种查看 UUID 的方法,并且你可以选择一种适合于你的方法. 何为 UUID? UUID 意即通用唯一识别码Universally Unique Identifier,它可以帮助 Linux 系统识别一个磁盘分区而不是块设备文件.

Linux 系统监控 硬盘分区及格式化

top  linux系统中性能分析工具,实时显示系统中各个进程的资源占用情况,类似windows中的资源管理器. free命令  显示内存的使用情况,total,used,free,buffer,cache,avaiable. -w命令,得到buffer,cache两者独自的数据. ps   显示当前进程的状态,进程的监控. ps -aux 显示所用与用户相关的信息. pstree 以树状图显示程序 kill 把一个或多个信号发给程序.默认是终止信号. -9  杀死程序.作用对象是进程号 eg:

Linux存储管理及硬盘分区、格式化、挂载

下面介绍的是Linux的存储管理基础知识.使用一个新的硬盘设备步骤为(分区.格式化.挂载分区). 一.Linux的存储管理基础知识点 1.硬件组成 计算机基础知识中,各个硬件表示为:运算器(CUP):控制器(MEEM):硬盘(HDisk):网卡(NIC,即net interface card):总线(bus). 2.南北桥芯片 芯片有南桥和北桥两种芯片,南桥芯片链接低速,北桥链接高速,而且数据都要会接到北桥发散.南桥芯片链接光驱.硬盘等:北桥芯片链接内存等.控制器一般位于主板上,是接口后实现功能

Linux VPS新硬盘分区与挂载教程

通过fdisk -l我们可以看到/dev/xvdb(此名称因系统而异)容量有23.6G,而且没有分区,接下来我们对它进行分区和挂载 (红色字为需要输入的部分,黑色字为系统显示部分) 1.fdisk -l [[email protected] ~]# fdisk -l Disk /dev/xvda: 8589 MB, 8589934592 bytes 255 heads, 63 sectors/track, 1044 cylinders Units = cylinders of 16065 * 5