=============20200701补充===========
原文是两年前写的blog,用的ubuntu还比较老,看起来磁盘空间也不大,现在又要扩盘虚拟机,看了自己之前的博客感觉很是啰嗦,故再次补充修改部分。
基本步骤和原理,还是一样,首先设置虚拟机软件vmware,配置硬件来加大磁盘空间。 然后进虚拟机ubuntu系统中去,这个时候 ubuntu系统相当于发现磁盘增大了,磁盘还是一个磁盘,没有变为两个,但是空间增大了,新增的空间上面没有分区,处于未分配状态。 要使用这块空间,
一种方法是:新建一个分区把这个未使用的空间给到新分区,(下面老的文章即是如此),然后把细新的分区挂载上去。 相当区于wind上面多了一个盘符。
另一种方法:把新增加未使用分区追加到以前的分区(推荐,这样我们不需要做任何挂载的操作,不用把文件移到新的挂载目录上来,直接在原来的基础上就扩大了空间)
操作也简单,桌面版的Ubuntu上有现成的可视化gui分区工具
#sudo apt-get install gparted
运行#gparted
下面的操作和wind上的磁盘管理差不多. 如果用pe u盘装过wind系统的话应该比较熟悉。
选择原来使用的分区->右键->更改移动大小->鼠标往右拉满->调整大小-》点击界面上的绿色勾勾按钮,提交流程。ok
再#df -l 一下,就可看到效果了
====================================
在客户机关机状态下:
选择实用工具,扩展。
扩展成功后,启动ubuntu,手动给磁盘添加新的分区,然后格式化新的分区。(千万注意格式化操作,要选对新的分区,否则把以前的文件给格式化了。)
知识拓展: 一个磁盘最多能创建4个主分区,然后在主分区中可以再划分逻辑分区。
新建分区时,一般使用默认参数,但如果你原先的分区地址不连续 ,默认参数会优先使用这个地址,导致新建的分区只是一个碎片,并没有把磁盘所有空间利用,比如我碰到的这样的问题:
查看当前已经存在的分区的使用情况
df -h
sda磁盘的sda1分区 大小7.5G 挂载在系统的更目录 /
sda磁盘的sda6分区 大小12G 挂载在 /home 目录下。
这两个分区都已经爆满。
接着看下磁盘的分区情况:
啥都没有?不,需要root用户登录才可以:
sudo -i切换到root用户
磁盘sda 共32.2G sda1 为启动引导分区 (BOOT下面的*标记) 地址(暂且成为地址吧)
补充: 这个是柱面(磁道), 从 2048 (外圈) 到 15624191 (内圈) 这个范围内的磁道
磁盘大小这么算 (15624191 - 2048 )(单盘面磁道数)* 63(每个磁道扇区数)*521byte(扇区大小,固定值,扇区应该是个单位,不同磁盘其能力不同每个磁道容量不同,体现在磁道扇区数) 255 (磁头数,即盘面数)
(15624191 - 2048+1)x 63 x 512byte x 255= 128 496 508 600 320 byte = 122543820 M ???
崩溃,如果start 和end表示磁柱 那么单sda1 就 15624191 - 2048 =1560371 个磁柱了,和总的磁柱数 3916 cylinders完全不是一个数量级啊。网上各种说start 和end 是磁柱,还在网上看到某人发ubuntu 12.04 添加硬盘的博客,里面的数据竟然也是这样离奇,稍有安慰。,这个ubuntu 12.04 确实很奇怪,没理解
补充: 结果在第二次扩展磁盘的时候,看到输出
新建分区填 start 之后有提示, first sector (这里表示的是扇区啊,不是柱面,原来如此)
重新计算下:
(15624191 - 2048+1)*512b= 7998537728 byte = 7.9G (按1000算)
= 7811072 Kb (按1024算) 刚好就是后面的block 的大小,哈哈
现在知道了,从blocks看大小,
下面
sda1 7.8G 主分区
sda2 13G 扩展分区 (扩展分区是可以在其上建立逻辑分区的)
sda3 31G 主分区(刚刚第二次扩展的)
sda4 10.4G 主分期(第一次扩展的)
sda5 & sda6 建立在sda2上的逻辑分区 0.9 +12.1 = 13
一个磁盘sda 的 四个主分区号都用掉了,看来以后是没办法再添加了,可以另加磁盘
3+1
一个硬盘可以有1到3个主分区和1个扩展分区,也可以只有主分区而没有扩展分区,但主分区必须至少有1个,扩展分区则最多只有1个,且主分区+扩展分区总共不能超过4个。逻辑分区可以有若干个。
(硬盘的第一个扇区最重要,其上面有硬盘主引导记录(占用446bytes)和分区表(占用64 bytes),之所以只能有四个主分区就是因为分区表只有64B,只能装下4条记录)
所以只能有四个主分区的硬盘的限制,并不是操作系统的限制,而最多只能有一个拓展分区则是操作系统的限制
一个磁道 63 x 512 = 32256 = 32.25Kb
63 x 512 x 255 = 7.844 M 这个磁盘大概一个柱面 7.8M
按厂家的1000 b = 1Kb来算
63 x 512 x 255 = 8225280 = 8.2 M (一般以这个计算)
这个磁盘一共有3916 cylinders = 32111.2 M = 32.11G
2048~15624191
sda2 Extended扩展分区,发现,sda5 和sda6 地址是在sda2内部的,这就对了,这是逻辑分区。上面说过,主分区最多只能分配4个(1~4),这里都用到5、6了,肯定不是主分区,5、6 是主分区sda2上的逻辑分区。
来初略估计下两个已经存在的主分区大小: sda2 的结束地址 13157377 大概。。。怎么计算后续再研究----------------------------------------
先不处理,直接新建分区,
执行 fdisk /dev/sda (sda是磁盘,sad1 2 3 等是这个磁盘上的分区,现在扩展了磁盘,但是这个扩展的空间上还没有建立分区,没法使用,下面的步骤就是要建一个分区,把扩展的这个空间都给它放到一个新的分区上去)
新建主分区,选择p(p,主分区,l逻辑分区,括号里面表示当前已有一个 主分区,一个扩展分区还有两个号可以用), 使用默认值3,(1、2已经被使用了,剩下3、4)。开始和结束地址都按默认值。
最后发现,新建的分区如此小,难道虚拟机扩展没成功,并不是,因为使用的默认值,而这个15624192~15626240刚好是在sda1和sda2之间的一块未被使用的地址,默认值就优先把这个连续的地址用了,后面在格式化该分区时,直接提示磁盘too small .
两种解决方法
1:新建分区的时候不使用默认值
2:还有一个主分区可用,再建一个分区使用默认值,自然跳过这个坑。
补充:这个可不是磁盘碎片哦:
其实磁盘碎片应该称为文件碎片,是因为文件被分散保存到整个磁盘的不同地方,而不是连续地保存在磁盘连续的簇中形成的
懒点就采用第二个方法:
可以看到主分区都不用选,直接为4,现在大小就对了,新建的4 41940992~62914559
接着把填坑用的sda3给delet掉
记住最后输入w保存,然后按提示reboot 或者 执行partprobe。
一定是在确定操作对后保存,如果操作错误,也可以利用这一点,输入q不保存退出
接着对建好的分区格式化,注意千万要选对,不然数据被格掉
如果碰到:
请看上面,记住最后输入w保存,然后按提示reboot 或者 执行partprobe。
到此,建一个文件夹然后挂载上去就可以用了
新的空间,9.2G,呵呵
不过,问题来了,重启之后,又不见了,来偷瞄下别人博客,自动挂载, 修改/etc/fstab文件如下,然后重启。
虽然变红了,不过还是生效了。建议修改之前先备份一个,免得改错,