mirror of
https://github.com/DragonOS-Community/DragonOS.git
synced 2025-06-08 18:26:48 +00:00
1.解决waitqueue sleep的时候,由于preempt count不为0,导致sched失败,从而导致该waitqueue下一次wakeup时,会把pcb多次加入调度队列的bug 2.修复socket inode 的read和write方法里面没有使用no_preempt的问题 3. 修复cpu0的内核栈由于脏数据导致new_idle的时候set pcb报错的问题 --------- Co-authored-by: longjin <longjin@DragonOS.org>
90 lines
2.1 KiB
Bash
Executable File
90 lines
2.1 KiB
Bash
Executable File
########################################################################
|
||
# 这是一个用于创建磁盘镜像的脚本
|
||
# 用法:./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目录下
|
||
########################################################################
|
||
|
||
format_as_mbr() {
|
||
echo "Formatting as MBR..."
|
||
# 使用fdisk把disk.img的分区表设置为MBR格式(下方的空行请勿删除)
|
||
fdisk disk.img << EOF
|
||
o
|
||
n
|
||
|
||
|
||
|
||
|
||
a
|
||
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: -- "$@"`
|
||
# 创建一至少为256MB磁盘镜像(类型选择raw)
|
||
qemu-img create -f raw disk.img 256M
|
||
#将规范化后的命令行参数分配至位置参数($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
|
||
sudo mkfs.vfat -F 32 ${LOOP_DEVICE}p1
|
||
sudo losetup -d ${LOOP_DEVICE}
|
||
|
||
echo "Successfully created disk image."
|
||
mkdir -p ../bin
|
||
chmod 777 disk.img
|
||
mv ./disk.img ../bin/
|