VirtualBox磁盘扩容

本文详细介绍了如何在Linux系统中为VirtualBox虚拟硬盘扩容的过程,包括使用fdisk创建新的分区、使用mkfs.ext4格式化分区、利用LVM技术扩展已有逻辑卷的空间,并通过resize2fs调整文件系统的大小。

参考:http://www.awaimai.com/1194.html

http://blog.youkuaiyun.com/onlysingleboy/article/details/38562283

https://www.linuxdashen.com/%E5%A6%82%E4%BD%95%E4%B8%BAvirtualbox%E8%99%9A%E6%8B%9F%E7%A1%AC%E7%9B%98%E6%89%A9%E5%AE%B9


[root@rhel65x64 ~]# fdisk -l



Disk /dev/sda: 34.4 GB, 34359738368 bytes
255 heads, 63 sectors/track, 4177 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00077691


   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          64      512000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              64        2089    16264192   8e  Linux LVM


Disk /dev/mapper/vg_rhel65x64-lv_root: 14.9 GB, 14935916544 bytes
255 heads, 63 sectors/track, 1815 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000




Disk /dev/mapper/vg_rhel65x64-lv_swap: 1715 MB, 1715470336 bytes
255 heads, 63 sectors/track, 208 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x00000000


[root@rhel65x64 ~]# fdisk /dev/sda


WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').


Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (2089-4177, default 2089): 
Using default value 2089
Last cylinder, +cylinders or +size{K,M,G} (2089-4177, default 4177): 
Using default value 4177


Command (m for help): w
The partition table has been altered!


Calling ioctl() to re-read partition table.


WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.


[root@rhel65x64 ~]# reboot


Broadcast message from root@rhel65x64
(/dev/pts/1) at 3:33 ...


The system is going down for reboot NOW!
[root@rhel65x64 ~]# 
Connection closed by foreign host.


Disconnected from remote host(RHEL65x64) at 11:33:24.


