虚拟机(已安装好操作系统)的硬盘如何扩大?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了虚拟机(已安装好操作系统)的硬盘如何扩大?相关的知识,希望对你有一定的参考价值。

虚拟机(已安装好操作系统)的硬盘如何扩大?请赐教,谢谢!

今天上了存储,之前有些项目LINUX虚拟机需要扩容,所以做了下测试,希望对大家有用。

1、首先需要做在线硬盘扩容的话,需要保证虚拟机没有快照。

第一种方法:在原有的硬盘上直接改变磁盘置备的大小

改之前:25G

[root@localhost ~]# lsblk

NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT

sda             8:0    0   25G  0 disk

├─sda1          8:1    0    1G  0 part /boot

├─sda2          8:2    0   15G  0 part

│ ├─rhel-root 253:0    0 66.4G  0 lvm  /

│ └─rhel-swap 253:1    0  1.6G  0 lvm  [SWAP]

└─sda3          8:3    0    9G  0 part

└─rhel-root 253:0    0 66.4G  0 lvm  /

改之后:40G

[root@localhost ~]# lsblk

NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT

sda             8:0    0   25G  0 disk

├─sda1          8:1    0    1G  0 part /boot

├─sda2          8:2    0   15G  0 part

│ ├─rhel-root 253:0    0 66.4G  0 lvm  /

│ └─rhel-swap 253:1    0  1.6G  0 lvm  [SWAP]

└─sda3          8:3    0    9G  0 part

└─rhel-root 253:0    0 66.4G  0 lvm  /

通过partprobe命令也无法识别出来

重启之后,识别出来40G空间

[root@localhost ~]# lsblk

NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT

sda             8:0    0   40G  0 disk

├─sda1          8:1    0    1G  0 part /boot

├─sda2          8:2    0   15G  0 part

│ ├─rhel-root 253:0    0 66.4G  0 lvm  /

│ └─rhel-swap 253:1    0  1.6G  0 lvm  [SWAP]

└─sda3          8:3    0    9G  0 part

└─rhel-root 253:0    0 66.4G  0 lvm  /

sda1+sda2+sda3=25G,所以sda还有15G可以用

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

欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。

使用写入命令前请三思。

命令(输入 m 获取帮助):n    

Partition type:

p   primary (3 primary, 0 extended, 1 free)

e   extended

Select (default e): p

已选择分区 4

起始 扇区 (52428800-83886079,默认为 52428800):

将使用默认值 52428800

Last 扇区, +扇区 or +sizeK,M,G (52428800-83886079,默认为 83886079):

将使用默认值 83886079

分区 4 已设置为 Linux 类型,大小设为 15 GiB

命令(输入 m 获取帮助):t

分区号 (1-4,默认 4):8e

分区号 (1-4,默认 4):

Hex 代码(输入 L 列出所有代码):8e

已将分区“Linux”的类型更改为“Linux LVM”

命令(输入 m 获取帮助):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)

正在同步磁盘。

[root@localhost ~]#

[root@localhost ~]# partprobe

[root@localhost ~]# lsblk

NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT

sda             8:0    0   40G  0 disk

├─sda1          8:1    0    1G  0 part /boot

├─sda2          8:2    0   15G  0 part

│ ├─rhel-root 253:0    0 66.4G  0 lvm  /

│ └─rhel-swap 253:1    0  1.6G  0 lvm  [SWAP]

├─sda3          8:3    0    9G  0 part

│ └─rhel-root 253:0    0 66.4G  0 lvm  /

└─sda4          8:4    0   15G  0 part

将sda4加进去

[root@localhost ~]# vgs

VG   #PV #LV #SN Attr   VSize  VFree

rhel   5   2   0 wz--n- 73.98g 5.98g

[root@localhost ~]# lvm

lvm> pvcreate /dev/sda4

Physical volume "/dev/sda4" successfully created.

lvm> vgextend rhel /dev/sda4

Volume group "rhel" successfully extended

lvm> lvdisplay

--- Logical volume ---

LV Path                /dev/rhel/swap

LV Name                swap

VG Name                rhel

LV UUID                IIuZXp-olio-8mnv-zOYn-hm9a-CjWb-89C75z

LV Write Access        read/write

LV Creation host, time localhost.localdomain, 2019-04-17 16:33:20 +0800

