Skip to content
This repository was archived by the owner on Sep 8, 2023. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 49 additions & 0 deletions docs/_misc/reactos.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
---
title: ReactOS
homepage: https://reactos.org/
download: https://reactos.org/download
cfgdir: reactos.d
layout: default
---

# {{ page.title }}

> ReactOS is a free and open-source operating system based on the best design
> principles found in the Windows NT architecture. Written completely from
> scratch, ReactOS is not a Linux-based system and it shares none of the UNIX
> architecture. The main goal of the ReactOS project is to provide an operating
> system which is binary compatible with Windows. This will allow Windows
> applications and drivers to run as they would on a Windows system. Additionally,
> the look and feel of the Windows operating system is used, such that people
> accustomed to the familiar user interface of Windows would find using ReactOS
> straightforward. The ultimate goal of ReactOS is to allow people to use it as
> an alternative to Windows without the need to change software they are used to.
>
> -- <cite markdown="1">[DistroWatch][]</cite>


{% if page.cfgdir %}
## Configuration

- [Project's files for {{ page.title }}][config]
{% endif %}


## Supported releases

- BootCD ISO for installation (using [MEMDISK][])
- LoveCD ISO (using [MEMDISK][])


## Links

- [Official homepage]({{ page.homepage }})
- [Official download page]({{ page.download }})
- [{{ page.title }} at DistroWatch][distrowatch]
- [{{ page.title }} at Wikipedia][wikipedia]


[config]: {{ site.github.repository_url | append: "/tree/master/mbusb.d/" | append: page.cfgdir }}
[distrowatch]: https://distrowatch.com/table.php?distribution=reactos
[memdisk]: http://www.syslinux.org/wiki/index.php?title=MEMDISK
[wikipedia]: https://en.wikipedia.org/wiki/ReactOS
5 changes: 5 additions & 0 deletions grub.cfg.example
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,11 @@ submenu "GRUB2 options ->" {
}
}

# Motherboard
menuentry "System Settings" {
fwsetup
}

