core: 记录主硬盘

This commit is contained in:
bin456789
2024-02-01 00:59:34 +08:00
parent 34b9b3a186
commit db1b2c92ca
5 changed files with 201 additions and 47 deletions

View File

@ -34,29 +34,35 @@ selinux --disabled
##############################################
%pre
get_xda() {
# 排除只读盘vda 放前面
# 有的机器有sda和vdavda是主硬盘另一个盘是只读
for _xda in vda xda sda hda xvda nvme0n1; do
if [ -e "/sys/class/block/$_xda/ro" ] &&
[ "$(cat /sys/class/block/$_xda/ro)" = 0 ]; then
echo $_xda
return
fi
done
return 1
}
distro=$(awk -F: '{ print $3 }' </etc/system-release-cpe)
releasever=$(awk -F: '{ print $5 }' </etc/system-release-cpe)
# 重新整理 extragrub把两侧的引号吃掉了eval出错要重新添加引号
# 提取 extra.localtest extra.confhome extra.mirrorlist
# 提取 extra.confhome extra.mirrorlist extra.main_disk
prefix=extra
for var in $(grep -o "\b$prefix\.[^ ]*" /proc/cmdline | xargs); do
eval "$(echo $var | sed -E "s/$prefix\.([^=]*)=(.*)/\1='\2'/")"
done
get_all_disks() {
lsblk -rn --nodeps -o NAME,TYPE | grep 'disk$' | awk '{print $1}'
}
get_xda() {
# 防止 $main_disk 为空
if [ -z "$main_disk" ]; then
return
fi
for disk in $(get_all_disks); do
# shellcheck disable=SC2154
if fdisk -l "/dev/$disk" | grep -iq "$main_disk"; then
echo "$disk"
break
fi
done
}
# 只使用主硬盘
include=/tmp/include-disk-only-use
echo "ignoredisk --only-use=$(get_xda)" >$include