虚拟机拓展磁盘分区

虚拟磁盘扩容

在虚拟机中用一段时间后就觉得自己的磁盘容量不够用了,那么如何在不用重装的方式来拓展自己的磁盘呢???

先来看一下目前我机器的磁盘分区和硬盘情况

可以看到/dev/sda1已经用了97%了,该加点空间了,就算你不加,系统也是会提示你的

这时就通过虚拟机侧面的拓展磁盘分区来增加存储空间,但是拓展完后进入系统还是老样子,这是因为我们还没有对磁盘进行分区和挂载,新增的容量还不能被使用。

 

原本我的磁盘是20g,现在想要拓展为30g,不过新增的空间还没有办法使用。

接下来的步骤可能威胁到虚拟机系统内部数据,建议做个备份,找到系统的文件(.vmx),拷一份出来就好了。万一出了问题,就用拷出来的这份。

或者创建虚拟机快照也可以

 

 接下来的分区解释来自这位博主

理论部分:在开始操作之前,要对系统及空间做一个规划:要做几个分区,分区的挂载点放在哪儿?

别懵!我简单解释一下!


分区,学名叫partition。就是你的硬盘空间的划分,额外一般来说需要一个swap空间还,也就是分的时候记得事先割一小块下来,剩下的自由分!例如说我,原本是20G(19g+1g swap),现在新增40g,那我就按照19g(不用动)+39g+2g swap。

挂载,先看目录,/ 是根目录,这个目录下一般分成/usr,/etc,/home……如图所示:

 
把目录与分区联系起来的过程,就是挂载,mount!如图所示:

(来自鸟哥的linux私房菜)

这里跟windows的理解不太一样,同一个目录下面的东西可以被放到不同分区


故事是这样的,那天我去吃自助,拿了个20g的小盘子(扩展前的硬盘),盘子里有牛肉鸡肉、菜(根目录下面的目录及文件),诶装了太多再也装不下。可是我还想吃鱼肉(另一些文件),于是把施展技术把20g小盘子换成60g大盘子(扩展后的硬盘),我要去吃东西了,这样合理吗?不合理吧,小盘里放好东西(目录及文件)了,那要吃别的东西,再去另外拿盘子呗,将60g大盘子换成几个小盘子的过程,就是分区;好,我再拿了40g的盘子,还没完事,我得规定一下,这个盘子是用来放鱼肉的,这个规定的过程就是挂载咯!这样,我才能顺利的把鱼肉放到盘子里吃,好辛苦呀哈哈。一个目录下面的东西可以被放到不同分区,即理解为,肉类我可以放在两个盘子里,开心就好。


在分区的时候,需要做一个计算,因为在文字界面下我们直面磁盘,跟他说19g他听不懂,一般磁盘用sector来做单位,一个sector是512byte,即0.5kb,故sectors=GBs*1024*1024*2 。那么19g我们命名为分区1,是从sector 0到sector 39845887,计算公式39845887=19*1024*1024*2-1;以此类推39g命名为分区2,是从sector 39845888到sector 121634815,最后分区3是swap的2g,从sector 121634816到sector 125829119。


在挂载的时候呢,就需要考虑那个分区要挂载在那个目录下的问题,要注意一个点,被挂载到新分区的目录最好是空目录,如果含有文件及子目录,被挂载到新分区上的时候,这些文件和子目录会被隐藏起来,以上图的目录树为例,如果将/home/bird挂到新增了的比如分区5上面,那test就会不见,所以最好先建一个空目录!例如,原先我的很多个人文件都放在主目录/home/joy下,新增的空间也想放到这里,于是新建了一个/home/joy/0_slam(搞slam用)空的子目录,现在就要将分区2挂载到/home/joy/0_slam上头。


理论部分全舒展开了,接下来是操作!


1.新建一个文件 touch \guazai 以供挂载

2.查看磁盘现状:fdisk -l 如图,一个原始19g,一个扩展的,一个swap,没毛病

 

3.分区:进入磁盘管理吧! fdisk /dev/sda

然后看见command后面还有个小光标闪呀闪 —— 输入 p(磁盘现状,跟fdisk -l差不多),d(delete删除分区),n(new增加新分区),m(查看帮助)

Help:

  DOS (MBR)
   a   toggle a bootable flag
   b   edit nested BSD disklabel
   c   toggle the dos compatibility flag

  Generic
   d   delete a partition
   F   list free unpartitioned space
   l   list known partition types
   n   add a new partition
   p   print the partition table
   t   change a partition type
   v   verify the partition table
   i   print information about a partition

  Misc
   m   print this menu
   u   change display/entry units
   x   extra functionality (experts only)

  Script
   I   load disk layout from sfdisk script file
   O   dump disk layout to sfdisk script file

  Save & Exit
   w   write table to disk and exit
   q   quit without saving changes

  Create a new label
   g   create a new empty GPT partition table
   G   create a new empty SGI (IRIX) partition table
   o   create a new empty DOS partition table
   s   create a new empty Sun partition table

对虚拟磁盘进行挂载

选择新建一个(n)

选择主分区(p),默认有四个主分区,这里还有两个可以使用

选择新建磁盘开始的位置

如果直接回车会有默认的分区起始位置,我这里的默认起始位置是分区1后剩下的一小块位置,位于分区1和分区2之间,不是我所需要的

所以我选择了交换分区后的位置:419400992

如果你不知道的具体Section的位置话,可以通过之前的 fdisk -l 显示磁盘当前状况

 

结束位置我是直接回车,选择默认的

最后输入“w”,将分区保存并退出 
4. 之后更新一次分区表并查看系统是否接收新的分区表  partprobe 如果出现了我们之前新创建的磁盘说明更新成功

 

5.接下来就是格式化,我选择格式化为和分区1一样的格式

mkfs -t ext4 /dev/sda3(格式化为ext4格式)

 6.格式化之后,将硬盘挂载到想要挂载的位置下(假设挂载到/guazai 下)

mount /dev/sdb1 /guazai

unmount /guazai (取消挂载,如果你想取消的话)

 

7.如果想要在一开机的时候就自动挂载的话就需要再次编辑

vim /etc/fstab

需要模仿之前的形式进行编辑,这里自动分区挂载的详细说明

 

开机自动挂载只需要设置/etc/fstab这个配置文件即可,这个文件是有特定格式的:挂载一个分区是一行,一行共有6个字段,每个字段用空格分割。一般第一行是根目录的挂载设置,因为根目录是要优先于所有其他的挂载点先挂载的。解释一下6个字段的含义:
第一个字段:是Label name或者是设备文件名,例如LABEL=/home或者/dev/hdc3
第二个字段:是挂载点,这个一定得是目录的,比如/home
第三个字段:是文件系统格式,比如ext3
第四个字段:是文件系统参数,一般填默认设置值default
第五个字段:是指定这个文件系统是否要进行dump备份,0代表不做备份,1代表要每天备份
第六个字段:是否开机用fsck检查文件系统,0表示不检查,如果想设置成检查,根目录是1,其他文件系统是2
设置完这个文件后,最好测试一下是否有错误:
mount -a
df
如果用df命令看到刚刚修改的那一行的分区成功挂载了,就说明没有错误了 
View Code

 

简要过程说明

 linux误挂载到根目录出现问题

如何将新的分区挂载到根目录

 虚拟机下使用分区助手(软件,虽然我没有试过)

 

文件系统详解

 

转载于:https://www.cnblogs.com/my-mind/p/10626259.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值