pennmanor / pmage Goto Github PK
View Code? Open in Web Editor NEWLicense: Mozilla Public License 2.0
License: Mozilla Public License 2.0
Grub fallback mode looks interesting. If we fail to boot an image it will detect this and automatically boot the next image when the computer is restarted.
The docs are here: https://www.gnu.org/software/grub/manual/legacy/Booting-fallback-systems.html
If someone could investigate this and build up a grub config/init script I can get it implemented in the images.
pmage has no way to detect what image is currently running. This will be needed so pmage knows if it needs to apply a new image.
I imagine this something like how deb packages all have a version so apt can determine if the package on the system needs to be upgraded.
At a minimum I think we need to make sure the user account exists on the new image and copy over the password.
Distros typically reserver uid < 1000 for system accounts. Everything else should have been created by the end user. So it might be more robust to just pull over all accounts with a uid > 1000.
The minimum uid appears to be stored in /etc/login.defs
Read image file input from stdin
Bookmarks from firefox + chrome should survive even if we decide to clean up the rest of the home folder.
I'm thinking something like an apt repository where we can continually import different images.
There will need to be some metadata file that has the url for the image, the image version, etc.
After imaging the root filesystem is not automatically expanded to fill up the partition.
Currently we are relying on filesystem labels to determine which root filesystem to apply the image too. While this approach works it is problematic when the imager doesn't complete because the label could be missing. The next time pmage is started it won't be able to determine what partition to use because the label is missing.
One fix could be storing the filesystem partition + default labels in a txt file on the recovery partition. If pmage is not able to determine the partitions from the current labels it could fall back to using that txt file as defaults.
Another potentially more robust option (although more invasive since it impacts FLDT) would be to use GPT partition labels. Currently FLDT images with MSDOS partition tables.
Copy over /etc/NetworkManager/system-connections/* to the new image.
This should preserve any home network connections the students added.
Running system updates got rid of the special grub menu. Reinstalled grub on the mbr.
Investigate some tools for building the image file.
The bzipped root file system will come from packer but the actual .img file that pmage expects also contains the installation scripts and some metadata files archived in a single tar file.
This could really be anything... I doesn't have to be written in go.
Possibly implement a way to 'list' available images. Perhaps a ./imager list
command that displays image files available?
This might be useful only for testing purposes, but I think it might also be useful for changing distros, if the possibility is still being entertained.
Downloading the image uses the full bandwidth. It should probably be throttled.
After imaging do we want to clean up the user's home folder? What should be preserved?
Keep everything if distro version is the same?
Make it a parameter?
Only remove the ~/. hidden folders?
Other ideas?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.