Skip to content

Instantly share code, notes, and snippets.

@pandeiro
Created May 3, 2013 15:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pandeiro/5509675 to your computer and use it in GitHub Desktop.
Save pandeiro/5509675 to your computer and use it in GitHub Desktop.
<!DOCTYPE html>
<head>
<meta charset="utf-8">
</head>
<div id="table-of-contents">
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#sec-1">1 Create partition(s) and file system</a>
<ul>
<li><a href="#sec-1-1">1.1 Get USB drive's location</a></li>
<li><a href="#sec-1-2">1.2 Create partitions using GPT (ArchWiki)</a></li>
<li><a href="#sec-1-3">1.3 Format partition with a file system (ArchWiki)</a></li>
</ul>
</li>
<li><a href="#sec-2">2 Mount new system to /mnt</a></li>
<li><a href="#sec-3">3 Install the base system</a>
<ul>
<li><a href="#sec-3-1">3.1 Get packages</a></li>
<li><a href="#sec-3-2">3.2 Install bootloader</a></li>
<li><a href="#sec-3-3">3.3 Generate fstab with UUID</a></li>
<li><a href="#sec-3-4">3.4 Configure bootloader</a></li>
</ul>
</li>
<li><a href="#sec-4">4 Copy locale and console configurations from host:/etc</a></li>
<li><a href="#sec-5">5 Set hostname</a></li>
<li><a href="#sec-6">6 Modify /mnt/etc/mkinitcpio.conf</a></li>
<li><a href="#sec-7">7 Chroot to /mnt</a>
<ul>
<li><a href="#sec-7-1">7.1 Run locale-gen inside chroot</a></li>
<li><a href="#sec-7-2">7.2 Run mkinitcpio</a></li>
<li><a href="#sec-7-3">7.3 Set password</a></li>
</ul>
</li>
<li><a href="#sec-8">8 Unmount /mnt &amp; Reboot</a></li>
</ul>
</div>
</div>
<div id="outline-container-1" class="outline-3">
<h3 id="sec-1">Create partition(s) and file system</h3>
<div class="outline-text-3" id="text-1">
</div>
<div id="outline-container-1-1" class="outline-4">
<h4 id="sec-1-1">Get USB drive's location</h4>
<div class="outline-text-4" id="text-1-1">
<pre class="src src-sh">lsblk
</pre>
</div>
</div>
<div id="outline-container-1-2" class="outline-4">
<h4 id="sec-1-2">Create partitions using GPT (<a href="https://wiki.archlinux.org/index.php/Partitioning#Using_GPT_-_Modern_Method">ArchWiki</a>)</h4>
<div class="outline-text-4" id="text-1-2">
<pre class="src src-sh">sudo gdisk /dev/sdb <span style="color: #7f9f7f;"># </span><span style="color: #7f9f7f;">assuming device is at /dev/sdb</span>
</pre>
<ul>
<li id="sec-1-2-1">BIOS Boot Partition (EF02): 1 MiB<br/>
</li>
</ul>
<ul>
<li id="sec-1-2-2">Main Windows/Linux partition (0700): the rest<br/>
</li>
</ul>
</div>
</div>
<div id="outline-container-1-3" class="outline-4">
<h4 id="sec-1-3">Format partition with a file system (<a href="https://wiki.archlinux.org/index.php/File_Systems">ArchWiki</a>)</h4>
<div class="outline-text-4" id="text-1-3">
<p>Initially tried with F2FS, but later when running mkinitcpio, it
complained about no fsck.f2fs. And the resulting system wouldn't even boot.
So for now I am trying with ext4.
</p>
<pre class="src src-sh"><span style="color: #7f9f7f;"># </span><span style="color: #7f9f7f;">assuming main partition is sdb2</span>
sudo mkfs.ext4 /dev/sdb2
<span style="color: #7f9f7f;"># </span><span style="color: #7f9f7f;">sudo mkfs.f2fs /dev/sdb2</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-2" class="outline-3">
<h3 id="sec-2">Mount new system to /mnt</h3>
<div class="outline-text-3" id="text-2">
<pre class="src src-sh">sudo mount -t ext4 /dev/sdb2 /mnt
<span style="color: #7f9f7f;">#</span><span style="color: #7f9f7f;">sudo mount -t f2fs /dev/sdb2 /mnt</span>
</pre>
</div>
</div>
<div id="outline-container-3" class="outline-3">
<h3 id="sec-3">Install the base system</h3>
<div class="outline-text-3" id="text-3">
</div>
<div id="outline-container-3-1" class="outline-4">
<h4 id="sec-3-1">Get packages</h4>
<div class="outline-text-4" id="text-3-1">
<pre class="src src-sh"><span style="color: #7f9f7f;"># </span><span style="color: #7f9f7f;">the -c flag uses existing package cache on the host instead of</span>
<span style="color: #7f9f7f;"># </span><span style="color: #7f9f7f;">re-downloading everything</span>
sudo pacstrap -c /mnt base
</pre>
</div>
</div>
<div id="outline-container-3-2" class="outline-4">
<h4 id="sec-3-2">Install bootloader</h4>
<div class="outline-text-4" id="text-3-2">
<pre class="src src-sh">sudo arch-chroot /mnt pacman -S grub-bios
</pre>
</div>
</div>
<div id="outline-container-3-3" class="outline-4">
<h4 id="sec-3-3">Generate fstab with UUID</h4>
<div class="outline-text-4" id="text-3-3">
<pre class="src src-sh"><span style="color: #7f9f7f;"># </span><span style="color: #7f9f7f;">this should output the partition with UUID, but didn't for me</span>
<span style="color: #7f9f7f;"># </span><span style="color: #7f9f7f;">for some reason it outputs the /dev/sda4 swap partition too</span>
sudo genfstab -p -U /mnt | sudo tee /mnt/etc/fstab
<span style="color: #7f9f7f;"># </span><span style="color: #7f9f7f;">if you need to get the UUID manually</span>
sudo blkid
</pre>
</div>
</div>
<div id="outline-container-3-4" class="outline-4">
<h4 id="sec-3-4">Configure bootloader</h4>
<div class="outline-text-4" id="text-3-4">
<p>Edit menu.lst
</p></div>
</div>
</div>
<div id="outline-container-4" class="outline-3">
<h3 id="sec-4">Copy locale and console configurations from host:/etc</h3>
<div class="outline-text-3" id="text-4">
<pre class="src src-sh"><span style="color: #93e0e3;">cd</span> /etc &amp;&amp; sudo cp locale.conf vconsole.conf locale.gen /mnt/etc/
</pre>
<ul>
<li>/etc/locale.conf
</li>
<li>/etc/vconsole.conf
</li>
<li>/etc/locale.gen
</li>
</ul>
</div>
</div>
<div id="outline-container-5" class="outline-3">
<h3 id="sec-5">Set hostname</h3>
<div class="outline-text-3" id="text-5">
<pre class="src src-sh"><span style="color: #93e0e3;">echo</span> <span style="color: #cc9393;">"newhostname"</span> | sudo tee /mnt/etc/hostname
</pre>
</div>
</div>
<div id="outline-container-6" class="outline-3">
<h3 id="sec-6">Modify /mnt/etc/mkinitcpio.conf</h3>
<div class="outline-text-3" id="text-6">
<p>In the HOOKS array, 'block' should be right after 'udev'
</p></div>
</div>
<div id="outline-container-7" class="outline-3">
<h3 id="sec-7">Chroot to /mnt</h3>
<div class="outline-text-3" id="text-7">
<pre class="src src-sh">sudo arch-chroot /mnt
</pre>
</div>
<div id="outline-container-7-1" class="outline-4">
<h4 id="sec-7-1">Run locale-gen inside chroot</h4>
<div class="outline-text-4" id="text-7-1">
<pre class="src src-sh">locale-gen
</pre>
</div>
</div>
<div id="outline-container-7-2" class="outline-4">
<h4 id="sec-7-2">Run mkinitcpio</h4>
<div class="outline-text-4" id="text-7-2">
<pre class="src src-sh">mkinitcpio -p linux
</pre>
</div>
</div>
<div id="outline-container-7-3" class="outline-4">
<h4 id="sec-7-3">Set password</h4>
<div class="outline-text-4" id="text-7-3">
<pre class="src src-sh">passwd
</pre>
</div>
</div>
</div>
<div id="outline-container-8" class="outline-3">
<h3 id="sec-8">Unmount /mnt &amp; Reboot</h3>
<div class="outline-text-3" id="text-8">
</div>
</div>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment