有時候會遇到這樣的情況:剛開始給VMWare分配了一個虛擬硬盤,安裝Linux後,隨著工作中使用得越來越多,虛擬硬盤容量逐漸變得不夠用,需要擴充空間。下面說明如何在VMWare中增加Linux的文件系統空間。
我的VMWare中安裝的是Fedora 9,不過其它Linux應該大同小異。
首先在VMWare中調整虛擬硬盤的大小(在“Virtual Machine Settings”的Hardware選項卡裡選擇“Hard Disk(SCSI)”,在右側的Utilities裡選擇Expand進行擴展)。
啟動Linux,鍵入df -h查看磁盤信息:
- [root@localhost ~]# df -h
- Filesystem Size Used Avail Use% Mounted on
- /dev/mapper/VolGroup00-LogVol00
- 29G 26G 2.3G 92% /
- /dev/sda1 190M 13M 168M 7% /boot
- tmpfs 506M 48K 506M 1% /dev/shm
- gvfs-fuse-daemon 29G 26G 2.3G 92% /root/.gvfs
可以看到新增加的硬盤容量並沒有體現在Linux中。使用fdisk -l查看分區表信息。www.linuxidc.com 我的信息是:
- [root@localhost ~]# fdisk -l
-
- Disk /dev/sda: 42.9 GB, 42949672960 bytes
- 255 heads, 63 sectors/track, 5221 cylinders
- Units = cylinders of 16065 * 512 = 8225280 bytes
- Disk identifier: 0x000f1526
-
- Device Boot Start End Blocks Id System
- /dev/sda1 * 1 25 200781 83 Linux
- /dev/sda2 26 3916 31254457+ 8e Linux LVM
注意Disk /Dev/sda有40多G空間(剛剛通過VMWare擴展的),但兩個Device /dev/sda1和/dev/sda2加起來只有30多G,有10G空間沒有被使用。
從調整分區表入手,調整分區表用fdisk。這個過程需要人機交互,我在需要輸入的地方加注釋來說明
- [root@localhost ~]# fdisk /dev/sda
-
- The number of cylinders for this disk is set to 5221.
- There is nothing wrong with that, but this is larger than 1024,
- and could in certain setups cause problems with:
- 1) software that runs at boot time (e.g., old versions of LILO)
- 2) booting and partitioning software from other OSs
- (e.g., DOS FDISK, OS/2 FDISK)
-
- Command (m for help): n //選擇n表示新建分區
- Command action
- e extended
- p primary partition (1-4)
- e //選擇e表示建立擴展分區
- Partition number (1-4): 3 //選擇3是因為1和2都被占了(/dev/dsa1和/dev/dsa2)
- First cylinder (3917-5221, default 3917): //此分區起始柱面,直接按回車,使用默認值
- Using default value 3917
- Last cylinder or +size or +sizeM or +sizeK (3917-5221, default 5221): //此分區大小,直接按回車,使用默認值(表明包含所有剩余空間)
- Using default value 5221
-
- Command (m for help): n //在擴展分區基礎上新建邏輯分區
- Command action
- l logical (5 or over)
- p primary partition (1-4)
- l //選擇l表示新建邏輯分區
- First cylinder (3917-5221, default 3917): //直接按回車
- Using default value 3917
- Last cylinder or +size or +sizeM or +sizeK (3917-5221, default 5221): //直接按回車
- Using default value 5221
-
- Command (m for help): p //選擇p查看新的分區表,發現已經新建成功
-
- Disk /dev/sda: 42.9 GB, 42949672960 bytes
- 255 heads, 63 sectors/track, 5221 cylinders
- Units = cylinders of 16065 * 512 = 8225280 bytes
- Disk identifier: 0x000f1526
-
- Device Boot Start End Blocks Id System
- /dev/sda1 * 1 25 200781 83 Linux
- /dev/sda2 26 3916 31254457+ 8e Linux LVM
- /dev/sda3 3917 5221 10482412+ 5 Extended
- /dev/sda5 3917 5221 10482381 83 Linux
-
- Command (m for help): w //選擇w保存
- The partition table has been altered!
-
- Calling ioctl() to re-read partition table.
-
- WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
- The kernel still uses the old table.
- The new table will be used at the next reboot.
- Syncing disks.
可以看到新增了/dev/sda3擴展分區和/dev/sda5邏輯分區。
鍵入partprobe命令,這個命令用於在硬盤分區發生改變時,www.linuxidc.com 更新Linux內核中讀取的硬盤分區表數據。
- [root@localhost ~]# partprobe
我們使用ext3格式化/dev/sda5這個新的分區
- [root@localhost ~]# mkfs -t ext3 /dev/sda5
- mke2fs 1.40.8 (13-Mar-2008)
- Warning: 256-byte inodes not usable on older systems
- Filesystem label=
- OS type: Linux
- Block size=4096 (log=2)
- Fragment size=4096 (log=2)
- 655360 inodes, 2620595 blocks
- 131029 blocks (5.00%) reserved for the super user
- First data block=0
- Maximum filesystem blocks=2684354560
- 80 block groups
- 32768 blocks per group, 32768 fragments per group
- 8192 inodes per group
- Superblock backups stored on blocks:
- 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
-
- Writing inode tables: done
- Creating journal (32768 blocks): done
- Writing superblocks and filesystem accounting information: done
-
- This filesystem will be automatically checked every 32 mounts or
- 180 days, whichever comes first. Use tune2fs -c or -i to override.