Commit e833149c authored by Thomas Randolph's avatar Thomas Randolph
Browse files

Add post

"Installing Linux on a laptop in 2017"
parent 3bd3adec
Pipeline #5839465 passed with stages
in 1 minute and 29 seconds
This source diff could not be displayed because it is too large. You can view the blob instead.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Installing Linux on a Laptop in 2017</title>
<meta name="description" content="words">
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/styles/monokai-sublime.min.css">
<link rel="stylesheet" href="/css/screen.css">
<link rel="canonical" href="/2017/01/16/installing-linux-on-a-laptop-in-2017/">
<!-- RSS feed here -->
</head>
<body>
<header class="site-header">
<div class="wrapper">
<a class="site-title" href="/">
<img src="https://www.gravatar.com/avatar/8361ba9354d54301d67cf2d0ded0f504" />
(Tom Randolph).log(
</a>
</div>
</header>
<div class="page-content">
<div class="wrapper">
<article class="post" itemscope itemtype="http://schema.org/BlogPosting">
<header class="post-header">
<h1 class="post-title" itemprop="name headline">Installing Linux on a Laptop in 2017</h1>
<p class="post-meta">
<time datetime="Mon Jan 16 2017 01:30:13 GMT-0700" itemprop="datePublished">Jan 16, 2017</time>
<a href="http://log.rockerest.com/">
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
<span itemprop="name">Tom Randolph</span>
</span>
</a>
<a class="icon" href="https://gitlab.com/rockerest">
<span class="fa fa-gitlab"></span>
</a>
<a class="icon" href="https://twitter.com/rockerest">
<span class="fa fa-twitter"></span>
</a>
</p>
</header>
<div class="post-content" itemprop="articleBody">
<h1 id="Surely-Dual-Booting-Windows-And-Linux-Is-A-Solved-Problem"><a href="#Surely-Dual-Booting-Windows-And-Linux-Is-A-Solved-Problem" class="headerlink" title="Surely Dual-Booting Windows And Linux Is A Solved Problem"></a>Surely Dual-Booting Windows And Linux Is A Solved Problem</h1><p>I mean, it’s 2017, after all.</p>
<hr>
<p>I recently came into possession of a brand new <a href="https://smile.amazon.com/gp/product/B01A3N5YHM" target="_blank" rel="external">HP ZBook Studio G3 (EnergyStar) laptop, model #T6E17UT</a> (<a href="http://www8.hp.com/us/en/products/workstations/product-detail.html?oid=9789485&amp;jumpid=reg_r1002_usen_c-001_title_r0001#!tab=specs" target="_blank" rel="external">alt link</a>). Did you catch that? Did you see the problem? I managed to miss it when I first purchased the laptop, but it’s right there at the beginning: “HP”. </p>
<p>Because this laptop was intended to be a work computer, my first plan was to shrink the pre-installed Windows partition down to something very small (40GB or so, the approximate minimum Windows wants to run on), and then use the rest as a Linux partition for getting actual work done. </p>
<p>Without belaboring the point, this failed, probably due to one of the issues I’ll be writing out below. I abandoned this course of action almost immediately, but there’s a chance it <em>would</em> have worked if I had known all of this up front. Regardless, thanks to proprietary vendor bootloader locking and UEFI SecureBoot, I can simply pop in a Windows 10 USB installer and it’ll be re-installed and validated. I guess that’s the positive takeaway. </p>
<p>On to the negatives.</p>
<h1 id="Something-Something-ACPI-UEFI-SecureBoot"><a href="#Something-Something-ACPI-UEFI-SecureBoot" class="headerlink" title="Something Something ACPI UEFI SecureBoot"></a>Something Something ACPI UEFI SecureBoot</h1><p>I know almost nothing about motherboards. From my past building computers as an amateur enthusiast, I know how to get to BIOS (then EFI, then UEFI), read <a href="https://duckduckgo.com/?q=motherboard+beep+codes&amp;t=ffab&amp;ia=web" target="_blank" rel="external">beep codes</a>, and all those things you might want to know when building a computer. However, I know very little about what bootloaders actually do. This is a part of my computer knowledge that is lacking, and I have <strong>zero</strong> desire to learn it. The farther I am abstracted from a bootloader, the better.</p>
<p>Something has happened in the bootloader world that has made it exceedingly difficult to install something other than what was shipped onto your laptop computer. I’m vaguely aware of <a href="http://www.fsf.org/campaigns/secure-boot-vs-restricted-boot/signers" target="_blank" rel="external">some people</a> complaining about <a href="https://www.fsf.org/campaigns/secure-boot-vs-restricted-boot/" target="_blank" rel="external">problems with SecureBoot</a>. It seems that there was a middle ground that happened some time in the last 6 years or so that satisifed them (haven’t heard of it since then) but appears to have royally screwed everyone else. In any case, you can’t seem to install Linux (my flavor this time around was Ubuntu 16.10) while ACPI support is on in the kernel. If you do, anything that requires interacting with hardware will not work. That is:</p>
<ul>
<li>writing a flag into the bootloader to go back to the installer after a reboot</li>
<li>reading the number of cores</li>
<li>reading the power status</li>
<li>booting up</li>
<li>powering down</li>
</ul>
<p>And many more, I’m sure, I just don’t remember them or didn’t encounter them.</p>
<p>The simple fix here is to just disable ACPI at the kernel bootstrap level. Of course, you have to do this at every level of the process, which means any time you boot from - say - a Linux live USB stick, you need to catch the bootloader and modify the <a href="http://askubuntu.com/questions/160036/how-do-i-disable-acpi-when-booting#160056" target="_blank" rel="external">boot line to disable ACPI</a>. Good luck. Don’t forget to do it on the full install, too, or it won’t boot properly either.</p>
<p>Oh, and while you’re installing with ACPI off, there’s a chance it’ll fail because of SecureBoot. Yes, I agree that Ubuntu says it supports SecureBoot, but that doesn’t change the reality that it doesn’t seem to work with it on. Go ahead and turn SecureBoot off in your UEFI admin panel. It’s probably F2, F3, F9, F10, Esc, or Del to get in there, but only in a very small window of time. </p>
<h1 id="It-“Works”"><a href="#It-“Works”" class="headerlink" title="It “Works”"></a>It “Works”</h1><p>So now Ubuntu is installed on the laptop and the bootloader always starts it with <code>acpi=off</code> in the kernel flags. Hey at least it’s working… right? </p>
<p>Haha, sorta.</p>
<p>Remember when I said this?</p>
<blockquote>
<p>In any case, you can’t seem to install Linux (my flavor this time around was Ubuntu 16.10) while ACPI support is on in the kernel. If you do, anything that requires interacting with hardware will not work. That is:</p>
<ul>
<li>writing a flag into the bootloader to go back to the installer after a reboot</li>
<li>reading the number of cores</li>
<li>reading the power status</li>
<li>booting up</li>
<li>powering down</li>
</ul>
</blockquote>
<p>It turns out - yeah, nothing will work with it enabled - but, disabling it is almost as bad. Somehow the things that matter for installing work (powering down, I guess), but everything else is still shot when ACPI is off. That means your nice laptop with 4 cores and hyperthreading is reporting nothing to the OS, so it just naturally assumes there’s 1. Also, you can’t integrate with the onboard graphics card, so your display is max brightness no matter what you do. The OS can’t determine whether you have a battery installed or if a power cord is plugged in, so you’re in a state where there’s no battery indicator but you’re receiving power somehow.</p>
<p>So now what?</p>
<p>Well, I installed this as UEFI - which, as we know - doesn’t work with ACPI on. However, I need ACPI on to have a functional computer. The only way to do that is to install as a “Legacy” (read: BIOS) OS with ACPI on. As far as I can tell, there’s no way to convert a UEFI boot to a BIOS boot. So, turn off UEFI, turn on Legacy, and start installing all over again - with ACPI on.</p>
<h1 id="Now-It-“Works”"><a href="#Now-It-“Works”" class="headerlink" title="Now It “Works”"></a><strong>Now</strong> It “Works”</h1><p>Well, alright.</p>
<p>Now we have a power indicator, that’s good.</p>
<p>The OS indicates it can utilize 8 cores, that’s even better. The laptop frame is no longer dangerously hot to the touch, but it’s still disturbingly hot. <code>top</code> indicates that each core is generally at less than 1% utilization, so why is it so hot?</p>
<p>Brightness still isn’t adjustable, and every now and then graphical artifacts and screen tears show up: this must be a GPU issue. This laptop runs an <a href="https://www.techpowerup.com/gpudb/2739/quadro-m1000m" target="_blank" rel="external">NVIDIA Quadro M1000M chip</a>. Ostensibly, the open source drivers that ship with Ubuntu work with this chip. This is not true. You <em>should</em> be able to install <code>jockey-gtk</code> to get access to the Additional Drivers GUI that allows installing third-party, but Ubuntu reports that <code>jockey-gtk</code> is already the latest version and there doesn’t appear to be a way to start the Additional Drivers interface. What you can do, however, is install the drivers <a href="http://www.nvidia.com/download/driverResults.aspx/112992/en-us" target="_blank" rel="external">directly from NVIDIA</a>. To create a little bit of suspense, let’s say that we’re confident this will go smoothly.</p>
<h1 id="Installing-Drivers-Only-For-Hardcore-Nerds"><a href="#Installing-Drivers-Only-For-Hardcore-Nerds" class="headerlink" title="Installing Drivers - Only For Hardcore Nerds"></a>Installing Drivers - Only For Hardcore Nerds</h1><p>All you need to do is download the NVIDIA drivers and install them. Like everything else you can install the drivers using the appropriate package for your operating system. On Windows, this is <code>.exe</code>, Mac it’s <code>.app</code> or something, and on Debian-based Linux distributions, it’s <code>.deb</code>. Easy.</p>
<p>Or NVIDIA could ship you a script that you have to run when the X Server is not active.</p>
<p>This is actually less of a problem than it feels like.</p>
<p><code>Ctrl</code> + <code>Alt</code> + <code>F1</code> drops you to a TTY terminal. Shut down the X Server with <code>sudo service lightdm stop</code>, or - you know - the appropriate display manager which may be <code>lightdm</code> or I-have-no-idea but good luck on this one. Once you’ve shut down the X Server (by shutting down the display manager, DUH, is this not self-explanatory?) you can just run the drivers installer with something like <code>sudo ./NVIDIA-blahblah.run</code>. I’m sure this will work the first time, as it’s a script from a major graphics vendor.</p>
<p>If - by some fluke - it does not, just follow the directions it gives. Since it basically tells you to go to a troubleshooting page on the internet, ignore that and start over. As long as you run this script with <code>sudo</code> and <code>lightdm</code> is not running it should just work.</p>
<p>Now your graphics drivers are up to date, and you can reboot.</p>
<h1 id="Unsolved-Problems"><a href="#Unsolved-Problems" class="headerlink" title="Unsolved Problems"></a>Unsolved Problems</h1><ul>
<li>When you do anything that requires fiddling with the motherboard bootloader (UEFI/BIOS), this particular brand of laptop seems to write random bytes into firmware. This has the effect of - usually - making random noises come out of the speakers. Often this is just static. Static is good. Other times, it’s a sharp tone played at the highest possible volume. Others, the tone smoothly increases from low to very high, still at the highest possible volume. Very rarely, the UEFI/BIOS will simply not boot, which is fun.</li>
<li>Since this laptop has a 2x DPI, everything is incredibly tiny. You can fix this easily in Ubuntu by <a href="http://askubuntu.com/a/472266" target="_blank" rel="external">doing some stuff</a>. Of course, this doesn’t actually fix it, it just changes this particular slider in the UI. You can fix this for real by calling <code>dconf read /com/ubuntu/user-interface/scale-factor</code> and then changing the number to <code>16</code>. The UI scale is factors of 8, so “<code>8</code>“ is 1X, and “<code>16</code>“ is 2X. You can write this back with <code>dconf write /com/ubuntu/user-interface/scale-factor &quot;[the full JSON configuration with 16 instead of 8]&quot;</code>. I don’t know why the UI doesn’t work.</li>
</ul>
<h1 id="Summary"><a href="#Summary" class="headerlink" title="Summary"></a>Summary</h1><p>As you can see, dual-booting Linux and Windows is super simple now that it’s 2017 and computing is not a total and complete fucking nightmare any more.</p>
</div>
</article>
</div>
</div>
<footer class="site-footer">
);
</footer>
<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/highlight.min.js"></script>
<script src="/js/post.js"></script>
</body>
</html>
......@@ -28,6 +28,20 @@
<div class="home">
<ul class="post-list">
<li>
<h2>
<a class="post-link" href="/2017/01/16/installing-linux-on-a-laptop-in-2017/">Installing Linux on a Laptop in 2017</a>
</h2>
<span class="post-meta">
<span class="fa fa-fw fa-calendar-o"></span>
Jan 16, 2017
</span>
<span class="post-meta">
<span class="fa fa-fw fa-user"></span>
Tom Randolph
</span>
</li>
<li>
<h2>
<a class="post-link" href="/2015/06/03/invisibilia-the-code-within/">Invisibilia: The Code Within</a>
......
......@@ -28,6 +28,20 @@
<div class="home">
<ul class="post-list">
<li>
<h2>
<a class="post-link" href="/2017/01/16/installing-linux-on-a-laptop-in-2017/">Installing Linux on a Laptop in 2017</a>
</h2>
<span class="post-meta">
<span class="fa fa-fw fa-calendar-o"></span>
Jan 16, 2017
</span>
<span class="post-meta">
<span class="fa fa-fw fa-user"></span>
Tom Randolph
</span>
</li>
<li>
<h2>
<a class="post-link" href="/2015/06/03/invisibilia-the-code-within/">Invisibilia: The Code Within</a>
......
......@@ -28,6 +28,20 @@
<div class="home">
<ul class="post-list">
<li>
<h2>
<a class="post-link" href="/2017/01/16/installing-linux-on-a-laptop-in-2017/">Installing Linux on a Laptop in 2017</a>
</h2>
<span class="post-meta">
<span class="fa fa-fw fa-calendar-o"></span>
Jan 16, 2017
</span>
<span class="post-meta">
<span class="fa fa-fw fa-user"></span>
Tom Randolph
</span>
</li>
<li>
<h2>
<a class="post-link" href="/2015/06/03/invisibilia-the-code-within/">Invisibilia: The Code Within</a>
......
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>(Tom Randolph).log(</title>
<meta name="description" content="words">
<link rel="stylesheet" href="/css/screen.css">
<link rel="canonical" href="/archives/2017/01/index.html">
<!-- RSS feed here -->
</head>
<body>
<header class="site-header">
<div class="wrapper">
<a class="site-title" href="/">
<img src="https://www.gravatar.com/avatar/8361ba9354d54301d67cf2d0ded0f504" />
(Tom Randolph).log(
</a>
</div>
</header>
<div class="page-content">
<div class="wrapper">
<div class="home">
<ul class="post-list">
<li>
<h2>
<a class="post-link" href="/2017/01/16/installing-linux-on-a-laptop-in-2017/">Installing Linux on a Laptop in 2017</a>
</h2>
<span class="post-meta">
<span class="fa fa-fw fa-calendar-o"></span>
Jan 16, 2017
</span>
<span class="post-meta">
<span class="fa fa-fw fa-user"></span>
Tom Randolph
</span>
</li>
<li>
<h2>
<a class="post-link" href="/2015/06/03/invisibilia-the-code-within/">Invisibilia: The Code Within</a>
</h2>
<span class="post-meta">
<span class="fa fa-fw fa-calendar-o"></span>
Jun 03, 2015
</span>
<span class="post-meta">
<span class="fa fa-fw fa-user"></span>
Tom Randolph
</span>
</li>
<li>
<h2>
<a class="post-link" href="/2015/01/24/convention-syndrome-or-how-to-be-mediocre/">Convention Syndrome, or: How To Be Mediocre</a>
</h2>
<span class="post-meta">
<span class="fa fa-fw fa-calendar-o"></span>
Jan 24, 2015
</span>
<span class="post-meta">
<span class="fa fa-fw fa-user"></span>
Tom Randolph
</span>
</li>
</ul>
</div>
</div>
</div>
<footer class="site-footer">
);
</footer>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>(Tom Randolph).log(</title>
<meta name="description" content="words">
<link rel="stylesheet" href="/css/screen.css">
<link rel="canonical" href="/archives/2017/index.html">
<!-- RSS feed here -->
</head>
<body>
<header class="site-header">
<div class="wrapper">
<a class="site-title" href="/">
<img src="https://www.gravatar.com/avatar/8361ba9354d54301d67cf2d0ded0f504" />
(Tom Randolph).log(
</a>
</div>
</header>
<div class="page-content">
<div class="wrapper">
<div class="home">
<ul class="post-list">
<li>
<h2>
<a class="post-link" href="/2017/01/16/installing-linux-on-a-laptop-in-2017/">Installing Linux on a Laptop in 2017</a>
</h2>
<span class="post-meta">
<span class="fa fa-fw fa-calendar-o"></span>
Jan 16, 2017
</span>
<span class="post-meta">
<span class="fa fa-fw fa-user"></span>
Tom Randolph
</span>
</li>
<li>
<h2>
<a class="post-link" href="/2015/06/03/invisibilia-the-code-within/">Invisibilia: The Code Within</a>
</h2>
<span class="post-meta">
<span class="fa fa-fw fa-calendar-o"></span>
Jun 03, 2015
</span>
<span class="post-meta">
<span class="fa fa-fw fa-user"></span>
Tom Randolph
</span>
</li>
<li>
<h2>
<a class="post-link" href="/2015/01/24/convention-syndrome-or-how-to-be-mediocre/">Convention Syndrome, or: How To Be Mediocre</a>
</h2>
<span class="post-meta">
<span class="fa fa-fw fa-calendar-o"></span>
Jan 24, 2015
</span>
<span class="post-meta">
<span class="fa fa-fw fa-user"></span>
Tom Randolph
</span>
</li>
</ul>
</div>
</div>
</div>
<footer class="site-footer">
);
</footer>
</body>
</html>
......@@ -28,6 +28,20 @@
<div class="home">
<ul class="post-list">
<li>
<h2>
<a class="post-link" href="/2017/01/16/installing-linux-on-a-laptop-in-2017/">Installing Linux on a Laptop in 2017</a>
</h2>
<span class="post-meta">
<span class="fa fa-fw fa-calendar-o"></span>
Jan 16, 2017
</span>
<span class="post-meta">
<span class="fa fa-fw fa-user"></span>
Tom Randolph
</span>
</li>
<li>
<h2>
<a class="post-link" href="/2015/06/03/invisibilia-the-code-within/">Invisibilia: The Code Within</a>
......
......@@ -28,6 +28,20 @@
<div class="home">
<ul class="post-list">
<li>
<h2>
<a class="post-link" href="/2017/01/16/installing-linux-on-a-laptop-in-2017/">Installing Linux on a Laptop in 2017</a>
</h2>
<span class="post-meta">
<span class="fa fa-fw fa-calendar-o"></span>
Jan 16, 2017
</span>
<span class="post-meta">
<span class="fa fa-fw fa-user"></span>
Tom Randolph
</span>
</li>
<li>
<h2>
<a class="post-link" href="/2015/06/03/invisibilia-the-code-within/">Invisibilia: The Code Within</a>
......
......@@ -28,6 +28,20 @@
<div class="home">
<ul class="post-list">
<li>
<h2>
<a class="post-link" href="/2017/01/16/installing-linux-on-a-laptop-in-2017/">Installing Linux on a Laptop in 2017</a>
</h2>
<span class="post-meta">
<span class="fa fa-fw fa-calendar-o"></span>
Jan 16, 2017
</span>
<span class="post-meta">
<span class="fa fa-fw fa-user"></span>
Tom Randolph
</span>
</li>
<li>
<h2>
<a class="post-link" href="/2015/06/03/invisibilia-the-code-within/">Invisibilia: The Code Within</a>
......
......@@ -28,6 +28,20 @@
<div class="home">
<ul class="post-list">
<li>
<h2>
<a class="post-link" href="/2017/01/16/installing-linux-on-a-laptop-in-2017/">Installing Linux on a Laptop in 2017</a>
</h2>
<span class="post-meta">
<span class="fa fa-fw fa-calendar-o"></span>
Jan 16, 2017
</span>
<span class="post-meta">
<span class="fa fa-fw fa-user"></span>
Tom Randolph
</span>
</li>
<li>
<h2>
<a class="post-link" href="/2015/06/03/invisibilia-the-code-within/">Invisibilia: The Code Within</a>
......
......@@ -28,6 +28,20 @@
<div class="home">
<ul class="post-list">
<li>
<h2>
<a class="post-link" href="/2017/01/16/installing-linux-on-a-laptop-in-2017/">Installing Linux on a Laptop in 2017</a>
</h2>
<span class="post-meta">
<span class="fa fa-fw fa-calendar-o"></span>
Jan 16, 2017
</span>
<span class="post-meta">
<span class="fa fa-fw fa-user"></span>
Tom Randolph
</span>
</li>
<li>
<h2>
<a class="post-link" href="/2015/06/03/invisibilia-the-code-within/">Invisibilia: The Code Within</a>
......
......@@ -28,6 +28,20 @@
<div class="home">
<ul class="post-list">
<li>
<h2>
<a class="post-link" href="/2017/01/16/installing-linux-on-a-laptop-in-2017/">Installing Linux on a Laptop in 2017</a>
</h2>
<span class="post-meta">
<span class="fa fa-fw fa-calendar-o"></span>
Jan 16, 2017
</span>
<span class="post-meta">
<span class="fa fa-fw fa-user"></span>
Tom Randolph
</span>
</li>
<li>
<h2>
<a class="post-link" href="/2015/06/03/invisibilia-the-code-within/">Invisibilia: The Code Within</a>
......
......@@ -28,6 +28,20 @@
<div class="home">
<ul class="post-list">
<li>
<h2>
<a class="post-link" href="/2017/01/16/installing-linux-on-a-laptop-in-2017/">Installing Linux on a Laptop in 2017</a>
</h2>
<span class="post-meta">
<span class="fa fa-fw fa-calendar-o"></span>
Jan 16, 2017
</span>
<span class="post-meta">
<span class="fa fa-fw fa-user"></span>
Tom Randolph
</span>
</li>
<li>
<h2>
<a class="post-link" href="/2015/06/03/invisibilia-the-code-within/">Invisibilia: The Code Within</a>
......
......@@ -28,6 +28,20 @@
<div class="home">
<ul class="post-list">
<li>
<h2>
<a class="post-link" href="/2017/01/16/installing-linux-on-a-laptop-in-2017/">Installing Linux on a Laptop in 2017</a>
</h2>
<span class="post-meta">
<span class="fa fa-fw fa-calendar-o"></span>
Jan 16, 2017
</span>
<span class="post-meta">
<span class="fa fa-fw fa-user"></span>
Tom Randolph
</span>
</li>
<li>
<h2>
<a class="post-link" href="/2015/06/03/invisibilia-the-code-within/">Invisibilia: The Code Within</a>
......
......@@ -28,6 +28,20 @@
<div class="home">
<ul class="post-list">
<li>
<h2>
<a class="post-link" href="/2017/01/16/installing-linux-on-a-laptop-in-2017/">Installing Linux on a Laptop in 2017</a>
</h2>
<span class="post-meta">
<span class="fa fa-fw fa-calendar-o"></span>
Jan 16, 2017
</span>
<span class="post-meta">
<span class="fa fa-fw fa-user"></span>
Tom Randolph
</span>
</li>
<li>
<h2>
<a class="post-link" href="/2015/06/03/invisibilia-the-code-within/">Invisibilia: The Code Within</a>
......
......@@ -28,6 +28,20 @@
<div class="home">
<ul class="post-list">
<li>
<h2>
<a class="post-link" href="/2017/01/16/installing-linux-on-a-laptop-in-2017/">Installing Linux on a Laptop in 2017</a>
</h2>
<span class="post-meta">
<span class="fa fa-fw fa-calendar-o"></span>
Jan 16, 2017
</span>
<span class="post-meta">
<span class="fa fa-fw fa-user"></span>
Tom Randolph
</span>
</li>
<li>
<h2>
<a class="post-link" href="/2015/06/03/invisibilia-the-code-within/">Invisibilia: The Code Within</a>
......
---
title: Installing Linux on a Laptop in 2017
tags:
---
# Surely Dual-Booting Windows And Linux Is A Solved Problem
I mean, it's 2017, after all.