前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Proxmox Virtual Environment如何修改镜像硬盘大小及OpenWrt如何修改大小

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

作者头像
繁华是客
发布2024-05-10 14:53:27
1490
发布2024-05-10 14:53:27
举报

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-01-06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • PVE修改大小
  • OpenWrt修改大小
  • OpenWrt overlay修改大小
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档