Switching from Windows to Linux: Sharing My Experience and Lessons Learned

Associate
Joined
18 Dec 2008
Posts
415
I have decided to move away from Windows and have chosen Debian 12 as my new operating system.

I have spent the last week learning how to set everything up the way I want, and I am very happy with the result.

I have taken a disk image with Rescuezilla as a backup in case I lock out root again lol

Now here is my problem.

I first wanted to create my very own Debian Live USB with all my files, settings and programs all set up and ready to go. When run live-build I end up with an ISO only 300MB in size which is obviously wrong. I have searched and searched but I can’t find a solution. I wanted my own live USB to make it easy to convert my other 2 machines when the time comes.

My next idea is to somehow create a script to automatically download all my apps, settings, and files when I install a fresh copy of Debian, but I can’t find any programs that can do this.

While I am very happy with Rescuezilla, I don’t think it is ideal for transferring my OS onto different hardware.

What is the best practice backup and restore process for Debian or Linux in general?
 
For the machine you have set up, look into Timeshift. It can take daily/weekly snapshots of your system so that you can restore if necessary. You can also use it for manual backups. I recommend having a spare drive in the PC just for Timeshift backups.

For installing your apps after a fresh install, all you need is a text file saying "sudo apt install pkg1 pkg2 pkg3 etc...". Just paste it into a terminal window.

A combination of those two things should take care of everything, as long as you set Timeshift to backup the hidden files in your home directory because most of your app configurations should be in there.

If you want to look at backing up complete drives, any linux live cd/usb, a spare drive and the good old DD command can serve you well. Otherwise you can look at apps made for the purpose like Clonezilla or Macrium Reflect.
 
I am liking Timeshift, thank you for the suggestion.

I can do a “sudo apt list –installed” which lists every programme installed.

Is there anyway to only list the programmes that I have installed that were not included in the installer iso?

I have lost track of what I have installed over the past couple of days.

Is there any way to list the programmes by date installed?
 
Is there any way to list the programmes by date installed?

Bash:
grep " installed" /var/log/dpkg.log

I'm not sure how technical you are, but for configuring my linux systems I use ansible, and prior to that I used a series of bash/shell scripts - but this takes some work, but now all I need to do is install git, clone a repository and run an installer and that will configure everything.
 
Thank you, I was hoping for a list of apps rather than every dependency. It seems that Linux can be too thorough, but I am getting used to that.

Is Linux as durable as Windows when moving a drive image to completely different hardware? or is it best to install from scratch?
 
I've never tried moving to other hardware so can't answer that one,

I always install fresh. It's about 5 minutes to install from a netinst iso. It doesn't take me long to set everything else up either, probably because I've done it so many times. I really enjoy the process.
 
Yes, I really loved installing a fresh copies of Windows XP to refresh the system after it got full of junk. There is something cathartic about setting up or renewing a system from scratch. I think I will just make a list to refer to when I update my next machine so I will have a record of what is needed in the future if I ever need to re-install.

What is the view on getting programmes for Linux? Should I use Repository's as much as possible or is downloading .deb files fine?
 
Stick to standard repositories when you can - they are easier and all the dependencies are usually taken care of. The package has also been tested to work with your version of distro so you shouldn't have any problems.

Having said that, not all apps are in the repos and, in the case of Debian stable especially, not usually the latest version. If you can't find the version you want in the stable repo you might want to get it from backports, or even testing but once you start mixing repositories you can get into a bit of a mess. You might want to consider changing to testing fully - I have found it to be very stable personally.

Downloading .deb files is usually fine in my experience, as long as you can take care of the dependencies. Some of the deb files contain scripts that take care of those for you but some don't.
 
Welcome to the Linux world! You made the best choice with Debian (IMO).

First off, as Buffalo said, you're definitely going to want to be on Trixie/Testing. Debian stable is great for an old laptop or a server but for something you're going to use every day you need to be current. I would always suggest using the Weekly Testing Build for any new installs which can be found here: https://cdimage.debian.org/cdimage/weekly-builds/amd64/iso-cd/ Then choose advanced options --> expert install (don't worry, you don't actually have to be an expert).

