以下是更新了使用PVE导入Openwrt的方法
PVE修改大小
PVE Wiki
首先先使用终端命令进入PVE,然后输入以下命令
代码语言:javascript复制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里面修改硬盘大小使其格式化可读。
先安装以下组件:
代码语言:javascript复制opkg update && opkg install lsblk fdisk losetup resize2fs
之后按照教程使用fdisk我是不成功的。
方法2: OpenWrt Docs - Expend Root FS
下载或者保存好: 下载方式:
代码语言:javascript复制wget -U "" -O expand-root.sh "https://openwrt.org/_export/code/docs/guide-user/advanced/expand_root?codeblock=0"
chmod x ./expand-root.sh
文件内容:
代码语言:javascript复制# 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
更新
代码语言:javascript复制# Install packages
opkg update
opkg install parted losetup resize2fs
# Expand root partition/filesystem
sh /etc/uci-defaults/70-rootpt-resize
查看结果:
代码语言:javascript复制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扩容
代码语言:javascript复制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)
代码语言:javascript复制opkg update && opkg fdisk
[fdisk /dev/sda -->n -->enter, enter -->w]
mkfs.ext4 /dev/sda3
我们可以直接在OpenWrt中把挂载点全部删除并保存。然后重新生成配置。 这个时候,进入sda3挂载点里改为作为/overlay使用。 以前的配置会全部失效,我们重新配置好ip后进去,将备份的配置重新导入即可。而这个时候overlay将不会是loop0,而是sda3了。