Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
dadigang
Ventoy
Commits
24b05c03
Commit
24b05c03
authored
Jun 27, 2022
by
longpanda
Browse files
Fix the bug when booting latest KaOS. (#1696)
parent
6d72617e
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
128 additions
and
2 deletions
+128
-2
IMG/cpio/ventoy/hook/kaos/ventoy-disk.sh
IMG/cpio/ventoy/hook/kaos/ventoy-disk.sh
+117
-0
IMG/cpio/ventoy/hook/kaos/ventoy-hook.sh
IMG/cpio/ventoy/hook/kaos/ventoy-hook.sh
+11
-2
No files found.
IMG/cpio/ventoy/hook/kaos/
udev_disk_hoo
k.sh
→
IMG/cpio/ventoy/hook/kaos/
ventoy-dis
k.sh
View file @
24b05c03
...
...
@@ -19,21 +19,99 @@
.
/ventoy/hook/ventoy-hook-lib.sh
if
is_ventoy_hook_finished
||
not_ventoy_disk
"
${
1
:0:-1
}
"
;
then
vtlog
"#########
$0
$*
############"
VTPATH_OLD
=
$PATH
;
PATH
=
$BUSYBOX_PATH
:
$VTOY_PATH
/tool:
$PATH
ventoy_os_install_dmsetup_by_fuse
()
{
vtlog
"ventoy_os_install_dmsetup_by_fuse
$*
"
mkdir
-p
$VTOY_PATH
/mnt/fuse
$VTOY_PATH
/mnt/iso
$VTOY_PATH
/mnt/squashfs
vtoydm
-p
-f
$VTOY_PATH
/ventoy_image_map
-d
$1
>
$VTOY_PATH
/ventoy_dm_table
vtoy_fuse_iso
-f
$VTOY_PATH
/ventoy_dm_table
-m
$VTOY_PATH
/mnt/fuse
mount
-t
iso9660
$VTOY_PATH
/mnt/fuse/ventoy.iso
$VTOY_PATH
/mnt/iso
sfsfile
=
$VTOY_PATH
/mnt/iso/kdeos/x86_64/root-image.sqfs
mount
-t
squashfs
$sfsfile
$VTOY_PATH
/mnt/squashfs
kVer
=
$(
uname
-r
)
KoName
=
$(
ls
$VTOY_PATH
/mnt/squashfs/lib/modules/
$kVer
/kernel/drivers/md/dm-mod.ko
*
)
vtlog
"insmod
$KoName
"
if
echo
$KoName
|
grep
-q
'\.zst'
;
then
zstdcat
$KoName
>
$VTOY_PATH
/dm-mod.ko
insmod
$VTOY_PATH
/dm-mod.ko
else
insmod
$KoName
fi
umount
$VTOY_PATH
/mnt/squashfs
umount
$VTOY_PATH
/mnt/iso
umount
$VTOY_PATH
/mnt/fuse
}
if
is_ventoy_hook_finished
;
then
exit
0
fi
VTPATH_OLD
=
$PATH
;
PATH
=
$BUSYBOX_PATH
:
$VTOY_PATH
/tool:
$PATH
wait_for_usb_disk_ready
modprobe fuse
mkdir
-p
$VTOY_PATH
/mnt/fuse
$VTOY_PATH
/mnt/iso
vtdiskname
=
$(
get_ventoy_disk_name
)
if
[
"
$vtdiskname
"
=
"unknown"
]
;
then
vtlog
"ventoy disk not found"
exit
0
fi
vtoydm
-p
-f
$VTOY_PATH
/ventoy_image_map
-d
"/dev/
${
1
:0:-1
}
"
>
$VTOY_PATH
/ventoy_dm_table
vtoy_fuse_iso
-f
$VTOY_PATH
/ventoy_dm_table
-m
$VTOY_PATH
/mnt/fuse
mount
-t
iso9660
$VTOY_PATH
/mnt/fuse/ventoy.iso
$VTOY_PATH
/mnt/iso
if
grep
-q
'device-mapper'
/proc/devices
;
then
vtlog
"device-mapper module exist"
else
ventoy_os_install_dmsetup_by_fuse
$vtdiskname
fi
# OK finish
set_ventoy_hook_finish
ventoy_udev_disk_common_hook
"
${
vtdiskname
#/dev/
}
2"
"noreplace"
blkdev_num
=
$(
$VTOY_PATH
/tool/dmsetup
ls
|
grep
ventoy |
sed
's/.*(\([0-9][0-9]*\),.*\([0-9][0-9]*\).*/\1:\2/'
)
vtDM
=
$(
ventoy_find_dm_id
${
blkdev_num
}
)
vtlog
"blkdev_num=
$blkdev_num
vtDM=
$vtDM
..."
while
[
-n
"Y"
]
;
do
if
[
-b
/dev/
$vtDM
]
;
then
break
else
sleep
0.3
fi
done
if
[
-n
"
$1
"
]
;
then
vtlog
"ln -s /dev/
$vtDM
$1
"
if
[
-e
"
$1
"
]
;
then
vtlog
"
$1
already exist"
else
ln
-s
/dev/
$vtDM
"
$1
"
fi
else
vtLABEL
=
$(
$BUSYBOX_PATH
/blkid /dev/
$vtDM
|
$SED
's/.*LABEL="\([^"]*\)".*/\1/'
)
vtlog
"vtLABEL is
$vtLABEL
"
if
[
-z
"
$vtLABEL
"
]
;
then
vtLABEL
=
$(
$SED
"s/.*label=
\(
[^ ]*
\)
/
\1
/"
/proc/cmdline
)
vtlog
"vtLABEL is
$vtLABEL
from cmdline"
fi
if
[
-e
"/dev/disk/by-label/
$vtLABEL
"
]
;
then
vtlog
"
$1
already exist"
else
ln
-s
/dev/
$vtDM
"/dev/disk/by-label/
$vtLABEL
"
fi
fi
PATH
=
$VTPATH_OLD
# OK finish
set_ventoy_hook_finish
IMG/cpio/ventoy/hook/kaos/ventoy-hook.sh
View file @
24b05c03
...
...
@@ -2,5 +2,14 @@
.
$VTOY_PATH
/hook/ventoy-os-lib.sh
ventoy_systemd_udevd_work_around
ventoy_add_udev_rule
"
$VTOY_PATH
/hook/kaos/udev_disk_hook.sh %k"
if
$GREP
-q
'^"$mount_handler"'
/init
;
then
echo
'use mount_handler1 ...'
>>
$VTLOG
$SED
"/^
\"\$
mount_handler
\"
/i
\
$BUSYBOX_PATH
/sh
$VTOY_PATH
/hook/kaos/ventoy-disk.sh"
-i
/init
elif
$GREP
-q
'^$mount_handler'
/init
;
then
echo
'use mount_handler2 ...'
>>
$VTLOG
$SED
"/^
\$
mount_handler/i
\
$BUSYBOX_PATH
/sh
$VTOY_PATH
/hook/kaos/ventoy-disk.sh"
-i
/init
fi
if
[
-f
$VTOY_PATH
/ventoy_persistent_map
]
;
then
$SED
"1 aexport cow_label=vtoycow"
-i
/init
fi
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment