Proxmox Virtual Environment如何修改镜像硬盘大小及OpenWrt如何修改大小

2024-05-10 14:53:27 浏览数 (3)

以下是更新了使用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了。

0 人点赞