<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: lsroot</title>
    <description>The latest articles on DEV Community by lsroot (@lsroot).</description>
    <link>https://dev.to/lsroot</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3316954%2F4701ccd7-a708-49fa-8268-aa2757b833da.png</url>
      <title>DEV Community: lsroot</title>
      <link>https://dev.to/lsroot</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/lsroot"/>
    <language>en</language>
    <item>
      <title>How One Package Broke My Whole System</title>
      <dc:creator>lsroot</dc:creator>
      <pubDate>Tue, 08 Jul 2025 12:38:21 +0000</pubDate>
      <link>https://dev.to/lsroot/how-one-package-broke-my-whole-systemmd-a1c</link>
      <guid>https://dev.to/lsroot/how-one-package-broke-my-whole-systemmd-a1c</guid>
      <description>&lt;p&gt;Back when I first started using Linux, I installed Ubuntu. I was really careful with the installation because I thought that if Linux got corrupted, Windows would also be affected. When setting up a dual-boot system, I ran the installer on a different computer, installed Ubuntu onto a USB hard drive, and then booted from that drive.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy527gysaif3jef2ugm23.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy527gysaif3jef2ugm23.png" width="800" height="539"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How Linux “Broke” My Windows
&lt;/h2&gt;

&lt;p&gt;After I installed Linux, I started setting it up. Here's what I did:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Changed my wallpaper&lt;/li&gt;
&lt;li&gt;Connected my Bluetooth headphones&lt;/li&gt;
&lt;li&gt;Installed VSCode&lt;/li&gt;
&lt;li&gt;Installed Node.js&lt;/li&gt;
&lt;li&gt;Explored the pre-installed apps
The next day, I forgot that I had Linux installed and booted into Windows. The first thing I did was try to connect my Bluetooth headphones, but it didn’t work. So I ended up using a wired connection instead. Also, the LAN port on the motherboard wouldn’t connect — only a LAN-to-USB adapter worked.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The next day, I booted into Linux again, and everything worked fine.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I destroyed My Linux Setup
&lt;/h2&gt;

&lt;p&gt;I think it was around four days into using Linux when I wanted to install an application (I don’t remember the name anymore). It was in the AppImage format, and the guide I was following said I needed to install a dependency called &lt;code&gt;libfuse2&lt;/code&gt;. I installed it using &lt;code&gt;apt&lt;/code&gt; and said "yes" to everything.&lt;/p&gt;

&lt;p&gt;After installing the dependency, I wanted to run the AppImage file. I opened the file manager to launch it, but instead of running the app, I got a folder analysis view. Now I know that this usually appears when the file manager has been removed.&lt;/p&gt;

&lt;p&gt;After that, I rebooted the system, but I couldn’t log in anymore. So I gave up on Linux and went back to using Windows.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Actually Happened
&lt;/h2&gt;

&lt;p&gt;Now I know a lot more about Linux and use it as my daily driver. Back then, when I had these issues, I didn’t search online for solutions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Bluetooth Issues
&lt;/h3&gt;

&lt;p&gt;When you connect a Bluetooth device, Windows stores the &lt;strong&gt;MAC address&lt;/strong&gt; of the device and generates a &lt;strong&gt;link key&lt;/strong&gt;, which is saved by both Windows and the Bluetooth device. In some cases—especially with certain headphones—the device may also store the MAC address of the PC it paired with.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F39ogdej9ygn8whbs2o3m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F39ogdej9ygn8whbs2o3m.png" width="800" height="539"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When you switch to Ubuntu, your PC may use a different Bluetooth MAC address, and a new link key is generated. However, your headphones may still be expecting to connect to a device with the original MAC address and link key, so the pairing fails.&lt;/p&gt;

&lt;h3&gt;
  
  
  No File Manager and Login Failure
&lt;/h3&gt;

&lt;p&gt;You might know the YouTuber &lt;strong&gt;Linus Tech Tips&lt;/strong&gt;, who also tried using Linux and ran into issues when installing the &lt;code&gt;steam&lt;/code&gt; package. The &lt;code&gt;steam&lt;/code&gt; package had conflicts with some other packages, including ones responsible for the desktop environment.&lt;/p&gt;

&lt;p&gt;When a package conflict occurs, the package manager asks whether to remove the conflicting packages. If you don’t read the output carefully and just say “yes” (like I did), things can go wrong.&lt;/p&gt;

&lt;p&gt;In my case, Ubuntu already had &lt;code&gt;fuse3&lt;/code&gt; installed. I tried to install an older version (&lt;code&gt;fuse2&lt;/code&gt;), which conflicted with &lt;code&gt;fuse3&lt;/code&gt;. The package manager asked if I wanted to remove &lt;code&gt;fuse3&lt;/code&gt; — &lt;strong&gt;and all packages that depended on it&lt;/strong&gt;. Unfortunately, many components of the GNOME desktop environment depend on &lt;code&gt;fuse3&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0hce6agva18f5cxyrwfp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0hce6agva18f5cxyrwfp.png" width="800" height="539"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As a result, I lost the file manager (since it's part of GNOME), and I couldn’t log in anymore because the system tried to load a desktop environment that I had unknowingly uninstalled.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Have I Learned
&lt;/h2&gt;