Your system will for sure not be as durable as Windows. Windows can be near impossible to kill at times which is a blessing and a curse depending on how you look at it I suppose! So Timeshift is a good shout if you want that sort of thing but in my experience Timeshift can be hit or miss so I'd also agree with the above about just backing up all your stuff and keeping a list of favourite programs and configs. Linux will almost always be faster to reinstall than deeply troubleshoot if you need to get it going again in a hurry. I would never advise moving a drive to different hardware. On Windows or Linux. Windows will at some level try to soldier on through but you would only be inviting disaster doing the same on Linux. OS's are compiled and installed for the hardware they find themselves on. Never move them.

Always get your stuff from the official repos when you can but of course there will be times when a .deb package is all you have. Just try to be as aware as possible what these packages are doing and try not to worry too much. I would say install Flatpak as well (easy instructions on Flathub website). You will often find things that are mainly flatpaks these days. And appimage is a great new choice for beginners since these are little standalone versions of whatever app you're trying out. You just download them, make them executable and off you go. But they will never update obviously as they are fully contained.

Seeing as you are on an Nvidia card (a fellow 4090 enjoyer ;)) I would offer more advice. Don't use nvidia-driver from the repo or any other location people tell you to try (you can hook up to the nvidia developers repo and such like). You should grab the .run installer from Nvidia's website just like you used to on Windows. This may trigger some people but I don't care. Unlike Windows, Nvidia offer several different versions of their Linux driver. The one in the repos ,535 as of writing this, is old AF and won't offer you things like DLSS etc. So you'll want to pick a newer one. I'm currently on the latest (565) with no issues. Just do a quick Google before choosing to see if there's any trouble with the most recent driver. Before installing you'll need to have all your ducks in a row. Things you'll need:

apt install build-essential (probably should always have this anyway)

apt install linux-headers-$(uname -r) (always good after a linux kernel update)

apt install gcc make acpid dkms libglvnd-core-dev libglvnd0 libglvnd-dev libc-dev vulkan-tools (the above might have already brought in some of these. dkms super important)

Don't worry about blacklisting Nouveau, the Nvidia installer does that for you these days.

Get ready for the 32bit Nvidia libraries. Make a folder anywhere you like to house them and append "--compat32-libdir=*" to end of the ./ execution command on the .run Nvidia installer. Where * is the place you chose for the 32bit libs. If you forget don't worry, the installer will mention this.

Once you trigger the installer you choose Nvidia Proprietary and then pretty much say yes to all the options it will give. Once done just reboot and you should be golden. Updating the drivers in the future should be as easy as just running a newer installer, it's pretty clever these days. This is probably the best write up I've seen on the subject: https://www.if-not-true-then-false.com/2021/debian-ubuntu-linux-mint-nvidia-guide/ It's a bit long winded and you don't need to follow it every step but it's a good read to understand what's going on.

For games, make sure the drive you install them on is formatted Linux friendly like ext4. Steam and proton can't read anything else. That's all I can think of for now. You will certainly break everything a few times but don't give up hope.
 
First off, as Buffalo said, you're definitely going to want to be on Trixie/Testing. Debian stable is great for an old laptop or a server but for something you're going to use every day you need to be current. I would always suggest using the Weekly Testing Build for any new installs which can be found here: https://cdimage.debian.org/cdimage/weekly-builds/amd64/iso-cd/ Then choose advanced options --> expert install (don't worry, you don't actually have to be an expert).

Your system will for sure not be as durable as Windows. Windows can be near impossible to kill at times which is a blessing and a curse depending on how you look at it I suppose! So Timeshift is a good shout if you want that sort of thing but in my experience Timeshift can be hit or miss so I'd also agree with the above about just backing up all your stuff and keeping a list of favourite programs and configs. Linux will almost always be faster to reinstall than deeply troubleshoot if you need to get it going again in a hurry. I would never advise moving a drive to different hardware. On Windows or Linux. Windows will at some level try to soldier on through but you would only be inviting disaster doing the same on Linux. OS's are compiled and installed for the hardware they find themselves on. Never move them.

