学习OpenStack之(4):Linux 磁盘、分区、挂载、逻辑卷管理(Logical Volume Manager)0. 背景:inux用户安装Linux操作系统时遇到的一个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间。
普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某个文件时,这个文件因为受上层文件系统的限制,也不能跨越多个分区来存放,所以也不能同时放到别的磁盘上。
而遇到出现某个分区空间耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具,但这只是暂时解决办法,没有从根本上解决问题。
随着Linux 的逻辑卷管理功能的出现,这些问题都迎刃而解,用户在无需停机的情况下可以方便地调整各个分区大小。
1. 硬盘类型/dev/sda VS /dev/hda/dev/sda/dev/sda1/dev/sda2/dev/sda3而又的安装时硬盘驱动设备名为/dev/hda/dev/hda1Q:sda和hda有什么区别那?A: HDA是使用了ide接口的硬盘的名称.SDA是sata接口的硬盘的名称.在最新的2.6.19内核里,所有的硬盘都叫SDA了.硬盘接口分为:∙ide (integrated drive electronics) 把盘体和控制器集成在一起∙sata (serial ATA(advanced technology attachment))∙scsi (small computer system interface)∙光纤通道fibre channel其中hda、hdb分别代表第一个IDE、第二个IDE。
假如你电脑上插有2个IDE硬盘,就会出现hda、hdb吗?不一定,因为貌似IDE硬盘默认有两个部分,Master和Slave,即主分区和扩展分区,而且a、b是根据IDE接口插槽顺序来分的。
这样的话,第一IDE插槽主分区为hda,扩展分区为hdb,第二IDE插槽主分区为hdc,扩展分区为hdd。
但是SATA硬盘好像没有扩展分区,而且Linux识别SATA等类型装置的顺序不是按插槽顺序来的,是按照设备被侦测到的顺序来定的,比如SATA的第1、5插槽分别插有硬盘,电脑上还插有一个USB,那么启动Linux的时候,先后侦测到SATA的第1、5插槽的硬盘和USB 设备,那么分配的名称就分别是sda,sdb,sdc。
但貌似,Ubuntu自8.04起,所有硬盘都编号为“sdx”,即不管IDE还是SATA,一律认作SCIS硬盘。
2. 分区(Partition)计算机中存放信息的主要的存储设备就是硬盘,但是硬盘不能直接使用,必须对硬盘进行分割,分割成的一块一块的硬盘区域就是磁盘分区。
在传统的磁盘管理中,将一个硬盘分为两大类分区:主分区和扩展分区。
主分区是能够安装操作系统,能够进行计算机启动的分区,这样的分区可以直接格式化,然后安装系统,直接存放文件。
在一个MBR分区表类型的硬盘中最多只能存在4个主分区。
如果一个硬盘上需要超过4个以上的磁盘分块的话,那么就需要使用扩展分区了。
如果使用扩展分区,那么一个物理硬盘上最多只能3个主分区和1个扩展分区。
扩展分区不能直接使用,它必须经过第二次分割成为一个一个的逻辑分区,然后才可以使用。
一个扩展分区中的逻辑分区可以任意多个。
磁盘分区后,必须经过格式化才能够正式使用,格式化后常见的磁盘格式有:FAT(FAT16)、FAT32、NTFS、ext2、ext3等。
那么sda1、sda2又分别代表什么呢?代表分区(Partition),比如∙P1:/dev/hda1∙P2:/dev/hda2∙L1:/dev/hda5∙L2:/dev/hda6∙L3:/dev/hda7∙L4:/dev/hda8∙L5:/dev/hda9为什么没有hda3、4呢?因为P1~4保存给了Primary和Extended 分区。
一个硬盘的结构如下:MBR|主分区1|主分区2|主分区3|主分区4(扩展分区)|, 其中扩展分区可以分为: |逻辑分区1|逻辑分区2|……|逻辑分区n|所以说上面的P1、2指明系统有两个主分区,L1~5代表有5个逻辑分区。
主分区(包括扩展分区)的总个数不能超过四个;也不能把扩展分区包围在主分区之间。
参考:/zollty/article/details/7001950fdisk命令root@dev:/home/s1# fdisk -lDisk /dev/sda: 250.1 GB, 250059350016 bytes //这个硬盘有250.1 GB的容量255 heads, 63 sectors/track, 30401 cylinders, total 488397168 sectors //255个磁头;63个扇区每磁道,30401个磁柱Units = sectors of 1 * 512 = 512 bytes //每个cylinder(磁柱)的容量是512字节Sector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x000d7bf1存储容量=磁道(柱面)数×磁头数×每道扇区数×每扇区字节数= 30401 * 255 * 63 * 512 = 25396387380 bytesDevice Boot Start End Blocks Id System //Start (开始)/End (结束):表示的一个分区从X sector开始/结束/dev/sda1 * 2048 484298751 242148352 83 Linux //引导(Boot):表示引导分区,在上面的例子中hda1 是引导分区/dev/sda2 484300798 488396799 2048001 5Extended //Blocks:表示的意思的确是容量的意思,其单位是K/dev/sda3 484298752 484300797 1023 83 Linux/dev/sda5 484300800 488396799 2048000 82 Linux swap / Solaris //大小,2048000/1024=2G?这里有一个主分区sda1,一个扩展分区sda2,sda2包括两个逻辑分区sda3和sda4.硬盘总容量=主分区(包括扩展分区)总容量∙主分区大小为 242148352 /1024 = 236473 M = 236 G∙扩展分区大小为:2014001 / 1024 = 2000M = 2G∙磁盘总容量大小为:236 + 2 = 238G扩展分区容量=逻辑分区总容量我们估算一个硬盘是否完全被划分,我们只要看fdisk -l 输出的内容中的cylinders(柱体)上一个分区的End 和下一个分区的Start是不是一个连续的数字,另外要看一下每个硬盘设备的fdisk -l 的开头部份,看一下他的cylinders(柱体)的值。
可见上图中,扩展分区都分完了。
df -h 命令:注: df 下没有显示swap分区改变Linux分区大小1. 建议在安装Ubuntu的过程中,选择手动方法进行磁盘分区。
可参考/s/blog_56a70c0401018dki.html中的具体步骤。
2. linux安装好以后,根分区容量一般是不允许改变的。
LVM can be set up after the system is installed. But putting the root partition on the LVM after the fact is quite difficult and probably would be better done with a reinstallation.Furthermore, it is not possible to just create a LVM on a already mounted partition.LVM可以在系统装好后安装。
但是将根分区放进LVM是非常困难的,因此建议重装系统的时候再设置。
而且,在已经挂载的分区上创建LVM 是不行的。
3.实在要改变,推荐用gparted-LiveCD进行调整(1)、准备1、下载最新版本的gparted ISO 镜像文件:/2、将gparted镜像文件刻录成光盘或压制在U盘上制成LiveUSB3、建议备份重要数据到移动硬盘上4、在BIOS中,将启动顺序设置为首先光驱启动(如果是用LiveUSB,应设为USB-HDD)(2)、调整分区1、将光盘放入光驱(如果是用LiveUSB,插上U盘),重启电脑. 这时候我遇到一个错误:vesamenu.c32 not a com32r image。
解决办法是到Ubuntu系统中找到这个文件,替换掉USB上的这个文件,它存在于两个文件夹中。
2、进入gparted启动界面,直接选Defalt settings3、第二个界面继续按回车7 y: O. l3 A" E/ P N0 L: j4、接下来选语言,输入“26”回车(就是简体中文,尽管汉化不全)5、接着提示将要进入X-Windows界面,回车6、进入gparted,就会发现和瘟到死的PQ相似的界面,实际操作也是一样的,而且也支持瘟到死分区的调整7、点击你要腾出空间的分区,弹出右键菜单选择“Resize/Move”& Z)8、用鼠标托动或数字精确调整要释放的空间大小,若要释放在分区头部拉左侧的控制条(输入第一行数值),若要释放在分区尾部拉右侧的控制条(输入第三行数值),调整好之后点“更改大小/移动”按钮。
9、点击欲扩大容量的分区,弹出右键菜单选择“Resize/Move”10、按照第8步的方法操作,只是现在变成扩大分区容量而已11、点击“Edit”菜单,选择“Apply All Operations”312、再次确认要调整分区容量后,gparted开始调整分区,完成后点“Close”按钮13、点“gparted”菜单,选“Quit”关闭gparted窗口,再双击左上角的“Exit”按钮退出gparted系统14、在弹出的窗口中选“Reboot”重启电脑,退出时系统会提示你取出光盘(3)、可能遇到的问题可能会发生swap分区丢失的情况,可在终端中用“free -m”命令查看swap分区是否激活(是否显示容量),如果未激活,可用“sudomkswap /dev/sdaX”命令(X为swap分区的编号)进行激活,并将激活所得的UUID码替换掉“/etc/fstab”文件(需要管理员权限)中原来swap分区的UUID编码,重启后即可自动激活挂载具体操作方法,请进Ubuntu官方论坛中查找,有教程帖8 z. \0 s8 }- M& c警告:对swap分区的激活操作及对fstab文件的修改应谨慎,必需仔细核对修改的值在界面上缩小sda1的大小,并创建新的分区,重启电脑后终于看到一个新的分区了,还有一些未分配空间。