VMware Ubuntu 12.04分区动态调整小记

概述

在WMware中安装Ubuntu 12.04时,分区大小默认使用了20G,安装完成后根目录大小只有12G。因为一开始打算将源码放到单独挂载的分区中,所以觉得12G应该也足够。但在Android源码编译过程中遇到了空间不足的问题,源码编译最后会将相关的img文件压缩成zip包,这个步骤会暂时利用/tmp这个目录。因为根目录只有12G,再加上/home下存放了一点东西,Android源码编译最后打包时,提示根目录空间不足打包操作被终止。

本文的目的是,动态调整分区大小,扩大根分区容量,避免Android编译无法打包。

转载请务必注明出处http://blog.csdn.net/yihongyuelan

步骤

分区扩展计划

在概述中已提到原有根分区只有12G,本文计划将其替换为20G。这里说的是替换,也就是用20G的根分区替换12G的根分区,那么也就还会剩下12G的容量,计划将这12G给/home独立使用。调整之后的硬盘挂载情况如图1所示:

图1 调整之后WMware挂载硬盘信息

在Ubuntu中使用df -h查看分区情况如图2所示:

图2 Ubuntu中查看分区信息

从图2中可以看到,根分区从/dev/sda1变成了/dev/sdc1而大小由12G变成了20G,原来的/dev/sda1则挂载到了/home目录。

新建虚拟硬盘

在WMWare->Settings中添加新的硬盘,步骤比较简单具体不表。在指定磁盘容量的时候,建议勾选上立即分配所有磁盘空间,如图3:

图3 勾选"立即分配所有磁盘空间(A)"

根分区迁移

在完成新硬盘的添加之后,记得在Ubuntu中使用fdisk或者Disk Utility工具对新硬盘进行分区和格式化,之后就需要对原来的根目录进行备份了。新硬盘格式化和分区完成之后,这里即/dev/sdc1,其挂载到/new_root,在终端中执行:

sudo mkdir /new_root
sudo mount /dev/sdc1 /new_root

因为需要对当前的根目录进行迁移,所以需要建一个备份目录/old_root,并将当前根目录挂载到/old_root (当前根目录即/dev/sda1) ,因此操作如下:

sudo mkdir /old_root
sudo mount /dev/sda1 /old_root

接着就需要使用rsync指令来完成根目录的迁移了。

rsync是类unix系统下的数据镜像备份工具,即remote sync。rsync是Linux系统下的文件同步和数据传输工具,可以在客户机和远程文件服务器之间进行文件同步,也可以在本地系统中,将数据从一个分区备份到另一个分区上。如果rsync在备份过程中出现了数据传输中断,恢复后可以继续传输不一致的部分,并且rsync可以执行完整备份或增量备份(具体信息可以man一下,中文翻译参考这里)。

使用rsync命令,将/old_root备份到/new_root:

sudo rsync -lva /old_root/. /new_root

参数解释:

-l表示保持软链接;

-a表示archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD;

-v表示操作过程详细输出;

完成之后卸载old_root:

sudo umount /old_root

修改/etc/fstab

因为/new_root后续就是新的根分区,所以需要修改/new_root下的fstab文件,即/new_root/etc/fstab,修改如下:

#UUID=46df0a25-8f0f-4ef5-90c0-8a665f4ab82d /               ext4    errors=remount-ro 0       1
/dev/sdc1 /               ext4    errors=remount-ro 0       1

第一行表示注释掉原来的根目录挂载,第二行表示新的设备为/dev/sdc1挂载到根目录。

因为要把启动分区切换到/dev/sdc1,所以要将启动相关的信息更新到grub菜单中,继续在终端中执行:

sudo grub-install /dev/sdc

在grub启动菜单中加入/dev/sdc,之后更新grub启动菜单:

sudo update-grub

更改启动顺序

现在设备/dev/sda1即原来的根目录(old_root),新设备/dev/sdc1即新的根目录(new_root),都已经加入了grub启动菜单,需要设置哪个设备优先加载,即启动顺序。修改启动顺序实际上就是进入BIOS中,设置硬盘的加载顺序。

完成以上操作之后,选择重启,并快速短按F2(虚拟机开机时有提示),进入BIOS操作界面,通过左右方向键选择"Boot"菜单,并通过上下方向键选择Hard Drive子菜单,如图4所示:

图4 WMware BIOS界面

将新添加的硬盘/dev/sdc1通过+/-调节到Bootable Add-in Cards下第一个,这里即VMware Virtual SCSI Hard Drive (0:2),之后通过F10保存并退出,重启即可进入系统。完成以上操作之后,根分区的迁移大致就已完成。

独立/home分区

根分区已经从/dev/sda1切换到了/dev/sdc1,因此/dev/sda1已经没有用了,为了资源最大化利用,我打算将其作为/home独立分区,而操作步骤和备份根分区时的操作差不多。新建一个/home_new,将/dev/sda1挂载到/home_new,将/dev/sda1中原有的内容删掉,并通过rsync将/home中的内容同步到/home_new,将/home重命名为/home_bak,将/home_new重命名为/home,并修改/etc/fstab如下:

/dev/sda1       /home ext4 defaults,user,exec,dev,suid 0 0

保存之后重启,通过df -h就能看到如图5中的效果了:

图5 调整后的分区

遇到的问题

虽然文章中描述的步骤明确,但在实际操作过程中也遇到了很多坑,如:

1. 如果不建立/old_root文件夹就开始执行

sudo rsync -lva / /new_root

这样会导致递归备份,即/new_root/new_root/new_root/....无限循环下去;

