mirror of
https://github.com/elseif/MikroTikPatch.git
synced 2026-09-01 04:55:49 +00:00
modified: .github/workflows/patch_v7.yml
modified: install_routeros.sh
This commit is contained in:
84
.github/workflows/patch_v7.yml
vendored
84
.github/workflows/patch_v7.yml
vendored
@@ -752,31 +752,28 @@ jobs:
|
||||
python3 npk.py extract $PUBLISH_DIR/routeros-$VERSION$ARCH_EXT.npk boot/EFI/BOOT/BOOTX64.EFI $BUILD_DIR/chr/BOOTX64.EFI
|
||||
python3 npk.py extract $PUBLISH_DIR/routeros-$VERSION$ARCH_EXT.npk bin/milo $BUILD_DIR/chr/milo
|
||||
chmod +x $BUILD_DIR/chr/milo
|
||||
#要求MBR分区表第一个分区类型必须为0x8300,否则ERROR: could not find disk!
|
||||
|
||||
truncate --size 128M $BUILD_DIR/chr-$VERSION$ARCH_EXT.img
|
||||
sgdisk \
|
||||
--zap-all \
|
||||
--set-alignment=1 \
|
||||
--new=1:34:+32M --typecode=1:8300 --change-name=1:"RouterOS Boot" \
|
||||
--new=2:0:0 --typecode=2:8300 --change-name=2:"RouterOS" \
|
||||
--gpttombr=1:2 \
|
||||
$BUILD_DIR/chr-$VERSION$ARCH_EXT.img
|
||||
dd if=$BUILD_DIR/chr-$VERSION$ARCH_EXT.img of=$BUILD_DIR/mbr.bin bs=1 count=512 conv=notrunc
|
||||
printf '\x01' | dd of=$BUILD_DIR/mbr.bin bs=1 count=1 seek=336 conv=notrunc
|
||||
sgdisk \
|
||||
--zap-all \
|
||||
--set-alignment=1 \
|
||||
--new=1:34:+32M --typecode=1:EF00 --change-name=1:"RouterOS Boot" \
|
||||
--new=2:0:0 --typecode=2:8300 --change-name=2:"RouterOS" \
|
||||
$BUILD_DIR/chr-$VERSION$ARCH_EXT.img
|
||||
dd if=$BUILD_DIR/mbr.bin of=$BUILD_DIR/chr-$VERSION$ARCH_EXT.img bs=1 count=512 conv=notrunc
|
||||
rm $BUILD_DIR/mbr.bin
|
||||
sgdisk --set-alignment=2048 \
|
||||
--new=1:0:+32M --typecode=1:EF00 --change-name=1:"RouterOS Boot" \
|
||||
--new=2:0:-4096 --typecode=2:8300 --change-name=2:"RouterOS" \
|
||||
--hybrid=1:2:EE \
|
||||
$BUILD_DIR/chr-$VERSION$ARCH_EXT.img
|
||||
#Active CHR mode
|
||||
printf '\x01' | dd of=$BUILD_DIR/chr-$VERSION$ARCH_EXT.img bs=1 seek=336 conv=notrunc
|
||||
#Active boot
|
||||
printf '\x80' | dd of=$BUILD_DIR/chr-$VERSION$ARCH_EXT.img bs=1 seek=446 conv=notrunc
|
||||
#Must be 0x83, ERROR: could not find disk!
|
||||
printf '\x83' | dd of=$BUILD_DIR/chr-$VERSION$ARCH_EXT.img bs=1 seek=450 conv=notrunc
|
||||
|
||||
dd if=$BUILD_DIR/chr-$VERSION$ARCH_EXT.img skip=446 bs=1 count=64 | hexdump -C
|
||||
|
||||
sudo qemu-nbd -d /dev/nbd0
|
||||
sudo qemu-nbd -c /dev/nbd0 -f raw $BUILD_DIR/chr-$VERSION$ARCH_EXT.img
|
||||
sudo partprobe /dev/nbd0
|
||||
sudo mkfs.vfat -n "Boot" /dev/nbd0p1
|
||||
sudo mkfs.ext4 -F -L "RouterOS" -m 0 /dev/nbd0p2
|
||||
sudo fdisk -l /dev/nbd0
|
||||
sudo mkfs.vfat -F 16 -n "Boot" /dev/nbd0p1
|
||||
sudo mkfs.ext4 -F -m 0 -b 4096 -L "RouterOS" /dev/nbd0p2
|
||||
sudo mount -o uid=$(id -u),gid=$(id -g) /dev/nbd0p1 $BUILD_DIR/chr/boot
|
||||
sudo mkdir -p $BUILD_DIR/chr/boot/EFI/BOOT
|
||||
sudo cp -v $BUILD_DIR/chr/BOOTX64.EFI $BUILD_DIR/chr/boot/EFI/BOOT/BOOTX64.EFI
|
||||
@@ -826,29 +823,34 @@ jobs:
|
||||
rm $BUILD_DIR/chr-$VERSION$ARCH_EXT.*
|
||||
|
||||
|
||||
FIRMWARE_TYPE="bios"
|
||||
echo "Creating x86 legacy bios CHR..."
|
||||
|
||||
truncate --size 128M $BUILD_DIR/chr-$VERSION$ARCH_EXT-legacy-bios.img
|
||||
sgdisk \
|
||||
--zap-all \
|
||||
--set-alignment=1 \
|
||||
--new=1:34:+32M --typecode=1:8300 --change-name=1:"RouterOS Boot" --attributes=1:set:2 \
|
||||
--new=2:0:-4096 --typecode=2:8300 --change-name=2:"RouterOS" \
|
||||
--gpttombr=1:2 \
|
||||
$BUILD_DIR/chr-$VERSION$ARCH_EXT-legacy-bios.img
|
||||
dd if=$BUILD_DIR/chr-$VERSION$ARCH_EXT-legacy-bios.img of=$BUILD_DIR/mbr.bin bs=1 count=512 conv=notrunc
|
||||
echo "FA31C08ED0BC007C89E65007501FFBFCBF0006B90001F2A5EA1D060000BEBE07B304803C807423803C00750983C610FECB75EFCD18BE9B06AC3C00740B56BB0700B40ECD105EEBF0EBFE8B148B4C0289F5BF0500BB007CB8010257CD135F730C31C0CD134F75EDBE7C06EBCCBFFE7D813D55AA75C289EEEA007C00004572726F72206C6F6164696E67206F7065726174696E672073797374656D004D697373696E67206F7065726174696E672073797374656D0000000000" | xxd -r -p | sudo dd of=$BUILD_DIR/mbr.bin bs=1 count=440 conv=notrunc
|
||||
printf '\x01' | sudo dd of=$BUILD_DIR/mbr.bin bs=1 count=1 seek=336 conv=notrunc
|
||||
printf '\x80' | sudo dd of=$BUILD_DIR/mbr.bin bs=1 count=1 seek=446 conv=notrunc
|
||||
sgdisk \
|
||||
--zap-all \
|
||||
--set-alignment=1 \
|
||||
--new=1:34:+32M --typecode=1:8300 --change-name=1:"RouterOS Boot" --attributes=1:set:2 \
|
||||
--new=2:0:-4096 --typecode=2:8300 --change-name=2:"RouterOS" \
|
||||
$BUILD_DIR/chr-$VERSION$ARCH_EXT-legacy-bios.img
|
||||
dd if=$BUILD_DIR/mbr.bin of=$BUILD_DIR/chr-$VERSION$ARCH_EXT-legacy-bios.img bs=1 count=512 conv=notrunc
|
||||
sudo rm $BUILD_DIR/mbr.bin
|
||||
truncate --size 128M $BUILD_DIR/chr-$VERSION$ARCH-legacy-bios.img
|
||||
sgdisk --set-alignment=2048 \
|
||||
--new=1:0:+32M --typecode=1:EF00 --change-name=1:"RouterOS Boot" \
|
||||
--new=2:0:-4096 --typecode=2:8300 --change-name=2:"RouterOS" \
|
||||
--hybrid=1:2:EE \
|
||||
$BUILD_DIR/chr-$VERSION$ARCH_EXT-legacy-bios.img
|
||||
#MBR bootloader code
|
||||
echo "FA31C08ED0BC007C89E65007501FFBFCBF0006B90001F2A5EA1D060000BEBE07B304803C807423803C00750983C610FECB75EFCD18BE9B06AC3C00740B56BB0700B40ECD105EEBF0EBFE8B148B4C0289F5BF0500BB007CB8010257CD135F730C31C0CD134F75EDBE7C06EBCCBFFE7D813D55AA75C289EEEA007C00004572726F72206C6F6164696E67206F7065726174696E672073797374656D004D697373696E67206F7065726174696E672073797374656D0000000000" | xxd -r -p | sudo dd of=$BUILD_DIR/chr-$VERSION$ARCH_EXT-legacy-bios.img bs=1 conv=notrunc
|
||||
LBA=2048
|
||||
HEAD=$(( (LBA / 63) % 16 ))
|
||||
SEC=$(( (LBA % 63) + 1 ))
|
||||
CYL=$(( (LBA / 63) / 16 ))
|
||||
CYL_HIGH=$(( (CYL >> 8) & 0x03 ))
|
||||
CYL_LOW=$(( CYL & 0xFF ))
|
||||
HEX_CHS=$(printf "%02x%02x%02x" $HEAD $(( SEC | (CYL_HIGH << 6) )) $CYL_LOW)
|
||||
echo "LBA:$LBA, Cylinder=$CYL, Head=$HEAD, Sector=$SEC (Hex: $HEX_CHS)"
|
||||
echo "$HEX_CHS" | xxd -r -p | dd of=$BUILD_DIR/chr-$VERSION$ARCH_EXT-legacy-bios.img bs=1 seek=447 conv=notrunc status=none
|
||||
#Active CHR mode
|
||||
printf '\x01' | dd of=$BUILD_DIR/chr-$VERSION$ARCH_EXT-legacy-bios.img bs=1 seek=336 conv=notrunc
|
||||
#Active boot
|
||||
printf '\x80' | dd of=$BUILD_DIR/chr-$VERSION$ARCH_EXT-legacy-bios.img bs=1 seek=446 conv=notrunc
|
||||
#Must be 0x83, ERROR: could not find disk!
|
||||
printf '\x83' | dd of=$BUILD_DIR/chr-$VERSION$ARCH_EXT-legacy-bios.img bs=1 seek=450 conv=notrunc
|
||||
|
||||
dd if=$BUILD_DIR/chr-$VERSION$ARCH_EXT-legacy-bios.img skip=446 bs=1 count=64 | hexdump -C
|
||||
|
||||
sudo qemu-nbd -d /dev/nbd0
|
||||
sudo qemu-nbd -c /dev/nbd0 -f raw $BUILD_DIR/chr-$VERSION$ARCH_EXT-legacy-bios.img
|
||||
sudo partprobe /dev/nbd0
|
||||
|
||||
Reference in New Issue
Block a user