增加uefi启动 (#101)

* 增加uefi启动

* 修改脚本

* uefi修改

* 删除错误的注释

* 修正写入磁盘镜像的脚本

* 修改X86_64为x86_64

Co-authored-by: longjin <longjin@RinGoTek.cn>
This commit is contained in:
YJwu2023
2022-12-09 16:08:54 +08:00
committed by GitHub
parent 1a2eaa402f
commit 7f439c5ddb
6 changed files with 172 additions and 36 deletions

View File

@ -1,9 +1,18 @@
echo "Creating virtual disk image..."
########################################################################
# 这是一个用于创建磁盘镜像的脚本
# 用法:./create_hdd_image.sh -P MBR/GPT
# 要创建一个MBR分区表的磁盘镜像请这样运行它 bash create_hdd_image.sh -P MBR
# 要创建一个GPT分区表的磁盘镜像请这样运行它 bash create_hdd_image.sh -P GPT
# 请注意这个脚本需要root权限
# 请注意运行这个脚本之前需要在您的计算机上安装qemu-img和fdisk以及parted
#
# 这个脚本会在当前目录下创建一个名为disk.img的文件这个文件就是磁盘镜像
# 在完成后会将这个文件移动到bin目录下
########################################################################
# 创建一至少为32MB磁盘镜像类型选择raw
qemu-img create -f raw disk.img 32M
# 使用fdisk把disk.img的分区表设置为MBR格式(下方的空行请勿删除)
format_as_mbr() {
echo "Formatting as MBR..."
# 使用fdisk把disk.img的分区表设置为MBR格式(下方的空行请勿删除)
fdisk disk.img << EOF
o
n
@ -14,6 +23,59 @@ n
w
EOF
}
format_as_gpt() {
echo "Formatting as GPT..."
sudo parted disk.img << EOF
mklabel gpt
y
mkpart
p1
FAT32
0
-1
I
set
1
boot
on
print
q
EOF
}
echo "Creating virtual disk image..."
ARGS=`getopt -o P: -- "$@"`
# 创建一至少为64MB磁盘镜像类型选择raw
qemu-img create -f raw disk.img 64M
#将规范化后的命令行参数分配至位置参数($1,$2,...)
eval set -- "${ARGS}"
#echo formatted parameters=[$@]
#根据传入参数进行MBR/GPT分区
case "$1" in
-P)
if [ $2 == "MBR" ];
then
format_as_mbr
elif [ $2 == "GPT" ];
then
format_as_gpt
else
echo "Invalid partition type: $2"
exit 1
fi
;;
--)
# 如果没有传入参数-P则默认为MBR分区
format_as_mbr
;;
*)
echo "Invalid option: $1"
exit 1
;;
esac
LOOP_DEVICE=$(sudo losetup -f --show -P disk.img) \
|| exit 1
echo ${LOOP_DEVICE}p1