What utter nonsense has just been typed here? I mean, suggesting someone is probably not super experienced with Linux to go Trixie/Testing is hilarious. There's zero reason to not use Ubuntu or one of the other Debian deriatives if you want more up to date than Stable. Weekly testing builds, that's just sheer idiocy, they're testing builds for a reason - you expect issues.

Saying Debian won't be as durable as Windows... Yeah maybe because you're recommending someone use a weekly testing version of Debian.
 
I have just spent 24 hours trying to get my second PC on Debian. I was presented with a Black screen after logon. For some reason nouveau did not like the 3090. To make things worse Grub wasn't working properly either. Every other keypress was double typed, a nightmare! I discovered an hour ago that Grub needs CSM enabled to work correctly which helped a lot. I have added a line to Grub "nouveau.modeset=0" and I am now able to get to the desktop :-)

I have tried to install nvidia drivers three times but it does not appear to be working. I have started tty1, closed GDM, sudo ./the driver everything seems to be doing something with the exception of a warning about 32bit being missing. There is no indication or nvidia app to show for itself.

I must have reinstalled Debian 20 times both full and netinst installers. The important thing is I have learned a lot about Grub and what a PITA nouveau is.

edit
My mistake there is a Nvidia X server app so it appears to be working! :-)
 
Last edited:
Welcome to the Linux world! You made the best choice with Debian (IMO).

First off, as Buffalo said, you're definitely going to want to be on Trixie/Testing. Debian stable is great for an old laptop or a server but for something you're going to use every day you need to be current. I would always suggest using the Weekly Testing Build for any new installs which can be found here: https://cdimage.debian.org/cdimage/weekly-builds/amd64/iso-cd/ Then choose advanced options --> expert install (don't worry, you don't actually have to be an expert).

Your system will for sure not be as durable as Windows. Windows can be near impossible to kill at times which is a blessing and a curse depending on how you look at it I suppose! So Timeshift is a good shout if you want that sort of thing but in my experience Timeshift can be hit or miss so I'd also agree with the above about just backing up all your stuff and keeping a list of favourite programs and configs. Linux will almost always be faster to reinstall than deeply troubleshoot if you need to get it going again in a hurry. I would never advise moving a drive to different hardware. On Windows or Linux. Windows will at some level try to soldier on through but you would only be inviting disaster doing the same on Linux. OS's are compiled and installed for the hardware they find themselves on. Never move them.

Always get your stuff from the official repos when you can but of course there will be times when a .deb package is all you have. Just try to be as aware as possible what these packages are doing and try not to worry too much. I would say install Flatpak as well (easy instructions on Flathub website). You will often find things that are mainly flatpaks these days. And appimage is a great new choice for beginners since these are little standalone versions of whatever app you're trying out. You just download them, make them executable and off you go. But they will never update obviously as they are fully contained.

Seeing as you are on an Nvidia card (a fellow 4090 enjoyer ;)) I would offer more advice. Don't use nvidia-driver from the repo or any other location people tell you to try (you can hook up to the nvidia developers repo and such like). You should grab the .run installer from Nvidia's website just like you used to on Windows. This may trigger some people but I don't care. Unlike Windows, Nvidia offer several different versions of their Linux driver. The one in the repos ,535 as of writing this, is old AF and won't offer you things like DLSS etc. So you'll want to pick a newer one. I'm currently on the latest (565) with no issues. Just do a quick Google before choosing to see if there's any trouble with the most recent driver. Before installing you'll need to have all your ducks in a row. Things you'll need:

apt install build-essential (probably should always have this anyway)

apt install linux-headers-$(uname -r) (always good after a linux kernel update)

apt install gcc make acpid dkms libglvnd-core-dev libglvnd0 libglvnd-dev libc-dev vulkan-tools (the above might have already brought in some of these. dkms super important)

Don't worry about blacklisting Nouveau, the Nvidia installer does that for you these days.

Get ready for the 32bit Nvidia libraries. Make a folder anywhere you like to house them and append "--compat32-libdir=*" to end of the ./ execution command on the .run Nvidia installer. Where * is the place you chose for the 32bit libs. If you forget don't worry, the installer will mention this.

