Skip to content

Commit

Permalink
Doc updates
Browse files Browse the repository at this point in the history
  • Loading branch information
Michael Slattery committed Aug 13, 2020
1 parent b559f9e commit 3650236
Show file tree
Hide file tree
Showing 4 changed files with 143 additions and 17 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ from releases.
1. Enjoy your new Linux OS!

If you were able to install Linux with Tunic, please
add a comment to [Success Stores](https://github.com/mikeslattery/tunic/issues/12),
add a comment to [Success Stores](https://github.com/mikeslattery/tunic/issues/12),
or send a message [to the author](https://www.reddit.com/message/compose/?to=funbike).

See the [FAQ](doc/faq.md) if you need further help.
Expand Down
62 changes: 50 additions & 12 deletions doc/TODO.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,15 +39,31 @@ This is subject to change over time.
* Plugins and flexible configuration to make it easy for others to help
* Buttons to go to web sites for help: google search, ubuntu support
* LVM and/or partition util?
* Programming Language change?
* Desktop icons: efi recover, OS in VM, reboot, browse files
* VirtualBox Linux host runs Windows partition w/sync protections.
* Reboot and continue without user intervention of password during install
* VirtualBox Linux host runs Windows partition.
* Keyboard layout preseed/import
* Detect accidental Linux MBR install. Fix and/or replace.
* Nvidia options: restrict distro list, install driver, disable nvidia, do nothing.
* Laptop specific packages and settings
* Add useful secondary repos and other common distro tweaks
* Autoupdates checkbox
* Tunic welcome app
* `nomodeset` checkbox.
* Detect SATA mode RAID. Inform user to set to AHCI.
* Troubleshooting screen, if tunic was used before (to completion).

## Other Possible Use Cases and sub-components

### Spins

* USB/PXE Tunic. Meant for multiple machines. Can save inputs to USB file for use on subsequent machines.
* OEM Tunic. Useful as initial installed launchpad OS. Wifi required. Pi spin.
* Enterprise Tunic. Uniform PXE/USB installations.
* Distro Tunic. Regular app for specific distro.
* Tunic for MacOS/Linux/RaspPi/ChromeOS.
* Tunic for Android. Similar to Termux.
* Evil Tunic. Auto-install. No user password. iso and exe variants.

### Windows

* Import apps from Windows to OSS Windows
Expand All @@ -56,8 +72,11 @@ This is subject to change over time.
* Full convert from Windows to Linux
* Install existing Linux partition as VM
* Uninstall Linux dual boot
* Install WSL to partition.
* Install WSL to partition. Boots Ubuntu and chroot to WSL.
* Convert Linux VM to a partition
* Run Linux in file on ntfs/ext4 loopback
* Auto-repair Linux nvram entry. Auto-reboot, if linux was default and last booted OS.
* "Reboot to Linux" shortcut

### Windows and Linux

Expand All @@ -76,13 +95,27 @@ This is subject to change over time.
* Import settings/apps from Windows to Linux
* Remove Windows
* Install Windows after Linux
* Install Windows into VM
* Install another Linux distro over current.
* Recovery partition/chroot. Non-LVM. Alpine. Grub, LVM tools and scripts.
* Convert to LVM
* Fast EFI boot (fwbootmgr -> Linux kernel w/ ext4 efi driver)
* Decimate Windows. Delete all except user files, defrag.
* Fast EFI boot (fwbootmgr -> efistub w/ ext4,lvm efi drivers)
* Decimate Windows. Delete all except user files. defrag, shrink.
* access WSL from Linux. /mnt/wsl. v1 read only. v2 mount the VM disk.
* "Reboot to Windows" shortcut

### Stability and Robustness

* Before start of install, remove custom grub by Tunic.
* Grub timeout. Boot back to windows and remove tunic's grub.
* Windows Task on boot that reinstalls Grub's NVRAM entry, if missing.
* Windows Task on boot that removes custom grub by Tunic.
* NVidia warning. Recommend PopOS. Disable opt-out. Driver package.
* Model/Vendor specific workarounds for various issues.

### Far Future
* Allow secure boot. Detect if supportable.

* Theming/ricing
* Support for: Windows Vista/XP, 32bit w/MBR, MBR
* AD domain login
* Fully remove Windows with option to convert to VM
Expand Down Expand Up @@ -145,22 +178,21 @@ This is subject to change over time.
* Bitlocker
* Compatibility (some day)

#### Hardware warnings and help

* Detect nvidia. Give options with caveats.

#### Warnings

* Backup
* Upgrade firmware
* Disable secure boot
* Might brick your machine
* Limited support

#### Uninstallers

* grub.cfg + initrd.lz - Undo installation (up to this point)

#### Compatibility Warnings

* NVidia

## Support and Testing

### Manual Testing
Expand All @@ -187,3 +219,9 @@ This is subject to change over time.
5. Copy grub files to efi partition
6. Reboot to Linux

## Safety and Qualtiy

* If Windows VM, disable ignore flush, enable host cache. https://www.virtualbox.org/ticket/4651
* Immediately uninstall tunic grub during start of install
* Disable nouveau

87 changes: 86 additions & 1 deletion doc/junk/garbage.txt
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ documentation:




repositories:
- https://github.com/user/project
winfs: /mnt/ntfs
Expand All @@ -69,9 +70,50 @@ importers:
RootPlugins:
- ScannerPlugin

distro record
description
version
distro template (e.g. ubuntu-flavors)
download URLs or file (metalink, .torrent)
flags: secure boot, 32 bit, MBR/EFI, beginner
bootloader: grub, systemd-boot
nvidia post-install script
pre/post install scripts

distro filters
if os=64, only show 64 bit
if hw=32, only show 32 bit
if efi=64, only show 64 bit
if efi=32, only show 32 bit
if >4GB only show 64 bit
else show both (mbr, hw=64, <=4GB RAM)

legacy systems
Windows XP < SP2 - download and install SP2
Windows XP SP2
Windows 95/98/ME - loadlin
Only full disk replacement

Testing cominations:
Windows 98, XP, 7, 8.1, 10
32, 64 bit
MBR, EFI
combos: 98/32/MBR, XP/32/MBR, 7/(32/64)/MBR, (8/10)/(32-MBR/64-EFI), 10/32/EFI = 1+1+2+4+1 = 9
base on marketshare: 10/64/EFI, 7/64/EFI, 8/64/EFI, 7/32/MBR
mitigations: upgrade to 10, mbr2efi

distro URLs and grub
https://github.com/mbusb/multibootusb/tree/devel/data/multibootusb/grub/menus
https://github.com/unetbootin/unetbootin/blob/master/src/unetbootin/distrolst.cpp
https://github.com/bwnickle/YUMI/blob/master/srcLinux/.src/Add.module
https://www.pendrivelinux.com/downloads/Universal-USB-Installer/Universal-USB-Installer-1.9.9.3.src.zip

-----
grub for tunic


* Instal Grub for Windows, 32 or 64 bit, MBR or UEFI
* Boot to tunic grub only once using bcdedit /bootsequence
* During install, remove tunic grub nvram and files

-----

Expand All @@ -89,6 +131,49 @@ name: MozillaMaintenanceService
match: 'Mozilla Maintenance Service'
status: ignore

-----
golang

* Start out with unit tests, GHA, functional tests, packaging
* fyne gui library
* embed files into executable
* github actions for builds
* uac - https://gist.github.com/jerblack/d0eb182cc5a1c1d92d92a4c4fcc416c6

* mvp 0 - just lets you know if system is compatible with Tunic
- no GUI
- Github actions
- validations
- 32 bit
* mvp 1 - CLI to install tunic given a .iso file. non-interactive.
- Copy .iso argument to efi
- copy grub files onto efi
- install grub
- reboot
* disable fastboot
* secure boot
* Download Mint Cinnamon latest
* GUI MVP
- single page
- read-only fields: disclaimer, progress
- buttons: ok, quit/cancel
* UAC
* disclaimer checkbox
* progress page
* ubuntu and mint flavors pulldown
* preseed basics (locale, TZ, kb)
* install type
* free space page w/o utilities
* user pane
* auto reboot into linux (if not custom)
* free space page w/utilities
* iso list from unetbootin, multibootusb
* grub cleanup post-install
* auto release on push to master
* email me on master build failures
* auto upate iso list in GHA once a week


-----

# Core properties.
Expand Down
9 changes: 6 additions & 3 deletions doc/next.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@
* Windows 7 / Python
- new branch
- python3, gtk, 32 bit, no choco
- python linter
- github actions
- vim: editorconfig check
- hello world - show hi/hello.txt
- deploy with subdirs to windows 7 32 bit
- arch: unit tests, MVP, mock OS
Expand All @@ -43,7 +46,7 @@
* distros
$vmlinux = (dir 'D:\' -file -filter '*vmlinu*' -recurse).FullName.toLower() -replace '^\w:','' -replace '\\','/'
$initrd = (dir 'D:\' -file -filter '*initrd*' -recurse).FullName.toLower() -replace '^\w:','' -replace '\\','/'

# only work if a single hit. otherwise use default, even if it doesn't exist
#$global:data.iso_url = 'ubuntu-18.04.3-desktop-amd64.iso'
#$global:data.iso_url = 'deepin-15.11-amd64.iso'
Expand Down Expand Up @@ -93,7 +96,7 @@
* Win 7, EFI/MBR, 32/64 bit (hardware) testing
* reboot-continue (to delete swap)
* Advanced options
* icons: os-uninstall, Windows files,
* icons: os-uninstall, Windows files,
* 1.0
* abort.sh (also before.sh, after.sh)
* bitlocker
Expand Down Expand Up @@ -161,7 +164,7 @@ cards: checks, input, advanced, progress
* Browse Config files (dir of generated preseed.cfg, grub.cfg, ks.cfg)
* [ ] Skip shrink partition (clean, disable swap, defrag, reboot-cont)
* [ ] Skip Ubiquity UI
* [x] Reboot now
* [x] Reboot now

# validation
* https://stackoverflow.com/questions/4645126/looking-for-regex-code-for-hostname-machine-name-validation
Expand Down

0 comments on commit 3650236

Please sign in to comment.