Type `help' to learn how to use Xshell prompt.
[c:\~]$ 


Connecting to 192.168.56.101:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.


Last login: Tue Oct  4 03:15:52 2016 from 192.168.56.1
[root@rhel65x64 ~]# mkfs.ext4 /dev/sda3
mke2fs 1.41.12 (17-May-2010)
文件系统标签=
操作系统:Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1048576 inodes, 4193634 blocks
209681 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=4294967296
128 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, 2654208, 
4096000


正在写入inode表: 完成                            
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成


This filesystem will be automatically checked every 28 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[root@rhel65x64 ~]# vgdisplay
  --- Volume group ---
  VG Name               vg_rhel65x64
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               15.51 GiB
  PE Size               4.00 MiB
  Total PE              3970
  Alloc PE / Size       3970 / 15.51 GiB
  Free  PE / Size       0 / 0   
  VG UUID               SeAvmH-PExI-FoYt-dhOP-ebbH-7WwF-FAoL0E
   
[root@rhel65x64 ~]# pvcreate /dev/sda3
  Physical volume "/dev/sda3" successfully created
[root@rhel65x64 ~]# vgextend vg_rhel65x64 /dev/sda3
  Volume group "vg_rhel65x64" successfully extended
[root@rhel65x64 ~]# lvdisplay
  --- Logical volume ---
  LV Path                /dev/vg_rhel65x64/lv_root
  LV Name                lv_root
  VG Name                vg_rhel65x64
  LV UUID                2VCzVX-gy9R-EJpW-3qQG-YaT9-vKs4-Uz1ncY
  LV Write Access        read/write
  LV Creation host, time rhel65x64, 2016-04-17 15:10:03 +0800
  LV Status              available
  # open                 1
  LV Size                13.91 GiB
  Current LE             3561
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0
   
  --- Logical volume ---
  LV Path                /dev/vg_rhel65x64/lv_swap
  LV Name                lv_swap
  VG Name                vg_rhel65x64
  LV UUID                kuugDy-qmsW-ZTy2-3KOd-XHGc-r7zX-dT8Mpm
  LV Write Access        read/write
  LV Creation host, time rhel65x64, 2016-04-17 15:10:05 +0800
  LV Status              available
  # open                 1
  LV Size                1.60 GiB
  Current LE             409
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1
   
[root@rhel65x64 ~]# lvextend /dev/vg_rhel65x64/lv_root /dev/sda3
  Extending logical volume lv_root to 29.91 GiB
  Logical volume lv_root successfully resized
[root@rhel65x64 ~]# df -h
Filesystem                        Size  Used Avail Use% Mounted on
/dev/mapper/vg_rhel65x64-lv_root   14G  2.6G   11G  20% /
tmpfs                             2.0G   76K  2.0G   1% /dev/shm
/dev/sda1                         485M   39M  421M   9% /boot
[root@rhel65x64 ~]# lvdisplay
  --- Logical volume ---
  LV Path                /dev/vg_rhel65x64/lv_root
  LV Name                lv_root
  VG Name                vg_rhel65x64
  LV UUID                2VCzVX-gy9R-EJpW-3qQG-YaT9-vKs4-Uz1ncY
  LV Write Access        read/write
  LV Creation host, time rhel65x64, 2016-04-17 15:10:03 +0800
  LV Status              available
  # open                 1
  LV Size                29.91 GiB
  Current LE             7656
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0
   
  --- Logical volume ---
  LV Path                /dev/vg_rhel65x64/lv_swap
  LV Name                lv_swap
  VG Name                vg_rhel65x64
  LV UUID                kuugDy-qmsW-ZTy2-3KOd-XHGc-r7zX-dT8Mpm
  LV Write Access        read/write
  LV Creation host, time rhel65x64, 2016-04-17 15:10:05 +0800
  LV Status              available
  # open                 1
  LV Size                1.60 GiB
  Current LE             409
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1
   
[root@rhel65x64 ~]# resize2fs /dev/vg_rhel65x64/lv_root
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/vg_rhel65x64/lv_root is mounted on /; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 2
Performing an on-line resize of /dev/vg_rhel65x64/lv_root to 7839744 (4k) blocks.
The filesystem on /dev/vg_rhel65x64/lv_root is now 7839744 blocks long.


[root@rhel65x64 ~]# df -h
Filesystem                        Size  Used Avail Use% Mounted on
/dev/mapper/vg_rhel65x64-lv_root   30G  2.6G   26G  10% /
tmpfs                             2.0G   76K  2.0G   1% /dev/shm
/dev/sda1                         485M   39M  421M   9% /boot

### 如何扩大 VirtualBox 虚拟硬盘空间 #### 准备工作 为了能够顺利扩展 VirtualBox 中虚拟机的磁盘容量,需确认已安装最新版本的 VirtualBox 和 Guest Additions 工具[^1]。 #### 扩展动态分配磁盘 对于采用动态分配方式创建的 VDI 文件,可以通过命令行工具 `VBoxManage` 来调整大小: ```bash VBoxManage modifyhd /path/to/your.vdi --resize 20480 ``` 上述命令会将指定路径下的 .vdi 文件扩容至 20GB (每 GB=1024MB)[^1]。请注意替换 `/path/to/your.vdi` 及目标尺寸数值以匹配实际情况。 #### 使用图形界面操作 除了命令行外,也可以通过 VirtualBox 的 GUI 完成此过程: - 启动 VirtualBox 并关闭要修改的目标 VM; - 进入 **设置** -> **存储** 页面找到对应的 vmdk/vdi 文件; - 移除该文件链接但不删除实际文件; - 返回到主窗口并点击左侧列表上方的小齿轮图标打开全局设定; - 在弹出菜单里选择 "Preferences"->"Devices"[^1]; - 添加之前移除过的磁盘镜像作为新设备,在这里可以重新定义其最大允许的空间量级; 完成以上任一方法之后还需要启动操作系统内部进行分区表更新以及文件系统的增长处理才能使新增加出来的未分配区域生效。 #### Windows 操作系统内部分区管理 针对基于 NTFS 或 FAT32 等类型的卷,可以直接利用内置的磁盘管理实用程序来无损地向右延伸现有逻辑驱动器边界直至填满整个物理载体剩余可用范围为止[^1]。 #### Linux 发行版中的 LVM/LUKS 处理方案 如果是运行着支持 Logical Volume Manager 架构的核心,则建议先扩充 PV 物理卷再相应地扩增 LV 逻辑卷最后才是格式化挂载点所指向的具体位置上的 ext4/xfs 等具体实例[^1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值