[转]VMware虚拟机中调整Linux分区大小手记
使用后的总结: 第一步的扩展虚拟硬盘空间其实很简单,主要是虚拟机所在HOST系统分区空间足够大,多花点时间而已;Gparted工具很好用,分区的前后都可调整, 从90G扩展到120G用了4小时多,要有足够耐心,呵呵!
------下面是参考文章------
前段时间用VMware5.5安装了CentOS5.3,安装的时候分配了5Gb的虚拟硬盘空间给Linux系统,系统安装选择很多组件和软件,后面使用时又安装也一些软件,结果导致虚拟硬盘空间不足。查看分区占用情况,发现/dev/sda2挂载的根分区占用最多,软件全部安装在该分区中。/dev/sda1 及swap分区情况正常。
[root@localhost ~]# fdisk -l
Disk/dev/sda:5368MB,5368709120bytes
255heads,63sectors/track,652cylinders
Units=cylindersof16065*512=8225280bytes
DeviceBootStartEndBlocksIdSystem
/dev/sda1*12520078183Linux
/dev/sda2266204779337+83Linux
/dev/sda362165225704082Linuxswap
sda1挂载/boot 分区 200 M,sda2挂载 / 分区 剩余所有,sda3 为swap分区 100M[root@localhost ~]# df -l
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/sda2 4704236 4374939 329297 93% /
/dev/sda119444393771750276%/boot
none 95336 0 95336 0% /dev/shm如果重装系统,可以重新划分虚拟硬盘空间和分区,但系统很多东西要重新设置,有些软件也要重新安装和设置,比较麻烦。不选择重装,于是在网上搜索资料,看能不能扩充虚拟硬盘容量并调整Linux分区大小,最好是不改变现有分区结构,只将扩充的虚拟硬盘空间加大到sda2分区上。
首先是扩充虚拟硬盘容量,这个问题找到了解决方法。在VMware中有一个工具,专门用来管理虚拟硬盘,不过得在命令行中运行。在VMware安装目录下有这个程序vmware-vdiskmanager.exe 。win+R 打开cmd窗口 cd d:\vmware (我的VMware安装在 D:\vmware目录中) 运行vmware-vdiskmanager 出来以下界面
下面是命令帮助信息。可以看到如果要扩充虚拟硬盘空间,可以用参数 -x ( -x <new-capacity> : expand the disk to the specified capacity) 它也有使用举例 : ex 4: vmware-vdiskmanager.exe -x 36Gb myDisk.vmdk 意思是将 myDisk.vmdk (虚拟机存放目录中的虚拟硬盘文件) 容量扩充至36Gb 。按照此信息,将我的虚拟硬盘文件 E:\Red Hat Linux\Red Hat Linux.vmdk扩充至10Gb 吧。键入命令D:\vmware>vmware-vdiskmanager -x 10Gb "E:\Red Hat Linux\Red Hat Linux.vmdk" 。出现错误:
原因是没有关闭虚拟机正在运行的Linux系统,init 0 关闭它再来。D:\vmware>vmware-vdiskmanager -x 10Gb "E:\Red Hat Linux\Red Hat Linux.vmdk" ,好!此时开始执行
等到100% 后,成功
到这里第一个问题(扩充虚拟硬盘容量)解决了。
接下来第二个问题,如何将扩充进来的空余空间,加到sda2上。百度 & Google了一通,都没有找到合适的解决方法。很多都说ext3分区不能调整分区大小,是在partitionmagic中,而partitionmagic赪indows下可以调整分区,而且功能也很好,却偏偏又不能调整ext3分区。
网上有很多方法都是说,将空余空间划分成第四个主分区sda4,格式化成ext3,然后挂载到 / 目录下,毕竟是根目录占用了93%的硬盘空间,想来有道理,动手~~~
我们先启动Linux系统来fdisk -l 看一下
root@localhost ~]# fdisk -l
Disk/dev/sda:10.7GB,10737418240bytes
255heads,63sectors/track,1305cylinders
Units=cylindersof16065*512=8225280bytes
DeviceBootStartEndBlocksIdSystem
/dev/sda1*12520078183Linux
/dev/sda2266204779337+83Linux
/dev/sda362165225704082Linuxswap
可以看到硬盘空间确实已经增大了,但没有出现在我们的分区列表中。df 查看也和原来一样[root@localhost ~]# df -l
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/sda2 4704236 4374939 329297 93% /
/dev/sda119444393771750276%/boot
none 95336 0 95336 0% /dev/shm那么我们就把这个空余空间用起来吧—— fdisk命令在/dev/sda(第一块scsi硬盘) 上 n 新加一个分区
[root@localhost ~]# fdisk /dev/sda
Thenumberofcylindersforthisdiskissetto1305.
Thereisnothingwrongwiththat,butthisislargerthan1024,
andcouldincertainsetupscauseproblemswith:
1)softwarethatrunsatboottime(e.g.,oldversionsofLILO)
2)bootingandpartitioningsoftwarefromotherOSs
(e.g.,DOSFDISK,OS/2FDISK)
Command(mforhelp):m按m或输入help获取参数帮助
Commandaction
Commandaction
atoggleabootableflag
beditbsddisklabel
ctogglethedoscompatibilityflag
ddeleteapartition
llistknownpartitiontypes
mprintthismenu
naddanewpartition
ocreateanewemptyDOSpartitiontable
pprintthepartitiontable
qquitwithoutsavingchanges
screateanewemptySundisklabel
tchangeapartition'ssystemid
uchangedisplay/entryunits
vverifythepartitiontable
wwritetabletodiskandexit
xextrafunctionality(expertsonly)
Command(mforhelp):n选择n添加一个新分区
Commandaction
eextended
pprimarypartition(1-4)选择p创建主分区,e为创建逻辑分区
pSelected partition 4
Firstcylinder(653-1305,default653):不作输入按系统默认大小去分配
Usingdefaultvalue653
Lastcylinderor+sizeor+sizeMor+sizeK(653-1305,default1305):不作输入按系统默认大小去分配
Using default value 1305Command (m for help):w
Thepartitiontablehasbeenaltered!
Callingioctl()tore-readpartitiontable.
WARNING:Re-readingthepartitiontablefailedwitherror16:\x{8BBE}\x{5907}\x{6216}\x{8D44}\x{6E90}\x{5FD9}.
Thekernelstillusestheoldtable.
Thenewtablewillbeusedatthenextreboot.
Syncing disks.w保存并退出,将空余空间全部划分给了一个新分区 sda4,The kernel still uses the old table.
Thenewtablewillbeusedatthenextreboot.好吧,重启后再来reboot。
好了,再来fdisk -l 看一下
[root@localhost ~]# fdisk -l
Disk/dev/sda:10.7GB,10737418240bytes
255heads,63sectors/track,1305cylinders
Units = cylinders of 16065 * 512 = 8225280 bytesDeviceBootStartEndBlocksIdSystem
/dev/sda1*12520078183Linux
/dev/sda2266204779337+83Linux
/dev/sda362165225704082Linuxswap
/dev/sda465313055245222+83Linux
/dev/sda4出来了,但还没有格式化,也没有挂载到目录上面去。接下来就将它格式化成ext3,并挂载到 根目录(/)下去。格式化成ext3 命令 mkfs.ext3 /dev/sda4
[root@localhost~]# mkfs.ext3 /dev/sda4
mke2fs1.32(09-Nov-2002)
Filesystemlabel=
OStype:Linux
Blocksize=4096(log=2)
Fragmentsize=4096(log=2)
656000inodes,1311305blocks
65565blocks(5.00%)reservedforthesuperuser
Firstdatablock=0
41blockgroups
32768blockspergroup,32768fragmentspergroup
16000inodespergroup
Superblockbackupsstoredonblocks:
32768,98304,163840,229376,294912,819200,884736
Writinginodetables:done
Creatingjournal(8192blocks):done
Writingsuperblocksandfilesystemaccountinginformation:done
Thisfilesystemwillbeautomaticallycheckedevery37mountsor
180days,whichevercomesfirst.Usetune2fs-cor-itooverride.
挂载到根目录命令:mount /dev/sda4 / 命令执行完,成功则没有任何提示,我们df 看一下[root@localhost ~]# df -l
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/sda2 4704236 4374939 329297 93% /
/dev/sda119444393771750276%/boot
none 95336 0 95336 0% /dev/shm/dev/sda4 4704236 4374939 329297 93% / 成了这个样子,看来这方法并不行,怎么新挂上去的分区也被占用了93%。这里没懂是怎么回事。没有达到我想要的效果,这个问题用这个方法解决不了,怎么办呢?歇会儿,再去百度&Google逛逛。
恩,据CSDN有位仁兄说,Linux有这么个命令 parted ,可以来调整分区,不过很麻烦,全部是命令操作,还要自己计算好调整分区的起始和结束位置,技术含量太高,偶不会了,只会搞些简单的。
继续找ing ~~,又找到这么个方法,有个软件可以像Windows中的partitionmagic一样操作Linux分区,名叫gparted ,和parted命令有些相似,是不是有些根源?赶快去网上找找,在它的官网下载了这个软件,最新版滴,liveCD版的ISO文件,加载在光驱中启动去操作分区。init 6 重启 ,加载ISO文件,设置虚拟机BIOS从光驱启动………………
GNOME partition editor 启动选择界面,就第一个直接回车吧,反正我也不晓得。接下来好像还有软件语言选择吧,找了下,好像没有Chinese,有Japanese(TMD小日本),不过还是直接回车用USA吧。进入软件,看一下界面,是不是很像partitionmagic。
里面也看到了我的所有分区信息,接下来就是删除sda4,让他空出来,然后调整sda2,将它调大。
又有问题了,swap分区在sda2 后面,sda2调不动。那就把swap先删了,把sda2调大,给swap留256M,然后再把这256M左右(调不准,输数字还不行)化成swap分区。
嘿嘿,还可以,行了,所有调整好后,最后Apply,等待它去执行吧!等待完成后,再重启,进入Linux系统,用fdisk -l 和df 命令查看,哈哈,OK了[root@localhost ~]# fdisk -l
Disk/dev/sda:10.7GB,10737418240bytes
255heads,63sectors/track,1305cylinders
Units=cylindersof16065*512=8225280bytes
DeviceBootStartEndBlocksIdSystem
/dev/sda1*12520078183Linux
/dev/sda226127210016527+83Linux
/dev/sda312731305265072+82Linuxswap
[root@localhost~]#df
文件系统 1K-块 已用 可用 已用% 挂载点/dev/sda2 9860296 2024280 7435356 22% /
/dev/sda119444393771750276%/boot
none953360953360%/dev/shm
到此所有问题已解决,花费了大半天的时间才整理出文档性的记录,以后可以直接参考着解决了。睡觉@@@