Once you trigger the installer you choose Nvidia Proprietary and then pretty much say yes to all the options it will give. Once done just reboot and you should be golden. Updating the drivers in the future should be as easy as just running a newer installer, it's pretty clever these days. This is probably the best write up I've seen on the subject: https://www.if-not-true-then-false.com/2021/debian-ubuntu-linux-mint-nvidia-guide/ It's a bit long winded and you don't need to follow it every step but it's a good read to understand what's going on.

For games, make sure the drive you install them on is formatted Linux friendly like ext4. Steam and proton can't read anything else. That's all I can think of for now. You will certainly break everything a few times but don't give up hope.
Thanks, I finally managed to get the 32bit libraries and the other lib's installed and was able to run the Nvidia driver to install 32bit again without any warning messages. Its a mystery where the 32bit Nvidia libraries went as there is nothing in the folder I specified lol.

I went with the latest production driver 550 as I want stability more than new features.

I was going to say that I am still on the Windows 537.58 drivers still, but looking at control panel they have secretly updated them to 560.94 without warning me :-( Must have been hidden in a Windows update.

Are there any Linux benchmarks I can run to make sure all is working?

I am planning on running a Windows 11 Pro VM on my main rig once I convert it to Debian. What is the situation with TPM and secure boot? Is it possible to run a Windows 11 pro in a VM without any hacks?
 
Oh did you know to do: "sudo dpkg -add-architecture i386" ..... I forgot to mention that. It enables 32 bit support on your system.

Yeah 550 should be decent as well. It can be tough to choose. One does not "simply" install Nvidia drivers on Linux ha!

As for benchmarks, all the Unigine benchmarks have Linux versions. So you can give Heaven a spin just like you would on Windows.

Never ran a W11 VM yet, I only need XP/7/10 VM's for work but I'd imagine it shouldn't be too hacky at this stage. I'd expect there's just some option or other you tick for a vTPM or something.
 
What utter nonsense has just been typed here? I mean, suggesting someone is probably not super experienced with Linux to go Trixie/Testing is hilarious. There's zero reason to not use Ubuntu or one of the other Debian deriatives if you want more up to date than Stable. Weekly testing builds, that's just sheer idiocy, they're testing builds for a reason - you expect issues.

Saying Debian won't be as durable as Windows... Yeah maybe because you're recommending someone use a weekly testing version of Debian.
*personal attack removed - montymint

The man said he has chosen Debian so I tried to give the best advice I could for someone to get the most out of Debian. Not Ubuntu, Mint or MX. DEBIAN. And Testing does not equal Sid/Unstable. Testing is perfectly fine for everyday home use. This is well known. I'd argue what the Debian team consider testing is probably more solid than most normal distros out there.

And yet there is absolutely no Linux distro out there that is as foolproof as Windows. That is why it owns the consumer market and is in every office building in the world. Jenny in accounts doesn't use Ubuntu, she uses Windows. Because Windows is a goddamn Terminator that will in most cases repair itself from the strangest of mistakes and keep going. This man said he installed Debian 20 times today and I believe it. I highly doubt he has ever had to install Windows 20 times in one day before. Next time maybe think before you go mouthing off to someone just trying to help.
 
Last edited by a moderator:
The man said he has chosen Debian so I tried to give the best advice I could for someone to get the most out of Debian. Not Ubuntu, Mint or MX. DEBIAN. And Testing does not equal Sid/Unstable. Testing is perfectly fine for everyday home use. This is well known. I'd argue what the Debian team consider testing is probably more solid than most normal distros out there.

I never said Testing was Sid.. But it's still testing for a reason. I daily drive Debian, but telling someone who doesn't, or hasn't got much experience with it to daily drive a testing branch is just bad advice.

And yet there is absolutely no Linux distro out there that is as foolproof as Windows. That is why it owns the consumer market and is in every office building in the world. Jenny in accounts doesn't use Ubuntu, she uses Windows. Because Windows is a goddamn Terminator that will in most cases repair itself from the strangest of mistakes and keep going. This man said he installed Debian 20 times today and I believe it. I highly doubt he has ever had to install Windows 20 times in one day before.

Utter tripe, plenty of organisations don't use Windows, is it the predominant OS? Yes of course, that's what happens when you have the power to bundle your software with the biggest OEMs unchallenged for decades. Nobody is suggesting that Linux should immediately be on every desktop in the world, I am merely suggesting that pointing someone at a testing branch of an OS is fundamentally not the first point of call. Your analagy is pointless too, most end-users have never installed Windows, they come pre-installed at an OOBE configuration window from OEMs, or are centrally imaged in organisations. Debian doesn't, and if someone has installed Debian 20 times in one day, then unfortunately there's either a signficiant skill issue, or a hardware issue. Nothing against the OP, Linux is a different way of working, but to say Debian isn't stable is hilarious, I know a lot of people who have upgraded year-on-year from very old versions to the latest across hardware without issue, just the same as there will be people who have done that with Windows.
 
Last edited by a moderator:
Oh did you know to do: "sudo dpkg -add-architecture i386" ..... I forgot to mention that. It enables 32 bit support on your system.

Yeah 550 should be decent as well. It can be tough to choose. One does not "simply" install Nvidia drivers on Linux ha!

As for benchmarks, all the Unigine benchmarks have Linux versions. So you can give Heaven a spin just like you would on Windows.

Never ran a W11 VM yet, I only need XP/7/10 VM's for work but I'd imagine it shouldn't be too hacky at this stage. I'd expect there's just some option or other you tick for a vTPM or something.
Can't remember the command I used but system said something along the lines of have i386 as a foreign architecture enabled - I must have set i386 up when installing something else.

Unigine Heaven ran just fine getting average of 70fps at 4K extreme setting. That was until I accidently set it to a full screen res that my monitor could not display....

Is there a key combination like Crl+Alt+Del Task Manager on Windows to terminate a malfunctional app? I had to turn my monitor off and on where it loaded back to desktop, but would not let my pointer leave the black screen box created by Heaven, so had to reboot. Alt tabbing did not work either though it does work on the desktop normally.

I am satisfied that the Nvidia drivers are fully operational :)
 