2. 如果发现/new_root目录下./ 和 .. / 的ower和group不对,可执行

sudo chown root:root ./ ../

总结

因为之前将根分区设置得太小,导致源码编译打包时空间不足,从而无法完成打包操作,根分区扩展后问题解决。如果遇到重装系统的问题,独立的/home分区可以复用,许多配置不用重新再设置一遍。

时间: 2025-01-08 02:27:01

VMware Ubuntu 12.04分区动态调整小记的相关文章

Ubuntu 12.04 分区方案(仅供参考)

Ubuntu 12.04 分区方案(仅供参考) 总空间大小:50G 目录 建议大小 实际大小 格式 描述 / 10G~20G 10G ext4 根目录 swap <2048M 1G swap 交换空间 /boot 200M左右 100M ext4 Linux的内核及引导系统程序所需要的文件,比如 vmlinuz initrd.img文件都位于这个目录中.在一般情况下,GRUB或LILO系统引导管理器也位于这个目录:启动撞在文件存放位置,如kernels,initrd,grub. /tmp 5G左

用VMware 8安装Ubuntu 12.04详细过程(图解)

图解演示环境版本: 本机系统: WIN7 虚拟机:VMware Workstation 8 (英文版) 安装目标:Ubuntu Desktop 12.04 LTS  (请点击这里)先下载好iso镜像文件 详细过程图解: 0. 初始画面,点击"Create a New Virtual Machine"(左上Ubuntu为本人已有开发环境机,请忽略) 1. 点击"Custom(自定义)" 2. 无需选择,直接Next(上面是选Workstation版本的兼容性的,这里默

VMWare虚拟机下为Ubuntu 12.04.1配置静态IP_转

转自:http://www.cnblogs.com/objectorl/archive/2012/09/27/vmware-ubuntu-nat-static-ip-settings.html 背景在虚拟机下运行操作系统,尤其是Linux系统已经是非常常见的做法.有时你想在虚拟机下搭建一个(模拟)服务器来供主机访问,比如搭建一个telnet/ssh.此时你会发现,每次启动虚拟机,VMWare为虚拟机系统分配一个动态IP,这样每次去连接虚拟机的telnet时很不方便.如果设成静态IP就好了.VMn

VMWare虚拟机下为Ubuntu 12.04.1配置静态IP(NAT连接方式)

背景 在虚拟机下运行操作系统,尤其是Linux系统已经是非常常见的做法.有时你想在虚拟机下搭建一个(模拟)服务器来供主机访问,比如搭建一个telnet/ssh.此时你会发现,每次启动虚拟机,VMWare为虚拟机系统分配一个动态IP,这样每次去连接虚拟机的telnet时很不方便.如果设成静态IP就好了. VMnet8和NAT 如果你的虚拟机是以NAT方式连入互联网的话,那么虚拟机的IP地址非配,网关以及互联网访问权限均由VMWare提供的叫做VMnet8虚拟网卡所提供.所以一切和设置静态IP有关的

vmware converter p2v ubuntu 12.04

一.使用的vmware版本 vcenter 6.0 VMware-converter-en-6.0.0-2716716 二.安装VMware-converter 1.准备一台用于安装VMware-converter的虚拟机或物理机 系统:windows2008R2 cpu:至少1核 内存:至少1G 硬盘:至少50G 2.安装VMware-converter-en-6.0.0-2716716 安装方式选择client-Server installation 三.转换ubuntu12.04 1.允许

[转]Ubuntu 12.04开机自动挂载Windows分区

http://www.cnblogs.com/A-Song/archive/2013/02/27/2935255.html 系统版本:Ubuntu 12.04(wubi安装) 1.查看系统磁盘号 sd2,sd5,sd7分别对应我windows的C,D,F盘,也是本次要添加到开机挂载的,E盘为wubi安装盘. 2.查看磁盘类型 inux分区一般为ext4,windows分区一般为ntfs 3.修改配置文件 打开/etc/fstab 配置文件包含以下几项: <file system> <mo

VMWare虚拟机下为Ubuntu 12.04.1配置静态IP(NAT方式)

确认VMnet8虚拟网卡已启用 下面开始进入Ubuntu虚拟机设置静态IP. 在Ubuntu 12.04.1中设置静态IP 1. 启动虚拟机Ubuntu系统,打开终端,利用如下命令打开并编辑网络接口配置文件: vi /etc/network/interfaces 2.重启ubuntu的网卡/etc/init.d/networking stop/etc/init.d/networking start   3.ping测试互联网连通性 ping www.baidu.com 有数据包反馈说明网络通了.

Ubuntu 12.04 Openstack Essex 安装(单节点)

这是陈沙克一篇非常好的博文,当时在进行openstack排错的时候,多亏了这篇文章里面有些内容 帮我找到了问题的所在: 原文:http://www.chenshake.com/ubuntu-12-04-openstack-essex-installation-single-node/#Nova-volume =============以下是转载内容========================== 亲自测试,成功! 测试环境: esx5.0 虚拟机环境   修改配置虚拟机配置文件 在esxi

Ubuntu 12.04网络设置

本文描述在Ubuntu12.04环境下配置桥接网络的方法,其实这个算是比较简单的,权当做是给自己做个总结吧. 首先,打开Ubuntu 12.04的网络设置文件:/etc/network/interfaces,会看到 1 auto lo 2 3 iface lo inet loopback 这边的设置是本地回路. 在后面加上: 1 auto eth0 2 3 iface eth0 inet static 4 5 address 192.168.1.230(ip地址) 6 7 netmask 255