LV Status              available

# open                 2

LV Size                1.60 GiB

Current LE             410

Segments               1

Allocation             inherit

Read ahead sectors     auto

- currently set to     8192

Block device           253:1

--- Logical volume ---

LV Path                /dev/rhel/root

LV Name                root

VG Name                rhel

LV UUID                8PMjP0-HifX-qHKj-CqN2-dnnd-Ln0N-9Th9bK

LV Write Access        read/write

LV Creation host, time localhost.localdomain, 2019-04-17 16:33:21 +0800

LV Status              available

# open                 1

LV Size                66.39 GiB

Current LE             16997

Segments               5

Allocation             inherit

Read ahead sectors     auto

- currently set to     8192

Block device           253:0

lvm> lvextend -L +15G /dev/rhel/root

Size of logical volume rhel/root changed from 66.39 GiB (16997 extents) to 81.39 GiB (20837 extents).

Logical volume rhel/root successfully resized.

lvm> EXIT

No such command 'EXIT'.  Try 'help'.

lvm> exit

Exiting.

[root@localhost ~]# xfs_growfs /dev/rhel/root

meta-data=/dev/mapper/rhel-root  isize=512    agcount=18, agsize=877824 blks

=                       sectsz=512   attr=2, projid32bit=1

=                       crc=1        finobt=0 spinodes=0

data     =                       bsize=4096   blocks=15045632, imaxpct=25

=                       sunit=0      swidth=0 blks

naming   =version 2              bsize=4096   ascii-ci=0 ftype=1

log      =internal               bsize=4096   blocks=2560, version=2

=                       sectsz=512   sunit=0 blks, lazy-count=1

realtime =none                   extsz=4096   blocks=0, rtextents=0

data blocks changed from 15045632 to 21337088

这里是redhat7,文件系统是xfs,所以用命令xfs_growfs  如果是redhat6,ext4的文件系统,则是resize2fs命令

扩容后最终

[root@localhost ~]# lsblk

NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT

sda             8:0    0   40G  0 disk

├─sda1          8:1    0    1G  0 part /boot

├─sda2          8:2    0   15G  0 part

│ ├─rhel-root 253:0    0 81.4G  0 lvm  /

│ └─rhel-swap 253:1    0  1.6G  0 lvm  [SWAP]

├─sda3          8:3    0    9G  0 part

│ └─rhel-root 253:0    0 81.4G  0 lvm  /

└─sda4          8:4    0   15G  0 part

└─rhel-root 253:0    0 81.4G  0 lvm  /

缺点,需要重启一次

第二种方法:直接添加硬盘,而不是在原有的上面只接更改大小

添加的硬盘直接可以识别出来,直接按照第一种方法的重启之后的步骤一步一步就可以了。

优点:不需要重启

参考技术A 步骤方法:
1.退出LINUX系统,在vmware启动界面中选择VM菜单下的Settings来增加磁盘,然后选择add,选择hard disk,点击Next。
2.选中create a new virtual disk,点击下一步,选择scsi,继续下一步。选择好要新增磁盘的大小,勾选Allocate all disk space now立即分配空间,下一步,在硬盘上选择一个目录来创建,点击完成结束。这样,一个新增的空间就创建好了。
3.输入新增这块硬盘的名字,它会默认放置在虚拟机所在的位置。
4.接着就能看到分好的硬盘了。
5.进入Linux系统,使用fdisk -l可以看到效果。
sudo fdisk -l
这里可以看到/dev/sdb就是新添加的硬盘,需要给新的硬盘分区。
1. 在终端输入:sudo fdisk /dev/sdb
之后键入:m,可以看到帮助信息。
键入:n,添加新分区。
键入:p,选择添加主分区。
键入:1,选择主分区号为1,这样创建后的主分区为sdb1之后,fdsik会让选择该分区的开始值和结束值,直接回车。
2.格式化磁盘
在终端输入:mkfs -t ext4 /dev/sdb1
用ext3格式对/dev/sdb1进行格式化
最后键入:w,保存所有并退出,完成新硬盘的分区
3.在用户主目录下新建一个文件, 如/home/linux/newdisk。以后就把新增的分区mount到这个目录下。
4.用root权限打开/etc/fstab文件。新增加一个选项。具体fstab的操作在这里不解释了。新增加如下:/dev/sdb1 /home/linux/newdisk ext4 defaults 0 0
5.重新启动系统,就能看到加载的硬盘了。
参考技术B 硬盘是不能在扩大了,只能在虚拟机设置里面的硬件属性添加新硬盘。 参考技术C 再添加一个硬盘本回答被提问者采纳