&lt;p&gt;Always read every &lt;strong&gt;yes or no&lt;/strong&gt; prompt carefully.&lt;br&gt;
If something breaks, &lt;strong&gt;look it up&lt;/strong&gt; — don’t give up.&lt;/p&gt;

</description>
      <category>linux</category>
      <category>ubuntu</category>
      <category>dualboot</category>
    </item>
    <item>
      <title>I deleted Windows (and my Bootloader)</title>
      <dc:creator>lsroot</dc:creator>
      <pubDate>Thu, 03 Jul 2025 13:53:10 +0000</pubDate>
      <link>https://dev.to/lsroot/i-deleted-windows-and-my-bootloader-299f</link>
      <guid>https://dev.to/lsroot/i-deleted-windows-and-my-bootloader-299f</guid>
      <description>&lt;h5&gt;
  
  
  Microsoft Steals My Storage
&lt;/h5&gt;

&lt;p&gt;Or: Why 800 Gigabytes of My Drive Are Held Hostage by an OS I Don’t Even Use&lt;/p&gt;

&lt;p&gt;I have a Windows partition. It’s 800GB. It just sits there. I also have a Linux partition — 100GB. And now it’s full.&lt;/p&gt;

&lt;p&gt;You might think I dual-boot. Technically, sure. But here’s the twist: I haven’t booted into Windows since the day I installed Linux. Not once. Not even by accident. The only reason Windows still exists on this machine is because I let it.&lt;/p&gt;

&lt;h1&gt;
  
  
  Why Did I Dual-Boot?
&lt;/h1&gt;

&lt;p&gt;Because I bought this laptop secondhand — off &lt;em&gt;Kleinanzeigen&lt;/em&gt;, which is what Germany calls eBay for some reason. It came with Windows preinstalled. I figured, why not keep it? Maybe I’ll need it someday. Maybe I’ll test something. Maybe I’ll regret it.&lt;/p&gt;

&lt;h1&gt;
  
  
  Windows Was a Disaster — From the First Boot
&lt;/h1&gt;

&lt;p&gt;I didn’t even wipe the disk at first. I went through the out-of-box experience. Huge mistake. Two hours of my life gone before I even reached the desktop.&lt;/p&gt;

&lt;p&gt;Opening the Start menu took two full seconds. Clicking "Shut Down"? Another seven to even react. And then came the shutdown itself — &lt;em&gt;two more minutes&lt;/em&gt; of spinning wheels and empty promises.&lt;/p&gt;

&lt;p&gt;And yes, I still thought dual-booting was a good idea.&lt;/p&gt;

&lt;p&gt;I carved out 100GB for Linux. Just enough, I thought. But shrinking the Windows partition? That was another disaster.&lt;/p&gt;

&lt;h1&gt;
  
  
  Shrinking Hell
&lt;/h1&gt;

&lt;p&gt;It took 30 minutes just to get to the resize tool. Because Windows decided to defragment first — while simultaneously launching an update that ate the disk performance &lt;em&gt;during&lt;/em&gt; the defrag.&lt;/p&gt;

&lt;p&gt;Eventually it shrunk. I shut the system down. It didn’t shut down. Instead, it displayed: &lt;code&gt;Preparing Windows&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;No. I wasn’t preparing Windows. I was leaving Windows. But there it sat — for over an hour. Then it changed:&lt;br&gt;&lt;br&gt;
&lt;code&gt;Working on updates 0%. Don't turn off your computer.&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Of course.&lt;/p&gt;

&lt;p&gt;At 30%, it rebooted. I hijacked the restart and went into the boot menu fast enough to boot from a USB and start the Linux installer.&lt;/p&gt;

&lt;p&gt;Linux booted in seconds. Installation? Fast — once I got past the mess Windows left behind. Partitioning was a nightmare thanks to Windows’ grip on the drive. But once Linux was in, it was fast. Responsive. Even on an old spinning HDD, it felt like I’d just stepped into the future. I used that 100GB heavily — daily work, experiments, projects, everything.&lt;/p&gt;

&lt;p&gt;Then it filled up.&lt;/p&gt;
&lt;h1&gt;
  
  
  Time to Kill Windows
&lt;/h1&gt;

&lt;p&gt;So I made a bootable USB with Rescatux on it — because it comes with a bootloader repair tool I’d need. First step: erase Windows. Accidentally I deleted my swap partition too. No big deal. I upgraded my RAM; swap was more symbolic than practical.&lt;br&gt;
This was my Partition Layout after Windows:&lt;/p&gt;

