mirror of
https://github.com/bin456789/reinstall.git
synced 2026-10-04 06:27:49 +08:00
core: 将所有 $os_dir 设为 local
可避免以下情况 `$os_dir` 被无意修改 1. 同时处理 boot.wim install.wim 时 2. 需要在硬盘上创建 alpine rootfs 时
This commit is contained in:
@@ -1727,7 +1727,7 @@ add_newline() {
|
|||||||
install_nixos() {
|
install_nixos() {
|
||||||
info "Install NixOS"
|
info "Install NixOS"
|
||||||
|
|
||||||
os_dir=/os
|
local os_dir=/os
|
||||||
keep_swap=true
|
keep_swap=true
|
||||||
nix_from=website
|
nix_from=website
|
||||||
ram_per_thread=2048
|
ram_per_thread=2048
|
||||||
@@ -2162,7 +2162,7 @@ get_fs_of_mount_point() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
basic_init() {
|
basic_init() {
|
||||||
os_dir=$1
|
local os_dir=$1
|
||||||
|
|
||||||
# 此时不能用
|
# 此时不能用
|
||||||
# chroot $os_dir timedatectl set-timezone Asia/Shanghai
|
# chroot $os_dir timedatectl set-timezone Asia/Shanghai
|
||||||
@@ -2502,7 +2502,7 @@ EOF
|
|||||||
chroot $os_dir update-initramfs
|
chroot $os_dir update-initramfs
|
||||||
}
|
}
|
||||||
|
|
||||||
os_dir=/os
|
local os_dir=/os
|
||||||
|
|
||||||
# 挂载分区
|
# 挂载分区
|
||||||
mount_part_basic_layout /os /os/efi
|
mount_part_basic_layout /os /os/efi
|
||||||
@@ -3096,6 +3096,7 @@ create_part() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
umount_pseudo_fs() {
|
umount_pseudo_fs() {
|
||||||
|
local os_dir
|
||||||
os_dir=$(realpath "$1")
|
os_dir=$(realpath "$1")
|
||||||
|
|
||||||
dirs="/proc /sys /dev /run"
|
dirs="/proc /sys /dev /run"
|
||||||
@@ -3109,7 +3110,7 @@ umount_pseudo_fs() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
mount_pseudo_fs() {
|
mount_pseudo_fs() {
|
||||||
os_dir=$1
|
local os_dir=$1
|
||||||
|
|
||||||
mkdir -p $os_dir/proc/ $os_dir/sys/ $os_dir/dev/ $os_dir/run/
|
mkdir -p $os_dir/proc/ $os_dir/sys/ $os_dir/dev/ $os_dir/run/
|
||||||
|
|
||||||
@@ -3258,7 +3259,7 @@ create_cloud_init_network_config() {
|
|||||||
# 实测没用,生成的 machine-id 是固定的
|
# 实测没用,生成的 machine-id 是固定的
|
||||||
# 而且 lightsail centos 9 模板 machine-id 也是相同的,显然相同 id 不是个问题
|
# 而且 lightsail centos 9 模板 machine-id 也是相同的,显然相同 id 不是个问题
|
||||||
clear_machine_id() {
|
clear_machine_id() {
|
||||||
os_dir=$1
|
local os_dir=$1
|
||||||
|
|
||||||
# https://www.freedesktop.org/software/systemd/man/latest/machine-id.html
|
# https://www.freedesktop.org/software/systemd/man/latest/machine-id.html
|
||||||
# gentoo 不会自动创建该文件
|
# gentoo 不会自动创建该文件
|
||||||
@@ -3271,7 +3272,7 @@ clear_machine_id() {
|
|||||||
# 注意 anolis 7 有这个文件,可能干扰我们的配置?
|
# 注意 anolis 7 有这个文件,可能干扰我们的配置?
|
||||||
# /etc/cloud/cloud.cfg.d/aliyun_cloud.cfg -> /sys/firmware/qemu_fw_cfg/by_name/etc/cloud-init/vendor-data/raw
|
# /etc/cloud/cloud.cfg.d/aliyun_cloud.cfg -> /sys/firmware/qemu_fw_cfg/by_name/etc/cloud-init/vendor-data/raw
|
||||||
download_cloud_init_config() {
|
download_cloud_init_config() {
|
||||||
os_dir=$1
|
local os_dir=$1
|
||||||
recognize_static6=$2
|
recognize_static6=$2
|
||||||
recognize_ipv6_types=$3
|
recognize_ipv6_types=$3
|
||||||
|
|
||||||
@@ -3328,7 +3329,7 @@ get_image_state() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
modify_windows() {
|
modify_windows() {
|
||||||
os_dir=$1
|
local os_dir=$1
|
||||||
info "Modify Windows"
|
info "Modify Windows"
|
||||||
|
|
||||||
# https://learn.microsoft.com/windows-hardware/manufacture/desktop/windows-setup-states
|
# https://learn.microsoft.com/windows-hardware/manufacture/desktop/windows-setup-states
|
||||||
@@ -3503,7 +3504,7 @@ is_file_or_link() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
cp_resolv_conf() {
|
cp_resolv_conf() {
|
||||||
os_dir=$1
|
local os_dir=$1
|
||||||
if is_file_or_link $os_dir/etc/resolv.conf &&
|
if is_file_or_link $os_dir/etc/resolv.conf &&
|
||||||
! is_file_or_link $os_dir/etc/resolv.conf.orig; then
|
! is_file_or_link $os_dir/etc/resolv.conf.orig; then
|
||||||
mv $os_dir/etc/resolv.conf $os_dir/etc/resolv.conf.orig
|
mv $os_dir/etc/resolv.conf $os_dir/etc/resolv.conf.orig
|
||||||
@@ -3512,19 +3513,19 @@ cp_resolv_conf() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
rm_resolv_conf() {
|
rm_resolv_conf() {
|
||||||
os_dir=$1
|
local os_dir=$1
|
||||||
rm -f $os_dir/etc/resolv.conf $os_dir/etc/resolv.conf.orig
|
rm -f $os_dir/etc/resolv.conf $os_dir/etc/resolv.conf.orig
|
||||||
}
|
}
|
||||||
|
|
||||||
restore_resolv_conf() {
|
restore_resolv_conf() {
|
||||||
os_dir=$1
|
local os_dir=$1
|
||||||
if is_file_or_link $os_dir/etc/resolv.conf.orig; then
|
if is_file_or_link $os_dir/etc/resolv.conf.orig; then
|
||||||
mv -f $os_dir/etc/resolv.conf.orig $os_dir/etc/resolv.conf
|
mv -f $os_dir/etc/resolv.conf.orig $os_dir/etc/resolv.conf
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
keep_now_resolv_conf() {
|
keep_now_resolv_conf() {
|
||||||
os_dir=$1
|
local os_dir=$1
|
||||||
rm -f $os_dir/etc/resolv.conf.orig
|
rm -f $os_dir/etc/resolv.conf.orig
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3598,7 +3599,7 @@ get_ucode_firmware_pkgs() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
chroot_systemctl_disable() {
|
chroot_systemctl_disable() {
|
||||||
os_dir=$1
|
local os_dir=$1
|
||||||
shift
|
shift
|
||||||
|
|
||||||
for unit in "$@"; do
|
for unit in "$@"; do
|
||||||
@@ -3615,7 +3616,7 @@ chroot_systemctl_disable() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
remove_or_disable_cloud_init() {
|
remove_or_disable_cloud_init() {
|
||||||
os_dir=$1
|
local os_dir=$1
|
||||||
|
|
||||||
if ! is_have_cmd_on_disk $os_dir cloud-init; then
|
if ! is_have_cmd_on_disk $os_dir cloud-init; then
|
||||||
return
|
return
|
||||||
@@ -3675,7 +3676,7 @@ remove_or_disable_cloud_init() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
disable_jeos_firstboot() {
|
disable_jeos_firstboot() {
|
||||||
os_dir=$1
|
local os_dir=$1
|
||||||
info "Disable JeOS Firstboot"
|
info "Disable JeOS Firstboot"
|
||||||
|
|
||||||
# 两种方法都可以
|
# 两种方法都可以
|
||||||
@@ -3693,8 +3694,8 @@ disable_jeos_firstboot() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
create_network_manager_config() {
|
create_network_manager_config() {
|
||||||
source_cfg=$1
|
local source_cfg=$1
|
||||||
os_dir=$2
|
local os_dir=$2
|
||||||
info "Create Network-Manager config"
|
info "Create Network-Manager config"
|
||||||
|
|
||||||
# 可以直接用 alpine 的 cloud-init 生成 Network Manager 配置
|
# 可以直接用 alpine 的 cloud-init 生成 Network Manager 配置
|
||||||
@@ -3729,7 +3730,7 @@ create_network_manager_config() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
modify_linux() {
|
modify_linux() {
|
||||||
os_dir=$1
|
local os_dir=$1
|
||||||
info "Modify Linux"
|
info "Modify Linux"
|
||||||
|
|
||||||
find_and_mount() {
|
find_and_mount() {
|
||||||
@@ -4121,7 +4122,7 @@ EOF
|
|||||||
}
|
}
|
||||||
|
|
||||||
setup_nocloud() {
|
setup_nocloud() {
|
||||||
os_dir=$1
|
local os_dir=$1
|
||||||
info "Setup NoCloud"
|
info "Setup NoCloud"
|
||||||
|
|
||||||
# 1. 配置 NoCloud-only datasource
|
# 1. 配置 NoCloud-only datasource
|
||||||
@@ -4167,6 +4168,7 @@ modify_os_on_disk() {
|
|||||||
if mount -o ro /dev/$part /os; then
|
if mount -o ro /dev/$part /os; then
|
||||||
if [ "$only_process" = linux ] || [ "$only_process" = nocloud ]; then
|
if [ "$only_process" = linux ] || [ "$only_process" = nocloud ]; then
|
||||||
if etc_dir=$({ ls -d /os/etc/ || ls -d /os/*/etc/; } 2>/dev/null); then
|
if etc_dir=$({ ls -d /os/etc/ || ls -d /os/*/etc/; } 2>/dev/null); then
|
||||||
|
local os_dir
|
||||||
os_dir=$(dirname $etc_dir)
|
os_dir=$(dirname $etc_dir)
|
||||||
# 重新挂载为读写
|
# 重新挂载为读写
|
||||||
mount -o remount,rw /os
|
mount -o remount,rw /os
|
||||||
@@ -4639,7 +4641,7 @@ change_user_password() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
disable_selinux() {
|
disable_selinux() {
|
||||||
os_dir=$1
|
local os_dir=$1
|
||||||
|
|
||||||
# https://access.redhat.com/solutions/3176
|
# https://access.redhat.com/solutions/3176
|
||||||
# centos7 也建议将 selinux 开关写在 cmdline
|
# centos7 也建议将 selinux 开关写在 cmdline
|
||||||
@@ -4668,7 +4670,7 @@ disable_selinux() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
disable_kdump() {
|
disable_kdump() {
|
||||||
os_dir=$1
|
local os_dir=$1
|
||||||
|
|
||||||
# grubby 只处理 GRUB_CMDLINE_LINUX,不会处理 GRUB_CMDLINE_LINUX_DEFAULT
|
# grubby 只处理 GRUB_CMDLINE_LINUX,不会处理 GRUB_CMDLINE_LINUX_DEFAULT
|
||||||
# rocky 的 GRUB_CMDLINE_LINUX_DEFAULT 有 crashkernel=auto
|
# rocky 的 GRUB_CMDLINE_LINUX_DEFAULT 有 crashkernel=auto
|
||||||
@@ -4902,7 +4904,7 @@ chroot_apt_autoremove() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
del_default_user() {
|
del_default_user() {
|
||||||
os_dir=$1
|
local os_dir=$1
|
||||||
|
|
||||||
local user
|
local user
|
||||||
while read -r user; do
|
while read -r user; do
|
||||||
@@ -4919,7 +4921,7 @@ is_el7_family() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
del_exist_sysconfig_NetworkManager_config() {
|
del_exist_sysconfig_NetworkManager_config() {
|
||||||
os_dir=$1
|
local os_dir=$1
|
||||||
|
|
||||||
# 删除云镜像自带的 dhcp 配置,防止歧义
|
# 删除云镜像自带的 dhcp 配置,防止歧义
|
||||||
rm -rf $os_dir/etc/NetworkManager/system-connections/*.nmconnection
|
rm -rf $os_dir/etc/NetworkManager/system-connections/*.nmconnection
|
||||||
@@ -4944,7 +4946,7 @@ EOF
|
|||||||
|
|
||||||
install_fnos() {
|
install_fnos() {
|
||||||
info "Install fnos/fygoos"
|
info "Install fnos/fygoos"
|
||||||
os_dir=/os
|
local os_dir=/os
|
||||||
|
|
||||||
# 官方安装调用流程
|
# 官方安装调用流程
|
||||||
# /etc/init.d/run_install.sh > trim-install > trim-grub
|
# /etc/init.d/run_install.sh > trim-install > trim-grub
|
||||||
@@ -5126,7 +5128,7 @@ install_qcow_by_copy() {
|
|||||||
|
|
||||||
modify_el_ol() {
|
modify_el_ol() {
|
||||||
info "Modify el ol"
|
info "Modify el ol"
|
||||||
os_dir=/os
|
local os_dir=/os
|
||||||
|
|
||||||
# resolv.conf
|
# resolv.conf
|
||||||
cp_resolv_conf /os
|
cp_resolv_conf /os
|
||||||
@@ -5396,7 +5398,7 @@ EOF
|
|||||||
}
|
}
|
||||||
|
|
||||||
modify_ubuntu() {
|
modify_ubuntu() {
|
||||||
os_dir=/os
|
local os_dir=/os
|
||||||
info "Modify Ubuntu"
|
info "Modify Ubuntu"
|
||||||
|
|
||||||
cp_resolv_conf $os_dir
|
cp_resolv_conf $os_dir
|
||||||
@@ -6024,8 +6026,8 @@ resize_after_install_cloud_image() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
mount_part_basic_layout() {
|
mount_part_basic_layout() {
|
||||||
os_dir=$1
|
local os_dir=$1
|
||||||
efi_dir=$2
|
local efi_dir=$2
|
||||||
|
|
||||||
if is_efi || is_xda_gt_2t; then
|
if is_efi || is_xda_gt_2t; then
|
||||||
os_part_num=2
|
os_part_num=2
|
||||||
|
|||||||
Reference in New Issue
Block a user