如何使用VirtualBox虚拟机

1. 如何将别人做好的镜像拿到自己的虚拟机上使用.

将已安装好的虚拟系统镜像 XXX.vdi文件copy到本地. 打开Virtual Box管理器.

选择"新建"

->Next

->输入虚拟电脑的名称,该名称将会在Virtual Box管理器的左边显示. 选择好操作系统的类型和版本.

->给虚拟电脑分配内存.默认是512M,可以修改为1024M.

->虚拟硬盘,选择使用现有的虚拟硬盘,打开对话框,找到copy到本地的XXX.vdi文件.

完成.

2. 如何备份虚拟机?

安装完一个系统,还有增强功能后,可以给系统做一个干净的备份,以后如果需要一个干净的系统,就可以直接使用备份了.

使用"导出虚拟电脑"功能给系统做备份. 选择好镜像存放的目录,点击“下一步”即可完成.

3. 如何导入备份?

可以将上一步导出的备份, 使用"导入虚拟电脑", 在Virtual Box管理器中增加一个虚拟系统.

选择“导入虚拟电脑”,选择镜像存放的目录,下一步。

->注意勾选选择最下方的选项"重新初始化所有网卡的MAC地址(R)", 这样新生成的虚拟机就会自动从DHCP获取新的IP与其他导入的虚拟机不会有冲突。并且将”网络控制器”选项取消勾选, 便于启动.

修改虚拟硬盘的配置路径: 从C:\\user 目录改为E:\\VirtualOS\\Server2003_32_Backup_Copy.
点击导入.

->需要等待较长的一段时间才能完成. 完成后,就会在下方产生一个新系统,如有重复,它会自动加  “_N”  来区分。

有2个问题需要注意:

(1). 如果新导入的MAC地址与以前系统的MAC地址冲突, 则该系统将没法上网.可以采取如下操作.

选中导入后的虚拟机,  右击鼠标键选择“设置”菜单. 选择"网络"选项, 点击MAC地址行右边的刷新图表,获取新的 MAC地址,点击确定.

(2). 如果不更改虚拟硬盘的配置路径: 从C:\\user 目录改为E:\\VirtualOS\\Server2003_32_Backup_Copy. 则新导入的该系统对应的"HardDisk"文件生成在了"C:\\Users\\jlzhang\\VirtualBox VMs\\Server2003_32_1" config文件所在的文件夹下了. 它是一个"vmdk"文件. 该文件太大了, 把C盘空间都占用满了.

4. 如何给虚拟机分配一个独立的IP?

有时虚拟机系统需要一个独立的IP与外部的宿主机通信, 这时虚拟机需要获取一个独立的IP.

使用"桥接模式"与外界网络连接. 在Virtual Box管理器左列显示的系统上点右键

-> 选择"设置"

->点击"网络"选项

->在"网卡1"选项页, 连接方式选择"桥接网卡".

确认.

5. 控制菜单中, "正常关机"和"退出"的区别

"退出"是指强制退出. 一般情况下, 虚拟机要正常关机。如果总是强制退出,虚拟硬盘也会发生错误,导致文件损坏。

6. 安装增强功能

VirtualBox Guset Additions的作用包含以下几点:

实现客户机和主机间的鼠标平滑移动

与主机实现文件共享

于主机共享剪贴板的内容,也就是说直接可以在主机、客户机之间复制、粘贴

使用音效系统,要不然没法用虚拟机听音乐了

与主机实现时间同步

自动登录windows

具体的操作是,启动客户机系统,在drives中选择"安装增强功能(Install Guset Additions)"。在弹出的对话框中,基本上一路“下一步”就OK了。安装结束后,需要重启客户机系统后,可以看到右下角有个四方形的图标,表示系统运行了“Oracle VM VirtualBox Guest Additions”。此时,鼠标可以在当前系统和客户机系统之前随意移动,而在装VirtualBox Guset Additions之前,要从客户机系统回到当前系统是需要按组合键“Ctrl+Alt+Delete”的。而且系统根据当前VBox窗口的大小自动调整像素,也可以全屏显示。

