Розширення кореневого розділу та файлової системи

  • Ця інструкція призначена для розширення кореневого розділу та файлової системи OpenWrt на платформі x86.
  • Для швидкого налаштування скористайтесь розділом автоматизованого розгортання.
  • Підтримка типів образів: ext4 та squashfs.
  • Автоматичне визначення кореневого розділу та файлової системи.
  • Розширення кореневого розділу та файлової системи за рахунок вільного простору.
  • Збереження скриптів при оновленні прошивки.
  • Автоматичне виконання після оновлення прошивки.
# Налаштування автозапуску скриптів
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
 
if [ -e /boot/cmdline.txt ]
then 
NEW_UUID=`blkid ${ROOT_DISK}p${ROOT_PART} | sed -n 's/.*PARTUUID="\([^"]*\)".*/\1/p'`
sed -i "s/PARTUUID=[^ ]*/PARTUUID=${NEW_UUID}/" /boot/cmdline.txt
fi
 
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
# Встановлення необхідних пакунків
opkg update
opkg install parted losetup resize2fs
 
# Розширення кореневого розділу та файлової системи
sh /etc/uci-defaults/70-rootpt-resize
# Встановлення необхідних пакунків
opkg update
opkg install parted losetup resize2fs
 
# Завантаження скрипта expand-root.sh
wget -U "" -O expand-root.sh "https://openwrt.org/_export/code/docs/guide-user/advanced/expand_root?codeblock=0"
 
# Виконання скрипта (він створить /etc/uci-defaults/70-rootpt-resize та /etc/uci-defaults/80-rootfs-resize, а також додасть їх до /etc/sysupgrade.conf — для повторного запуску після оновлення прошивки)
. ./expand-root.sh
 
# Запуск розширення розділу та файлової системи (розділ буде розширено, перезавантаження, потім розширення файлової системи, ще одне перезавантаження)
sh /etc/uci-defaults/70-rootpt-resize
This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
  • Last modified: 2025/05/31 11:34
  • by vazaz