&lt;p&gt;&lt;a href="/files/partitions_new.png" class="article-body-image-wrapper"&gt;&lt;img src="/files/partitions_new.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I had unallocated space where Windows used to be. Wanted to grow my root partition. GParted said no.&lt;/p&gt;

&lt;p&gt;Why? Because Linux tools are often smarter than they need to be. The partitions have to be adjacent. Fine. I moved them around. Clicked “resize.” It failed.&lt;/p&gt;

&lt;p&gt;Turns out &lt;code&gt;e2fsck&lt;/code&gt; — the thing GParted uses — didn’t support the &lt;code&gt;orphan_file&lt;/code&gt; feature flag enabled on my ext4 filesystem. Because Rescatux is based on Debian 10. And Debian 10 is old. Not cute-old. Rusty, broken-old.&lt;/p&gt;
&lt;h1&gt;
  
  
  Enter SystemRescueCD
&lt;/h1&gt;

&lt;p&gt;I Switched to SystemRescueCD. Based on Arch. Now we’re talking. Bonus: I had Arch installed, so all the tools made sense. &lt;code&gt;arch-chroot&lt;/code&gt;, &lt;code&gt;pacman&lt;/code&gt;, familiar territory.&lt;/p&gt;

&lt;p&gt;This time the partition grew. But the UUID changed. And guess what? My bootloader couldn’t find the root filesystem anymore. Of course.&lt;/p&gt;

&lt;p&gt;I could’ve just edited the config to point to the new UUID. Instead, I reinstalled the bootloader. Logical, right? Except it didn’t detect Arch anymore.&lt;/p&gt;

&lt;p&gt;So I regenerated my &lt;code&gt;fstab&lt;/code&gt;. Regenerated my bootloader config. Still nothing.&lt;/p&gt;

&lt;p&gt;Fine. Burn it down. Deleted the boot partition entirely. Recreated it.&lt;/p&gt;

&lt;p&gt;Of course, now I was missing &lt;code&gt;vmlinuz-linux&lt;/code&gt; and &lt;code&gt;initramfs.img&lt;/code&gt;. No kernel, no boot. But reinstalling the &lt;code&gt;linux&lt;/code&gt; package fixed that.&lt;/p&gt;

&lt;p&gt;This time I went for &lt;code&gt;systemd-boot&lt;/code&gt;. It’s simple. Elegant. One command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;bootctl &lt;span class="nb"&gt;install&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It worked. But it didn’t auto-detect Arch. I had to write the boot entry myself — though that was easy enough. Just three lines: reference &lt;code&gt;vmlinuz-linux&lt;/code&gt; and &lt;code&gt;initramfs.img&lt;/code&gt;, and it was done. Clean. Minimal.&lt;/p&gt;

&lt;p&gt;I rebooted. It almost worked.&lt;/p&gt;

&lt;h1&gt;
  
  
  One Last Failure
&lt;/h1&gt;

&lt;p&gt;The system couldn't mount the ESP. UUID mismatch — again. Easy fix: updated &lt;code&gt;fstab&lt;/code&gt; with the new UUID. Rebooted. It worked. Finally.&lt;/p&gt;

&lt;p&gt;Now I have all the space. No Windows. No second-guessing. Just Linux, doing what I tell it to do.&lt;/p&gt;

</description>
      <category>linux</category>
    </item>
    <item>
      <title>Visualizing 443 Addresses Shouldn't Be This Hard</title>
      <dc:creator>lsroot</dc:creator>
      <pubDate>Wed, 02 Jul 2025 15:46:45 +0000</pubDate>
      <link>https://dev.to/lsroot/visualizing-443-addresses-shouldnt-be-this-hard-57e4</link>
      <guid>https://dev.to/lsroot/visualizing-443-addresses-shouldnt-be-this-hard-57e4</guid>
      <description>&lt;p&gt;Please read here: &lt;a href="https://fiosproject.de/read/#Visualizing%20443%20Addresses%20Shouldn't%20Be%20This%20Hard.md" rel="noopener noreferrer"&gt;https://fiosproject.de/read/#Visualizing%20443%20Addresses%20Shouldn't%20Be%20This%20Hard.md&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this post, I share my chaotic journey of trying to visualize 443 addresses on a map. What started as a simple folium project quickly spiraled into API failures, mouse automation nightmares under Wayland, a reluctant two-hour switch to Windows, and a final unexpected solution involving scraping coordinates from a tiny website exposing Apple MapKit credentials. It’s a story of technical roadblocks, questionable workarounds, and the sheer stubbornness to make something work – no matter how many ethical grey areas I had to wade through.&lt;/p&gt;

</description>
      <category>linux</category>
      <category>webdev</category>
      <category>api</category>
    </item>
  </channel>
</rss>