该功能的缺陷之处在于,安装Guest Additions后,客户机基本就绑定到特定的VBox环境中了,不利了虚拟机的克隆和迁移。

7. VirtualBox网络配置

VBox中,可以为同一个虚拟机添加四个网卡,对不同的网卡进行不同模式的设置。比如说,添加两块网卡一块的连接方式为NAT,另一块为Host-only Adapter,这样客户机既可以安全上网,也可以和主机通信。
NAT模式

VBox默认是NAT(网络地址转换)方式,Guest OS(客户机系统)装好后(联网方式设为DHCP),就可以直接连网。 使用NAT方式,客户机访问网络由主机提供(其实是通过主机的NAT服务器,这是VirtualBox内置的)。在这种方式下,客户机的网络地址外网不可见,因此外网访问不了客户机,而且主机也无法通过网络访问客户机,要想将主机上的一些资料上传到客户机,是做不来的。

测试时,主机IP是10.8.5.24的内网地址,主机下查看VBox的IP,结果如下:
从客户机内部看, 客户机本身的IP地址是10.0.2.15的内网地址,网关是10.0.2.2,使用route命令,查看结果如下:
主机能ping通169.254.134.226(从主机下查看的客户机IP),但不能ping通客户机10.0.2.15(从客户机内部查看的客户机本身的IP地址);客户机ping不通169.254.134.226,但客户机能ping通主机(主机IP是10.8.5.24),并且能正常上网。

桥接模式(Bridged Adapter)

将客户机的网络连接改为桥接方式,然后到虚拟系统中,将IP与主机IP设置在同一网段。此时,客户机相当于网络上的一台独立主机。主机、虚拟机、网络上的其他工作站,可以直接互相访问。如果只允许客户机与主机通信,只须将主机网卡设置双IP,一个用于上网,一个用于与虚拟机通信,而无须修改客户机的网络连接方式。这跟将两台主机设置成同一网段,然后用一根网线相连,就可以通信是一样的。

内网模式(Internal)

顾名思义就是内部网络模式,虚拟机与外网完全断开,只实现虚拟机于虚拟机之间的内部网络模式。在主机上同时开两台客户机,IP分别设为192.168.1.1和192.168.1.2(掩码都为255.255.255.0,网关不设),可以正常通信。

主机模式(Host-only Adapter)
这种模式,据说VBox在主机中模拟出一张专供虚拟机使用的网卡,所有虚拟机都是连接到该网卡上的(主机上的VirtualBox Host-Only Network网卡),可以通过这张网卡来实现上网及其他功能。

如果要让VBox的虚拟机可以访问外网,需将主机系统的本地连接设为与VirtualBox Host-Only Network共享。如图所示进行设置后,VirtualBox Host-Only Network的IP地址被自动设置,测试时IP为192.168.137.1,子网掩码为255.255.255.0。
在客户机中将IP设为同一网段的地址,并将DNS地址设为主机所用的DNS地址。理论上,这时客户机与主机、网络上的其他工作站都可以连接的,但实际测试中,(重新激活的网卡,又重启了客户机),客户机只能与主机通信,而且只是在192.168.137.0这个网段内进行通信。

8. 如何实现VirtualBox虚拟机与windows主机共享?

参考: http://www.jb51.net/article/97271.htm

9.  如何设置虚拟机与主机之间能够相互复制粘贴?

在VirtualBox中选定虚拟镜像后,点击”Settings“按钮,在Generla->Advanced下,Shared Clipboard默认为Disabled,将其修改为Bidirectional就可以了。

参考技术A 你需要一个系统镜像 点击新建,按教程新建一个虚拟电脑 打开你的虚拟电脑,由于没有加载镜像,它会提示你选择一个镜像或物理设备,你选一个载入就行 其他操作和物理机相同

以上是关于虚拟机(已安装好操作系统)的硬盘如何扩大?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用VirtualBox虚拟机

虚拟机安好xp后硬盘启动出错 提示大堆错误

虚拟机上装好系统与软件,发现容量有点小还能扩充吗?

如何扩大VMware虚拟机的硬盘磁盘空间大小

网络运维与安全学习1——新建一台VMware虚拟机

vmware中如何为虚拟机增加硬盘容量