# Reboot
menuentry "Reboot" {
reboot
Expand Down
147 changes: 141 additions & 6 deletions mbusb.cfg
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
# Partition holding files
regexp --set=rootdisk "^(.*),.*" "$root"
regexp --set=rootpartnum "^.*,.*([0-9]+)" "$root"
probe -u $root --set=rootuuid
set imgdevpath="/dev/disk/by-uuid/$rootuuid"
export imgdevpath rootuuid
export imgdevpath rootuuid rootdisk rootpartnum

# Custom variables
set isopath="/boot/isos"
Expand All @@ -16,8 +18,74 @@ if [ -e "$prefix/mbusb.cfg.local" ]; then
source "$prefix/mbusb.cfg.local"
fi

# Function to look for boot files
function search_files {
root="$1"

insmod bitmap
insmod jpeg
insmod png
insmod tga

for grubfile in \
/boot/grub/loopback.cfg \
/boot/grub/grub.cfg \
/boot/grub/x86_64-efi/grub.cfg \
/EFI/BOOT/grub.cfg; do
if [ -e "$grubfile" ]; then
menuentry "GRUB boot ($grubfile)" "$grubfile" {
grub_file="$2"
configfile "$grub_file"
}
fi
done

for syslinuxfile in \
/isolinux.cfg \
/syslinux.cfg \
/isolinux/isolinux.cfg \
/isolinux/syslinux.cfg \
/syslinux/isolinux.cfg \
/boot/isolinux.cfg \
/boot/isolinux/isolinux.cfg \
/boot/syslinux.cfg \
/boot/syslinux/isolinux.cfg \
/boot/syslinux/syslinux.cfg; do
if [ -e "$syslinuxfile" ]; then
menuentry "SYSLINUX boot ($syslinuxfile)" "$syslinuxfile" {
syslinux_file="$2"
syslinux_configfile -i "$syslinux_file"
}
fi
done

for legacyfile in \
/boot/grub/menu.lst \
/menu.lst; do
if [ -e "$legacyfile" ]; then
menuentry "GRUB legacy boot ($legacyfile)" "$legacyfile" {
legacy_file="$2"
legacy_configfile "$legacy_file"
}
fi
done

if [ "x$grub_platform" == "xefi" ]; then
for efifile in /efi/boot/bootx64.efi; do
if [ -e "$efifile" ]; then
menuentry "EFI boot ($efifile)" "$efifile" {
efi_file="$2"
chainloader "$efi_file"
}
fi
done
fi

}

# MultiBoot USB menu
submenu "Multiboot ->" {

# Warning for 32-bit systems
if ! cpuid -l; then
clear
Expand All @@ -30,9 +98,76 @@ submenu "Multiboot ->" {
echo
fi

# Load configuration files
echo -n "Loading configuration files... "
for cfgfile in $prefix/mbusb.d/*.d/*.cfg; do
source "$cfgfile"
done
# Load configuration for ISO/kernel files
submenu "Boot supported ISO/kernel files ->" {
echo -n "Loading configuration files... "
for cfgfile in $prefix/mbusb.d/*.d/*.cfg; do
source "$cfgfile"
done
}

# Search partitions for boot files
submenu "Auto-detect bootable partitions ->" {
echo -n "Searching pendrive's partitions... "
for part in ($rootdisk,*); do
regexp --set=partnum "^.*,.*([0-9]+)" "$part"
if [ "$partnum" -le "$rootpartnum" ]; then continue; fi
submenu "$part ->" "$part" {
part_name="$2"
probe --fs-uuid $part_name --set=part_uuid
search --fs-uuid --no-floppy --hint=$part_name --set=root $part_uuid
# Look for boot files
search_files $root
}
done
}

# Search ISO files for boot files
submenu "Auto-detect ISO's configfiles ->" {
echo -n "Looking for ISO files... "
for isofile in $isopath/*.iso $isopath/*.img; do
if [ -e "$isofile" ]; then
regexp --set=isoname "$isopath/(.*)" "$isofile"
submenu "$isoname ->" "$isofile" {
iso_path="$2"
export iso_path
search --set=root --file "$iso_path"
loopback loop "$iso_path"
root=(loop)
# Look for boot files
search_files $root
}
fi
done
}

# Use MEMDISK to load ISO files
submenu "Use MEMDISK to boot ISO files ->" {
echo -n "Looking for ISO files... "
for isofile in $isopath/*.iso; do
if [ -e "$isofile" ]; then
regexp --set=isoname "$isopath/(.*)" "$isofile"
menuentry "$isoname" "$isofile" {
iso_path="$2"
bootoptions="iso raw"
linux16 $prefix/memdisk $bootoptions
initrd16 $iso_path
}
fi
done
echo
echo -n "Looking for ISO files... "
for imgfile in $isopath/*.img; do
if [ -e "$imgfile" ]; then
regexp --set=imgname "$isopath/(.*)" "$imgfile"
menuentry "$imgname" "$imgfile" {
img_path="$2"
bootoptions="raw"
linux16 $prefix/memdisk $bootoptions
initrd16 $img_path
}
fi
done
}

}
19 changes: 19 additions & 0 deletions mbusb.d/antiviruslive.d/generic.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
for isofile in $isopath/AntivirusLiveCD-*.iso; do
if [ -e "$isofile" ]; then
regexp --set=isoname "$isopath/(.*)" "$isofile"
submenu "$isoname ->" "$isofile" {
iso_path="$2"
loopback loop "$iso_path"
menuentry "AntivirusLiveCD with Default Display" {
bootoptions="isoboot=$iso_path rw root=/dev/ram0 vga=normal"
linux (loop)/boot/bzImage $bootoptions
initrd (loop)/boot/initrd.gz
}
menuentry "AntivirusLiveCD with VESA Framebuffer" {
bootoptions="isoboot=$iso_path rw root=/dev/ram0 vga=ask"
linux (loop)/boot/bzImage $bootoptions
initrd (loop)/boot/initrd.gz
}
}
fi
done
25 changes: 25 additions & 0 deletions mbusb.d/bitkey.d/generic.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
for isofile in $isopath/turnkey-bitkey-*.iso; do
if [ -e "$isofile" ]; then
insmod test
regexp --set=isoname "$isopath/(.*)" "$isofile"
submenu "$isoname ->" "$isofile" {
iso_path="$2"
loopback loop "$iso_path"
menuentry "Cold Offline: Create wallet, sign transactions" {
bootoptions="boot=casper isoboot=$iso_path rw root=/dev/ram showmounts toram bitkey=cold-offline --"
linux (loop)/casper/vmlinuz $bootoptions
initrd (loop)/casper/initrd.gz
}
menuentry "Cold Online: Watch wallet, prepare transactions" {
bootoptions="boot=casper isoboot=$iso_path rw root=/dev/ram showmounts toram bitkey=cold-online --"
linux (loop)/casper/vmlinuz $bootoptions
initrd (loop)/casper/initrd.gz
}
menuentry "Hot Online: Create & watch wallet, prepare & sign transactions" {
bootoptions="boot=casper isoboot=$iso_path rw root=/dev/ram showmounts toram bitkey=hot-online --"
linux (loop)/casper/vmlinuz $bootoptions
initrd (loop)/casper/initrd.gz
}
}
fi
done
11 changes: 11 additions & 0 deletions mbusb.d/reactos.d/generic.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
for isofile in $isopath/ReactOS*.iso; do
if [ -e "$isofile" ]; then
regexp --set=isoname "$isopath/(.*)" "$isofile"
menuentry "$isoname (memdisk)" "$isofile" {
iso_path="$2"
bootoptions="iso raw"
linux16 $prefix/memdisk $bootoptions
initrd16 $iso_path
}
fi
done
25 changes: 25 additions & 0 deletions mbusb.d/scientificlinux.d/generic.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
for isofile in $isopath/SL-*.iso; do
if [ -e "$isofile" ]; then
regexp --set=isoname "$isopath/(.*)" "$isofile"
submenu "$isoname ->" "$isofile" {
iso_path="$2"
loopback loop "$iso_path"
probe --label --set=cd_label (loop)
menuentry "Start Scientific Linux" {
bootoptions="iso-scan/filename=$iso_path root=live:CDLABEL=$cd_label rootfstype=auto ro rhgb rd.luks=0 rd.md=0 rd.dm=0 rd.live.image quiet"
linux (loop)/isolinux/vmlinuz0 $bootoptions
initrd (loop)/isolinux/initrd0.img
}
menuentry "Start Scientific Linux in basic graphics mode" {
bootoptions="iso-scan/filename=$iso_path root=live:CDLABEL=$cd_label rootfstype=auto ro rhgb rd.luks=0 rd.md=0 rd.dm=0 rd.live.image nomodeset quiet"
linux (loop)/isolinux/vmlinuz0 $bootoptions
initrd (loop)/isolinux/initrd0.img
}
menuentry "Test this media & start Scientific Linux" {
bootoptions="iso-scan/filename=$iso_path root=live:CDLABEL=$cd_label rootfstype=auto ro rhgb rd.luks=0 rd.md=0 rd.dm=0 rd.live.image rd.live.check quiet"
linux (loop)/isolinux/vmlinuz0 $bootoptions
initrd (loop)/isolinux/initrd0.img
}
}
fi
done
14 changes: 14 additions & 0 deletions mbusb.d/thinstation.d/generic.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
for isofile in $isopath/TS-Multiclient*.iso; do
if [ -e "$isofile" ]; then
regexp --set=isoname "$isopath/(.*)" "$isofile"
submenu "$isoname (isolinux.cfg) ->" "$isofile" {
iso_path="$2"
export iso_path
search --set=root --file "$iso_path"
loopback loop "$iso_path"
root=(loop)
syslinux_configfile -i /boot/syslinux/syslinux.cfg
loopback --delete loop
}
fi
done
14 changes: 14 additions & 0 deletions mbusb.d/ubuntustudio.d/generic.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
for isofile in $isopath/ubuntustudio-*.iso; do
if [ -e "$isofile" ]; then
regexp --set=isoname "$isopath/(.*)" "$isofile"
submenu "$isoname (loopback.cfg) ->" "$isofile" {
iso_path="$2"
export iso_path
search --set=root --file "$iso_path"
loopback loop "$iso_path"
root=(loop)
configfile /boot/grub/loopback.cfg
loopback --delete loop
}
fi
done