From 9732c8557dca316d29ea8a74ac9db4c88f09ebba Mon Sep 17 00:00:00 2001 From: bin456789 Date: Mon, 24 Feb 2025 22:05:27 +0800 Subject: [PATCH] =?UTF-8?q?core:=20=E5=88=A0=E9=99=A4=E7=BD=91=E7=BB=9C?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6=E4=B8=AD=E7=9A=84=20Genera?= =?UTF-8?q?ted=20by=20cloud-init.=20Changes=20will=20be=20lost.=20?= =?UTF-8?q?=E5=AD=97=E6=A0=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- trans.sh | 35 ++++++++++++++++++++++++++++------- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/trans.sh b/trans.sh index 1894cc1..af526c2 100644 --- a/trans.sh +++ b/trans.sh @@ -758,6 +758,12 @@ del_empty_lines() { sed '/^[[:space:]]*$/d' } +del_head_empty_lines_inplace() { + # 从第一行直到找到 ^[:space:] + # 这个区间内删除所有空行 + sed -i '1,/[^[:space:]]/ { /^[[:space:]]*$/d }' "$@" +} + get_part_num_by_part() { dev_part=$1 echo "$dev_part" | grep -o '[0-9]*' | tail -1 @@ -1804,13 +1810,13 @@ EOF create_swap_if_ram_less_than 2048 $os_dir/swapfile # 解压系统 - apk add tar xz + apk add tar xz pv # shellcheck disable=SC2154 download "$img" $os_dir/gentoo.tar.xz echo "Uncompressing Gentoo..." - tar xpf $os_dir/gentoo.tar.xz -C $os_dir --xattrs-include='*.*' --numeric-owner + pv -f $os_dir/gentoo.tar.xz | tar xpJ --numeric-owner --xattrs-include='*.*' -C $os_dir rm $os_dir/gentoo.tar.xz - apk del tar xz + apk del tar xz pv # dns cp_resolv_conf $os_dir @@ -1975,6 +1981,11 @@ EOF # 删除网卡名匹配 sed -i '/^Name=/d' $os_dir/etc/systemd/network/10-cloud-init-eth*.network + # 删除 Generated by cloud-init. Changes will be lost. + # 并删除头部的空行 + sed -i '/^# Generated by cloud-init/d' $os_dir/etc/systemd/network/10-cloud-init-eth*.network + del_head_empty_lines_inplace $os_dir/etc/systemd/network/10-cloud-init-eth*.network + # 清理 rm -rf net.cfg out apk del cloud-init @@ -2467,7 +2478,7 @@ create_part() { umount_pseudo_fs() { os_dir=$(realpath "$1") - dirs="/proc /sys /dev /run /sys/firmware/efi/efivars" + dirs="/proc /sys /dev /run" regex=$(echo "$dirs" | sed 's, ,|,g') if mounts=$(mount | grep -Ew "on $os_dir($regex)" | awk '{print $3}' | tac); then for mount in $mounts; do @@ -2970,7 +2981,17 @@ create_network_manager_config() { sed -i -e '/^may-fail=/d' -e 's/^method=dhcp/method=auto/' \ /out/etc/NetworkManager/system-connections/cloud-init-eth*.nmconnection - cp /out/etc/NetworkManager/system-connections/cloud-init-eth*.nmconnection $os_dir/etc/NetworkManager/system-connections/ + # 删除 # Generated by cloud-init. Changes will be lost. + # 删除 org.freedesktop.NetworkManager.origin=cloud-init + # 并删除头部的空行 + sed -i \ + -e '/^# Generated by cloud-init/d' \ + -e '/^org\.freedesktop\.NetworkManager\.origin=cloud-init/d' \ + /out/etc/NetworkManager/system-connections/cloud-init-eth*.nmconnection + del_head_empty_lines_inplace /out/etc/NetworkManager/system-connections/cloud-init-eth*.nmconnection + + cp /out/etc/NetworkManager/system-connections/cloud-init-eth*.nmconnection \ + $os_dir/etc/NetworkManager/system-connections/ # 清理 rm -rf /out @@ -3855,7 +3876,7 @@ install_fnos() { # 复制系统 info "Extract fnos" apk add tar gzip pv - pv -f /iso/trimfs.tgz | tar zx -C /os --numeric-owner + pv -f /iso/trimfs.tgz | tar zxp --numeric-owner --xattrs-include='*.*' -C /os apk del tar gzip pv # 挂载 /os/boot/efi @@ -5575,7 +5596,7 @@ install_windows() { mkdir -p $drv/gce/$name link=$(grep -o "/pool/.*-google-compute-engine-driver-$name.*\.goo" /tmp/gce.json) - wget $gce_repo$link -O- | tar -xzf- -C $drv/gce/$name + wget $gce_repo$link -O- | tar xz -C $drv/gce/$name # 没有 win6.0 文件夹 # 但 inf 没限制