Proxmox Virtual Environment如何修改镜像硬盘大小及OpenWrt如何修改大小
以下是更新了使用PVE导入Openwrt的方法
PVE修改大小
PVE Wiki
首先先使用终端命令进入PVE,然后输入以下命令
1 2 3 4 5 6 7
| qm resize <vmid> <disk> <size>
#exemple: to add 5G to your virtio0 disk on vmid100:
qm resize 100 virtio0 +1G
# <disk> 填写的不是文件位置或文件名,而是网页版写的这个硬盘是什么接口,例如:virtio0, ide0, scsi0, sata0, efidisk0, tpmstate0
|
网页版操作不是直接在Disk上,而是Hardware > Hard Disk > Disk Action > Resize
OpenWrt修改大小
1 - OpenWrt论坛
我们已经修改好硬盘大小,现在需要进入OpenWrt里面修改硬盘大小使其格式化可读。
先安装以下组件:
1
| opkg update && opkg install lsblk fdisk losetup resize2fs
|
之后按照教程使用fdisk我是不成功的。
方法2:
OpenWrt Docs - Expend Root FS
下载或者保存好:
下载方式:
1 2 3
| wget -U "" -O expand-root.sh "https://openwrt.org/_export/code/docs/guide-user/advanced/expand_root?codeblock=0"
chmod+x ./expand-root.sh
|
文件内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| # Configure startup scripts cat << "EOF" > /etc/uci-defaults/70-rootpt-resize if [ ! -e /etc/rootpt-resize ] \ && type parted > /dev/null \ && lock -n /var/lock/root-resize then ROOT_BLK="$(readlink -f /sys/dev/block/"$(awk -e \ '$9=="/dev/root"{print $3}' /proc/self/mountinfo)")" ROOT_DISK="/dev/$(basename "${ROOT_BLK%/*}")" ROOT_PART="${ROOT_BLK##*[^0-9]}" parted -f -s "${ROOT_DISK}" \ resizepart "${ROOT_PART}" 100% mount_root done touch /etc/rootpt-resize reboot fi exit 1 EOF cat << "EOF" > /etc/uci-defaults/80-rootfs-resize if [ ! -e /etc/rootfs-resize ] \ && [ -e /etc/rootpt-resize ] \ && type losetup > /dev/null \ && type resize2fs > /dev/null \ && lock -n /var/lock/root-resize then ROOT_BLK="$(readlink -f /sys/dev/block/"$(awk -e \ '$9=="/dev/root"{print $3}' /proc/self/mountinfo)")" ROOT_DEV="/dev/${ROOT_BLK##*/}" LOOP_DEV="$(awk -e '$5=="/overlay"{print $9}' \ /proc/self/mountinfo)" if [ -z "${LOOP_DEV}" ] then LOOP_DEV="$(losetup -f)" losetup "${LOOP_DEV}" "${ROOT_DEV}" fi resize2fs -f "${LOOP_DEV}" mount_root done touch /etc/rootfs-resize reboot fi exit 1 EOF cat << "EOF" >> /etc/sysupgrade.conf /etc/uci-defaults/70-rootpt-resize /etc/uci-defaults/80-rootfs-resize EOF
|
更新
1 2 3 4 5 6
| # Install packages opkg update opkg install parted losetup resize2fs # Expand root partition/filesystem sh /etc/uci-defaults/70-rootpt-resize
|
查看结果:
1 2 3 4 5 6 7
| root@OpenWrt:~# df -Th Filesystem Type Size Used Available Use% Mounted on /dev/root ext4 994.3M 16.7M 961.6M 2% / tmpfs tmpfs 1006.1M 64.0K 1006.0M 0% /tmp /dev/sda1 ext4 15.7M 5.4M 10.0M 35% /boot /dev/sda1 ext4 15.7M 5.4M 10.0M 35% /boot tmpfs tmpfs 512.0K 0 512.0K 0% /dev
|
OpenWrt overlay修改大小
Overlay的本质,是在squashfs上实现用户修改文件导致无法重启成功失败后,自行修复。
我们使用eSir的镜像也是使用overlay作为软件安装的位置。
OpenWrt Overlay扩容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| root@OpenWrt:~# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS loop0 7:0 0 357.4M 0 loop /overlay sda 8:0 0 1.5G 0 disk ├─sda1 8:1 0 16M 0 part /mnt/sda1 │ /boot │ /boot ├─sda2 8:2 0 500M 0 part /rom └─sda128 259:0 0 239K 0 part sr0 11:0 1 1024M 0 rom
root@OpenWrt:~# df -Th Filesystem Type Size Used Available Use% Mounted on /dev/root squashfs 142.8M 142.8M 0 100% /rom tmpfs tmpfs 997.0M 2.9M 994.1M 0% /tmp /dev/loop0 f2fs 355.4M 116.4M 238.9M 33% /overlay overlayfs:/overlay overlay 355.4M 116.4M 238.9M 33% / /dev/sda1 vfat 16.0M 5.7M 10.3M 35% /boot /dev/sda1 vfat 16.0M 5.7M 10.3M 35% /boot tmpfs tmpfs 512.0K 0 512.0K 0% /dev /dev/sda1 vfat 16.0M 5.7M 10.3M 35% /mnt/sda1
root@OpenWrt:~# losetup /dev/loop0 /dev/loop0: [0017]:15 (/sda2), offset 149553152
|
如上可以看出,overlay实际上表现为loop0 (loopback), 而通过losetup命令可以看出他实际保存在sda2上。
但是扩展overlay过度复杂,我们首先使用fdisk新建一个分区,例如sda3(ext4)
1 2 3 4 5
| opkg update && opkg fdisk
[fdisk /dev/sda -->n -->enter, enter -->w]
mkfs.ext4 /dev/sda3
|
我们可以直接在OpenWrt中把挂载点全部删除并保存。然后重新生成配置。
这个时候,进入sda3挂载点里改为作为/overlay使用。
以前的配置会全部失效,我们重新配置好ip后进去,将备份的配置重新导入即可。而这个时候overlay将不会是loop0,而是sda3了。