Last edited:
It's always handy to have a keyboard shortcut set up to launch a terminal window for things like that. For me, I press CTL-ALT-T and it opens a terminal window. I can then use the btop command to show all running processes and their unique PID.
Then it's just a case of typing 'kill <PID number>'.

If you don't have a shortcut set up then it shouldn't be too difficult to create one.

* btop may not be in Debian, you might use top or htop.
There are other options to kill the process - pkill allows you to use the process name, for example.

As always, some of the details will be dependent on your particular distribution or desktop environment.

There are GUIs available similar to Windows Task Manager (e.g. Mission Center) but I've never used one so don't know how useful they are.

Edit: Just to add, be careful with kill. It does not ask if you are sure and does not provide any feedback on what it's doing/done.
 
Last edited:
Thanks, for my Debian 12 it's "top". A lot of stuff is going on in background, but all the process that belong to me are in the top few lines I think.

I have set up my terminal shortcut to CTL-ALT-T, it's as good as any.

I want to use terminal as much as possible, as I think that is the best way to understand how Linux works, and I think I am getting the basics right.
 
Down another rabbit hole....

Today I have found out that Linux does not like Realtek audio and there are no drivers to fix it!

Audio out works just fine, but line in just won't work, and I have tried everything. To make things worse it causes Tenacity and Audacity to record white noise at one tenth speed.

I found a temporary fix was to use an old USB sound dongle I had lying around, which finally aloud me to record, alas only in mono, but at least it works.

Can anyone suggest a decent USB sound dongle capable of recording in stereo with Linux support? My recording machine is a mini ITX so I can't get a proper sound card.

edit: fix down below.
 
Last edited:
Have you installed firmware-realtek?

I have used Debian with Realtek hardware a lot in the past and not had that problem. I don't use it anymore though so not sure I can help too much.

I think sound in Linux has been difficult sometimes due to responsibility being shared by ALSA and Pulse Audio and there is a relatively new architecture out now too (Pipewire) but I'm not familiar with it and don't know what Debian uses these days.
 
Back
Top Bottom