From 365023633fca75088017fa4e870a9aae906f0eef Mon Sep 17 00:00:00 2001 From: Michael Slattery Date: Wed, 12 Aug 2020 20:43:12 -0400 Subject: [PATCH] Doc updates --- README.md | 2 +- doc/TODO.md | 62 +++++++++++++++++++++++++------ doc/junk/garbage.txt | 87 +++++++++++++++++++++++++++++++++++++++++++- doc/next.md | 9 +++-- 4 files changed, 143 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 4eeec97..c22d9cf 100644 --- a/README.md +++ b/README.md @@ -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. diff --git a/doc/TODO.md b/doc/TODO.md index e7043e6..19a19ce 100644 --- a/doc/TODO.md +++ b/doc/TODO.md @@ -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 @@ -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 @@ -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 @@ -145,11 +178,14 @@ 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 @@ -157,10 +193,6 @@ This is subject to change over time. * grub.cfg + initrd.lz - Undo installation (up to this point) -#### Compatibility Warnings - -* NVidia - ## Support and Testing ### Manual Testing @@ -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 + diff --git a/doc/junk/garbage.txt b/doc/junk/garbage.txt index 7eebbce..46cca45 100644 --- a/doc/junk/garbage.txt +++ b/doc/junk/garbage.txt @@ -47,6 +47,7 @@ documentation: + repositories: - https://github.com/user/project winfs: /mnt/ntfs @@ -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 ----- @@ -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. diff --git a/doc/next.md b/doc/next.md index ac3a779..4495842 100644 --- a/doc/next.md +++ b/doc/next.md @@ -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 @@ -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' @@ -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 @@ -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