My question
I have installed Ubuntu 22.04 on my portable SSD. It runs smoothly on my laptop. I intend to plug it into other computers and boot the system. I plan to do all the update, upgrade, package installing on my laptop, and only use the system on the other computers. Here are my questions:
- Since the hardware is different, will the system automatically install suitable drivers when plugged into each computer? Will they conflict with each other?
- Particularly, the GPUs are different. My laptop has a Nvidia 1660 Ti. The other computers may have an AMD card or more recent Nvidia cards. Will new graphics drivers need to be installed on each new computer for the system to work properly? Will they conflict?
Edit: Similar questions
I have read some similar posts, but they are either very old or not entirely the same as my situation.
The answer suggests using a live system or a full installation but avoid proprietary drivers. This does not resolve my question.
This post provides an interesting solution by replicating the root partition, but maybe people at Ubuntu or Nvidia made it easier in the past 3 years? New information would always be helpful.
Improving the solution?
If I have 20 GB of software installed on the system, replicating the root partition will also replicate the software installed, which is wasting a lot of space just for having different versions of a few drivers. To perform updates, I would also need to do the same operations for each replicate.
Would it be possible to install the different versions of drivers in the same location, like /drivers, link them to where they should be, and write a script that runs on boot to update the links depending on the computer the system is being booted on?
Like this:
- /drivers
- essential drivers (no proprietary drivers)/
- computer 1/
- computer 2/
- computer 3/
The system boots on the essential drivers, then the script detects which computer is being used and create links for the drivers in the respective folder. If it is not in the list, only the essential drivers are used. However, I do not think drivers work in this oversimplified way.
OR
Alternatively, would it be easier to install my software in a central place then use it within each root partition replicate, just like how /home is shared? I want to the software to be system-wide available. I will only be running some Python and R packages that will be installed within conda environments. This way at least I can save some storage by not replicating these packages.