713 lines
No EOL
72 KiB
HTML
713 lines
No EOL
72 KiB
HTML
<!DOCTYPE html><html> <head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><link rel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><text y=%22.9em%22 font-size=%2290%22></text></svg>"><meta name="generator" content="Astro v5.1.3"><title>Artix Linux install guide | z0x</title><meta name="title" content="Artix Linux install guide | z0x"><meta name="description" content="Guide to installing Artix Linux with OpenRC and full disk encryption for UEFI and BIOS systems."><meta property="og:type" content="website"><meta property="og:url" content="https://blog.z0x.ca/artix-install-guide/"><meta property="og:title" content="Artix Linux install guide | z0x"><meta property="og:description" content="Guide to installing Artix Linux with OpenRC and full disk encryption for UEFI and BIOS systems."><meta property="og:image" content="https://blog.z0x.ca/blog-placeholder-1.jpg"><meta property="twitter:card" content="summary_large_image"><meta property="twitter:url" content="https://blog.z0x.ca/artix-install-guide/"><meta property="twitter:title" content="Artix Linux install guide | z0x"><meta property="twitter:description" content="Guide to installing Artix Linux with OpenRC and full disk encryption for UEFI and BIOS systems."><meta property="twitter:image" content="https://blog.z0x.ca/blog-placeholder-1.jpg"><meta name="astro-view-transitions-enabled" content="true"><meta name="astro-view-transitions-fallback" content="animate"><script type="module" src="/_astro/ClientRouter.astro_astro_type_script_index_0_lang.BScVxmeO.js"></script><script>
|
||
function init() {
|
||
preloadTheme();
|
||
onScroll();
|
||
animate();
|
||
updateThemeButtons();
|
||
addCopyCodeButtons();
|
||
setGiscusTheme();
|
||
|
||
const backToTop = document.getElementById("back-to-top");
|
||
backToTop?.addEventListener("click", (event) => scrollToTop(event));
|
||
|
||
const backToPrev = document.getElementById("back-to-prev");
|
||
backToPrev?.addEventListener("click", () => window.history.back());
|
||
|
||
const lightThemeButton = document.getElementById("light-theme-button");
|
||
lightThemeButton?.addEventListener("click", () => {
|
||
localStorage.setItem("theme", "light");
|
||
toggleTheme(false);
|
||
updateThemeButtons();
|
||
});
|
||
|
||
const darkThemeButton = document.getElementById("dark-theme-button");
|
||
darkThemeButton?.addEventListener("click", () => {
|
||
localStorage.setItem("theme", "dark");
|
||
toggleTheme(true);
|
||
updateThemeButtons();
|
||
});
|
||
|
||
const systemThemeButton = document.getElementById("system-theme-button");
|
||
systemThemeButton?.addEventListener("click", () => {
|
||
localStorage.setItem("theme", "system");
|
||
toggleTheme(window.matchMedia("(prefers-color-scheme: dark)").matches);
|
||
updateThemeButtons();
|
||
});
|
||
|
||
window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change", (event) => {
|
||
if (localStorage.theme === "system") {
|
||
toggleTheme(event.matches);
|
||
}
|
||
});
|
||
|
||
document.addEventListener("scroll", onScroll);
|
||
}
|
||
|
||
function updateThemeButtons() {
|
||
const theme = localStorage.getItem("theme");
|
||
const lightThemeButton = document.getElementById("light-theme-button");
|
||
const darkThemeButton = document.getElementById("dark-theme-button");
|
||
const systemThemeButton = document.getElementById("system-theme-button");
|
||
|
||
function removeActiveButtonTheme(button) {
|
||
button?.classList.remove("bg-black/5");
|
||
button?.classList.remove("dark:bg-white/5");
|
||
}
|
||
|
||
function addActiveButtonTheme(button) {
|
||
button?.classList.add("bg-black/5");
|
||
button?.classList.add("dark:bg-white/5");
|
||
}
|
||
|
||
removeActiveButtonTheme(lightThemeButton);
|
||
removeActiveButtonTheme(darkThemeButton);
|
||
removeActiveButtonTheme(systemThemeButton);
|
||
|
||
if (theme === "light") {
|
||
addActiveButtonTheme(lightThemeButton);
|
||
} else if (theme === "dark") {
|
||
addActiveButtonTheme(darkThemeButton);
|
||
} else {
|
||
addActiveButtonTheme(systemThemeButton);
|
||
}
|
||
}
|
||
|
||
function animate() {
|
||
const animateElements = document.querySelectorAll(".animate");
|
||
|
||
animateElements.forEach((element, index) => {
|
||
setTimeout(() => {
|
||
element.classList.add("show");
|
||
}, index * 100);
|
||
});
|
||
}
|
||
|
||
function onScroll() {
|
||
if (window.scrollY > 0) {
|
||
document.documentElement.classList.add("scrolled");
|
||
} else {
|
||
document.documentElement.classList.remove("scrolled");
|
||
}
|
||
}
|
||
|
||
function scrollToTop(event) {
|
||
event.preventDefault();
|
||
window.scrollTo({
|
||
top: 0,
|
||
behavior: "smooth",
|
||
});
|
||
}
|
||
|
||
function toggleTheme(dark) {
|
||
const css = document.createElement("style");
|
||
|
||
css.appendChild(
|
||
document.createTextNode(
|
||
`* {
|
||
-webkit-transition: none !important;
|
||
-moz-transition: none !important;
|
||
-o-transition: none !important;
|
||
-ms-transition: none !important;
|
||
transition: none !important;
|
||
}
|
||
`,
|
||
),
|
||
);
|
||
|
||
document.head.appendChild(css);
|
||
|
||
if (dark) {
|
||
document.documentElement.classList.add("dark");
|
||
} else {
|
||
document.documentElement.classList.remove("dark");
|
||
}
|
||
|
||
window.getComputedStyle(css).opacity;
|
||
document.head.removeChild(css);
|
||
|
||
setGiscusTheme();
|
||
}
|
||
|
||
function preloadTheme() {
|
||
const userTheme = localStorage.theme;
|
||
|
||
if (userTheme === "light" || userTheme === "dark") {
|
||
toggleTheme(userTheme === "dark");
|
||
} else {
|
||
toggleTheme(window.matchMedia("(prefers-color-scheme: dark)").matches);
|
||
}
|
||
}
|
||
|
||
function addCopyCodeButtons() {
|
||
let copyButtonLabel = "📋";
|
||
let codeBlocks = Array.from(document.querySelectorAll("pre"));
|
||
|
||
async function copyCode(codeBlock, copyButton) {
|
||
const codeText = codeBlock.innerText;
|
||
const buttonText = copyButton.innerText;
|
||
const textToCopy = codeText.replace(buttonText, "");
|
||
|
||
await navigator.clipboard.writeText(textToCopy);
|
||
copyButton.innerText = "✅";
|
||
|
||
setTimeout(() => {
|
||
copyButton.innerText = copyButtonLabel;
|
||
}, 2000);
|
||
}
|
||
|
||
for (let codeBlock of codeBlocks) {
|
||
const wrapper = document.createElement("div");
|
||
wrapper.style.position = "relative";
|
||
|
||
const copyButton = document.createElement("button");
|
||
copyButton.innerText = copyButtonLabel;
|
||
copyButton.classList = "copy-code";
|
||
|
||
codeBlock.setAttribute("tabindex", "0");
|
||
codeBlock.appendChild(copyButton);
|
||
|
||
codeBlock.parentNode.insertBefore(wrapper, codeBlock);
|
||
wrapper.appendChild(codeBlock);
|
||
|
||
copyButton?.addEventListener("click", async () => {
|
||
await copyCode(codeBlock, copyButton);
|
||
});
|
||
}
|
||
}
|
||
|
||
const setGiscusTheme = () => {
|
||
const giscus = document.querySelector(".giscus-frame");
|
||
|
||
const isDark = document.documentElement.classList.contains("dark");
|
||
|
||
if (giscus) {
|
||
const url = new URL(giscus.src);
|
||
url.searchParams.set("theme", isDark ? "dark" : "light");
|
||
giscus.src = url.toString();
|
||
}
|
||
};
|
||
|
||
document.addEventListener("DOMContentLoaded", () => init());
|
||
document.addEventListener("astro:after-swap", () => init());
|
||
preloadTheme();
|
||
</script><link rel="stylesheet" href="/_astro/_id_.C8-8VbW1.css">
|
||
<style>summary[data-astro-cid-xvrfupwn]{cursor:pointer;border-top-left-radius:.5rem;border-top-right-radius:.5rem;padding:.375rem .75rem;font-weight:500;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}summary[data-astro-cid-xvrfupwn]:hover{background-color:#0000000d}summary[data-astro-cid-xvrfupwn]:hover:is(.dark *){background-color:#ffffff0d}details[data-astro-cid-xvrfupwn][open] summary[data-astro-cid-xvrfupwn]{background-color:#0000000d}details[data-astro-cid-xvrfupwn][open] summary[data-astro-cid-xvrfupwn]:is(.dark *){background-color:#ffffff0d}
|
||
[data-astro-image]{width:100%;height:auto;-o-object-fit:var(--fit);object-fit:var(--fit);-o-object-position:var(--pos);object-position:var(--pos);aspect-ratio:var(--w) / var(--h)}[data-astro-image=responsive]{max-width:calc(var(--w) * 1px);max-height:calc(var(--h) * 1px)}[data-astro-image=fixed]{width:calc(var(--w) * 1px);height:calc(var(--h) * 1px)}
|
||
</style></head> <body> <main> <div class="mx-auto max-w-screen-sm px-3"> <div class="my-10 space-y-1"> <div class="animate flex items-center gap-1.5"> <div class="font-base text-sm"> <time datetime="2025-01-07T00:00:00.000Z"> 2025-01-07 </time> </div>
|
||
•
|
||
<div class="font-base text-sm">10 min read</div> </div> <h1 class="animate text-3xl font-semibold text-black dark:text-white"> Artix Linux install guide </h1> </div> <details open class="animate rounded-lg border border-black/15 dark:border-white/20" data-astro-cid-xvrfupwn> <summary data-astro-cid-xvrfupwn>Table of Contents</summary> <nav class="" data-astro-cid-xvrfupwn> <ul class="py-3" data-astro-cid-xvrfupwn> <li class="list-inside list-disc px-6 py-1.5 text-sm"> <a href="#undefined" target="_self" class="inline-block decoration-black/30 dark:decoration-white/30 hover:decoration-black/50 focus-visible:decoration-black/50 dark:hover:decoration-white/50 dark:focus-visible:decoration-white/50 text-current hover:text-black focus-visible:text-black dark:hover:text-white dark:focus-visible:text-white transition-colors duration-300 ease-in-out underline underline-offset-[3px]"> Introduction </a> </li><li class="list-inside list-disc px-6 py-1.5 text-sm"> <a href="#undefined" target="_self" class="inline-block decoration-black/30 dark:decoration-white/30 hover:decoration-black/50 focus-visible:decoration-black/50 dark:hover:decoration-white/50 dark:focus-visible:decoration-white/50 text-current hover:text-black focus-visible:text-black dark:hover:text-white dark:focus-visible:text-white transition-colors duration-300 ease-in-out underline underline-offset-[3px]"> Acquire an installation image </a> </li><li class="list-inside list-disc px-6 py-1.5 text-sm"> <a href="#undefined" target="_self" class="inline-block decoration-black/30 dark:decoration-white/30 hover:decoration-black/50 focus-visible:decoration-black/50 dark:hover:decoration-white/50 dark:focus-visible:decoration-white/50 text-current hover:text-black focus-visible:text-black dark:hover:text-white dark:focus-visible:text-white transition-colors duration-300 ease-in-out underline underline-offset-[3px]"> Prepare an installation medium </a> <ul class="translate-x-3"> <li class="list-inside list-disc px-6 py-1.5 text-sm"> <a href="#undefined" target="_self" class="inline-block decoration-black/30 dark:decoration-white/30 hover:decoration-black/50 focus-visible:decoration-black/50 dark:hover:decoration-white/50 dark:focus-visible:decoration-white/50 text-current hover:text-black focus-visible:text-black dark:hover:text-white dark:focus-visible:text-white transition-colors duration-300 ease-in-out underline underline-offset-[3px]"> Windows </a> </li><li class="list-inside list-disc px-6 py-1.5 text-sm"> <a href="#undefined" target="_self" class="inline-block decoration-black/30 dark:decoration-white/30 hover:decoration-black/50 focus-visible:decoration-black/50 dark:hover:decoration-white/50 dark:focus-visible:decoration-white/50 text-current hover:text-black focus-visible:text-black dark:hover:text-white dark:focus-visible:text-white transition-colors duration-300 ease-in-out underline underline-offset-[3px]"> Linux </a> </li> </ul> </li><li class="list-inside list-disc px-6 py-1.5 text-sm"> <a href="#undefined" target="_self" class="inline-block decoration-black/30 dark:decoration-white/30 hover:decoration-black/50 focus-visible:decoration-black/50 dark:hover:decoration-white/50 dark:focus-visible:decoration-white/50 text-current hover:text-black focus-visible:text-black dark:hover:text-white dark:focus-visible:text-white transition-colors duration-300 ease-in-out underline underline-offset-[3px]"> Boot the live environment </a> </li><li class="list-inside list-disc px-6 py-1.5 text-sm"> <a href="#undefined" target="_self" class="inline-block decoration-black/30 dark:decoration-white/30 hover:decoration-black/50 focus-visible:decoration-black/50 dark:hover:decoration-white/50 dark:focus-visible:decoration-white/50 text-current hover:text-black focus-visible:text-black dark:hover:text-white dark:focus-visible:text-white transition-colors duration-300 ease-in-out underline underline-offset-[3px]"> Enter the live environment </a> </li><li class="list-inside list-disc px-6 py-1.5 text-sm"> <a href="#undefined" target="_self" class="inline-block decoration-black/30 dark:decoration-white/30 hover:decoration-black/50 focus-visible:decoration-black/50 dark:hover:decoration-white/50 dark:focus-visible:decoration-white/50 text-current hover:text-black focus-visible:text-black dark:hover:text-white dark:focus-visible:text-white transition-colors duration-300 ease-in-out underline underline-offset-[3px]"> Connect to the internet </a> <ul class="translate-x-3"> <li class="list-inside list-disc px-6 py-1.5 text-sm"> <a href="#undefined" target="_self" class="inline-block decoration-black/30 dark:decoration-white/30 hover:decoration-black/50 focus-visible:decoration-black/50 dark:hover:decoration-white/50 dark:focus-visible:decoration-white/50 text-current hover:text-black focus-visible:text-black dark:hover:text-white dark:focus-visible:text-white transition-colors duration-300 ease-in-out underline underline-offset-[3px]"> Via Ethernet </a> </li><li class="list-inside list-disc px-6 py-1.5 text-sm"> <a href="#undefined" target="_self" class="inline-block decoration-black/30 dark:decoration-white/30 hover:decoration-black/50 focus-visible:decoration-black/50 dark:hover:decoration-white/50 dark:focus-visible:decoration-white/50 text-current hover:text-black focus-visible:text-black dark:hover:text-white dark:focus-visible:text-white transition-colors duration-300 ease-in-out underline underline-offset-[3px]"> Via WiFi </a> </li><li class="list-inside list-disc px-6 py-1.5 text-sm"> <a href="#undefined" target="_self" class="inline-block decoration-black/30 dark:decoration-white/30 hover:decoration-black/50 focus-visible:decoration-black/50 dark:hover:decoration-white/50 dark:focus-visible:decoration-white/50 text-current hover:text-black focus-visible:text-black dark:hover:text-white dark:focus-visible:text-white transition-colors duration-300 ease-in-out underline underline-offset-[3px]"> Verify internet connectivity </a> </li> </ul> </li><li class="list-inside list-disc px-6 py-1.5 text-sm"> <a href="#undefined" target="_self" class="inline-block decoration-black/30 dark:decoration-white/30 hover:decoration-black/50 focus-visible:decoration-black/50 dark:hover:decoration-white/50 dark:focus-visible:decoration-white/50 text-current hover:text-black focus-visible:text-black dark:hover:text-white dark:focus-visible:text-white transition-colors duration-300 ease-in-out underline underline-offset-[3px]"> Update the system clock </a> </li><li class="list-inside list-disc px-6 py-1.5 text-sm"> <a href="#undefined" target="_self" class="inline-block decoration-black/30 dark:decoration-white/30 hover:decoration-black/50 focus-visible:decoration-black/50 dark:hover:decoration-white/50 dark:focus-visible:decoration-white/50 text-current hover:text-black focus-visible:text-black dark:hover:text-white dark:focus-visible:text-white transition-colors duration-300 ease-in-out underline underline-offset-[3px]"> Partition the disk </a> </li><li class="list-inside list-disc px-6 py-1.5 text-sm"> <a href="#undefined" target="_self" class="inline-block decoration-black/30 dark:decoration-white/30 hover:decoration-black/50 focus-visible:decoration-black/50 dark:hover:decoration-white/50 dark:focus-visible:decoration-white/50 text-current hover:text-black focus-visible:text-black dark:hover:text-white dark:focus-visible:text-white transition-colors duration-300 ease-in-out underline underline-offset-[3px]"> Encrypt root partition </a> </li><li class="list-inside list-disc px-6 py-1.5 text-sm"> <a href="#undefined" target="_self" class="inline-block decoration-black/30 dark:decoration-white/30 hover:decoration-black/50 focus-visible:decoration-black/50 dark:hover:decoration-white/50 dark:focus-visible:decoration-white/50 text-current hover:text-black focus-visible:text-black dark:hover:text-white dark:focus-visible:text-white transition-colors duration-300 ease-in-out underline underline-offset-[3px]"> Create file systems </a> </li><li class="list-inside list-disc px-6 py-1.5 text-sm"> <a href="#undefined" target="_self" class="inline-block decoration-black/30 dark:decoration-white/30 hover:decoration-black/50 focus-visible:decoration-black/50 dark:hover:decoration-white/50 dark:focus-visible:decoration-white/50 text-current hover:text-black focus-visible:text-black dark:hover:text-white dark:focus-visible:text-white transition-colors duration-300 ease-in-out underline underline-offset-[3px]"> Mount file systems </a> </li><li class="list-inside list-disc px-6 py-1.5 text-sm"> <a href="#undefined" target="_self" class="inline-block decoration-black/30 dark:decoration-white/30 hover:decoration-black/50 focus-visible:decoration-black/50 dark:hover:decoration-white/50 dark:focus-visible:decoration-white/50 text-current hover:text-black focus-visible:text-black dark:hover:text-white dark:focus-visible:text-white transition-colors duration-300 ease-in-out underline underline-offset-[3px]"> Install Essentials </a> <ul class="translate-x-3"> <li class="list-inside list-disc px-6 py-1.5 text-sm"> <a href="#undefined" target="_self" class="inline-block decoration-black/30 dark:decoration-white/30 hover:decoration-black/50 focus-visible:decoration-black/50 dark:hover:decoration-white/50 dark:focus-visible:decoration-white/50 text-current hover:text-black focus-visible:text-black dark:hover:text-white dark:focus-visible:text-white transition-colors duration-300 ease-in-out underline underline-offset-[3px]"> AMD CPU </a> </li><li class="list-inside list-disc px-6 py-1.5 text-sm"> <a href="#undefined" target="_self" class="inline-block decoration-black/30 dark:decoration-white/30 hover:decoration-black/50 focus-visible:decoration-black/50 dark:hover:decoration-white/50 dark:focus-visible:decoration-white/50 text-current hover:text-black focus-visible:text-black dark:hover:text-white dark:focus-visible:text-white transition-colors duration-300 ease-in-out underline underline-offset-[3px]"> Intel CPU </a> </li><li class="list-inside list-disc px-6 py-1.5 text-sm"> <a href="#undefined" target="_self" class="inline-block decoration-black/30 dark:decoration-white/30 hover:decoration-black/50 focus-visible:decoration-black/50 dark:hover:decoration-white/50 dark:focus-visible:decoration-white/50 text-current hover:text-black focus-visible:text-black dark:hover:text-white dark:focus-visible:text-white transition-colors duration-300 ease-in-out underline underline-offset-[3px]"> Network stack </a> <ul class="translate-x-3"> <li class="list-inside list-disc px-6 py-1.5 text-sm"> <a href="#undefined" target="_self" class="inline-block decoration-black/30 dark:decoration-white/30 hover:decoration-black/50 focus-visible:decoration-black/50 dark:hover:decoration-white/50 dark:focus-visible:decoration-white/50 text-current hover:text-black focus-visible:text-black dark:hover:text-white dark:focus-visible:text-white transition-colors duration-300 ease-in-out underline underline-offset-[3px]"> MAC randomization </a> </li> </ul> </li> </ul> </li><li class="list-inside list-disc px-6 py-1.5 text-sm"> <a href="#undefined" target="_self" class="inline-block decoration-black/30 dark:decoration-white/30 hover:decoration-black/50 focus-visible:decoration-black/50 dark:hover:decoration-white/50 dark:focus-visible:decoration-white/50 text-current hover:text-black focus-visible:text-black dark:hover:text-white dark:focus-visible:text-white transition-colors duration-300 ease-in-out underline underline-offset-[3px]"> Generate File System Table </a> </li><li class="list-inside list-disc px-6 py-1.5 text-sm"> <a href="#undefined" target="_self" class="inline-block decoration-black/30 dark:decoration-white/30 hover:decoration-black/50 focus-visible:decoration-black/50 dark:hover:decoration-white/50 dark:focus-visible:decoration-white/50 text-current hover:text-black focus-visible:text-black dark:hover:text-white dark:focus-visible:text-white transition-colors duration-300 ease-in-out underline underline-offset-[3px]"> Switch to New Installation </a> </li><li class="list-inside list-disc px-6 py-1.5 text-sm"> <a href="#undefined" target="_self" class="inline-block decoration-black/30 dark:decoration-white/30 hover:decoration-black/50 focus-visible:decoration-black/50 dark:hover:decoration-white/50 dark:focus-visible:decoration-white/50 text-current hover:text-black focus-visible:text-black dark:hover:text-white dark:focus-visible:text-white transition-colors duration-300 ease-in-out underline underline-offset-[3px]"> Localization </a> <ul class="translate-x-3"> <li class="list-inside list-disc px-6 py-1.5 text-sm"> <a href="#undefined" target="_self" class="inline-block decoration-black/30 dark:decoration-white/30 hover:decoration-black/50 focus-visible:decoration-black/50 dark:hover:decoration-white/50 dark:focus-visible:decoration-white/50 text-current hover:text-black focus-visible:text-black dark:hover:text-white dark:focus-visible:text-white transition-colors duration-300 ease-in-out underline underline-offset-[3px]"> Set the locale </a> </li> </ul> </li><li class="list-inside list-disc px-6 py-1.5 text-sm"> <a href="#undefined" target="_self" class="inline-block decoration-black/30 dark:decoration-white/30 hover:decoration-black/50 focus-visible:decoration-black/50 dark:hover:decoration-white/50 dark:focus-visible:decoration-white/50 text-current hover:text-black focus-visible:text-black dark:hover:text-white dark:focus-visible:text-white transition-colors duration-300 ease-in-out underline underline-offset-[3px]"> Set the time zone </a> </li><li class="list-inside list-disc px-6 py-1.5 text-sm"> <a href="#undefined" target="_self" class="inline-block decoration-black/30 dark:decoration-white/30 hover:decoration-black/50 focus-visible:decoration-black/50 dark:hover:decoration-white/50 dark:focus-visible:decoration-white/50 text-current hover:text-black focus-visible:text-black dark:hover:text-white dark:focus-visible:text-white transition-colors duration-300 ease-in-out underline underline-offset-[3px]"> Set hardware clock from system clock </a> </li><li class="list-inside list-disc px-6 py-1.5 text-sm"> <a href="#undefined" target="_self" class="inline-block decoration-black/30 dark:decoration-white/30 hover:decoration-black/50 focus-visible:decoration-black/50 dark:hover:decoration-white/50 dark:focus-visible:decoration-white/50 text-current hover:text-black focus-visible:text-black dark:hover:text-white dark:focus-visible:text-white transition-colors duration-300 ease-in-out underline underline-offset-[3px]"> Hostname and Host </a> </li><li class="list-inside list-disc px-6 py-1.5 text-sm"> <a href="#undefined" target="_self" class="inline-block decoration-black/30 dark:decoration-white/30 hover:decoration-black/50 focus-visible:decoration-black/50 dark:hover:decoration-white/50 dark:focus-visible:decoration-white/50 text-current hover:text-black focus-visible:text-black dark:hover:text-white dark:focus-visible:text-white transition-colors duration-300 ease-in-out underline underline-offset-[3px]"> Initramfs </a> </li><li class="list-inside list-disc px-6 py-1.5 text-sm"> <a href="#undefined" target="_self" class="inline-block decoration-black/30 dark:decoration-white/30 hover:decoration-black/50 focus-visible:decoration-black/50 dark:hover:decoration-white/50 dark:focus-visible:decoration-white/50 text-current hover:text-black focus-visible:text-black dark:hover:text-white dark:focus-visible:text-white transition-colors duration-300 ease-in-out underline underline-offset-[3px]"> Add a user </a> </li><li class="list-inside list-disc px-6 py-1.5 text-sm"> <a href="#undefined" target="_self" class="inline-block decoration-black/30 dark:decoration-white/30 hover:decoration-black/50 focus-visible:decoration-black/50 dark:hover:decoration-white/50 dark:focus-visible:decoration-white/50 text-current hover:text-black focus-visible:text-black dark:hover:text-white dark:focus-visible:text-white transition-colors duration-300 ease-in-out underline underline-offset-[3px]"> Configure doas </a> </li><li class="list-inside list-disc px-6 py-1.5 text-sm"> <a href="#undefined" target="_self" class="inline-block decoration-black/30 dark:decoration-white/30 hover:decoration-black/50 focus-visible:decoration-black/50 dark:hover:decoration-white/50 dark:focus-visible:decoration-white/50 text-current hover:text-black focus-visible:text-black dark:hover:text-white dark:focus-visible:text-white transition-colors duration-300 ease-in-out underline underline-offset-[3px]"> Boot Loader </a> <ul class="translate-x-3"> <li class="list-inside list-disc px-6 py-1.5 text-sm"> <a href="#undefined" target="_self" class="inline-block decoration-black/30 dark:decoration-white/30 hover:decoration-black/50 focus-visible:decoration-black/50 dark:hover:decoration-white/50 dark:focus-visible:decoration-white/50 text-current hover:text-black focus-visible:text-black dark:hover:text-white dark:focus-visible:text-white transition-colors duration-300 ease-in-out underline underline-offset-[3px]"> Check for UEFI support </a> </li><li class="list-inside list-disc px-6 py-1.5 text-sm"> <a href="#undefined" target="_self" class="inline-block decoration-black/30 dark:decoration-white/30 hover:decoration-black/50 focus-visible:decoration-black/50 dark:hover:decoration-white/50 dark:focus-visible:decoration-white/50 text-current hover:text-black focus-visible:text-black dark:hover:text-white dark:focus-visible:text-white transition-colors duration-300 ease-in-out underline underline-offset-[3px]"> EFISTUB </a> </li><li class="list-inside list-disc px-6 py-1.5 text-sm"> <a href="#undefined" target="_self" class="inline-block decoration-black/30 dark:decoration-white/30 hover:decoration-black/50 focus-visible:decoration-black/50 dark:hover:decoration-white/50 dark:focus-visible:decoration-white/50 text-current hover:text-black focus-visible:text-black dark:hover:text-white dark:focus-visible:text-white transition-colors duration-300 ease-in-out underline underline-offset-[3px]"> GRUB </a> </li> </ul> </li><li class="list-inside list-disc px-6 py-1.5 text-sm"> <a href="#undefined" target="_self" class="inline-block decoration-black/30 dark:decoration-white/30 hover:decoration-black/50 focus-visible:decoration-black/50 dark:hover:decoration-white/50 dark:focus-visible:decoration-white/50 text-current hover:text-black focus-visible:text-black dark:hover:text-white dark:focus-visible:text-white transition-colors duration-300 ease-in-out underline underline-offset-[3px]"> Reboot </a> </li><li class="list-inside list-disc px-6 py-1.5 text-sm"> <a href="#undefined" target="_self" class="inline-block decoration-black/30 dark:decoration-white/30 hover:decoration-black/50 focus-visible:decoration-black/50 dark:hover:decoration-white/50 dark:focus-visible:decoration-white/50 text-current hover:text-black focus-visible:text-black dark:hover:text-white dark:focus-visible:text-white transition-colors duration-300 ease-in-out underline underline-offset-[3px]"> Post install </a> <ul class="translate-x-3"> <li class="list-inside list-disc px-6 py-1.5 text-sm"> <a href="#undefined" target="_self" class="inline-block decoration-black/30 dark:decoration-white/30 hover:decoration-black/50 focus-visible:decoration-black/50 dark:hover:decoration-white/50 dark:focus-visible:decoration-white/50 text-current hover:text-black focus-visible:text-black dark:hover:text-white dark:focus-visible:text-white transition-colors duration-300 ease-in-out underline underline-offset-[3px]"> Add arch repositories and sort for fastest mirrors </a> <ul class="translate-x-3"> <li class="list-inside list-disc px-6 py-1.5 text-sm"> <a href="#undefined" target="_self" class="inline-block decoration-black/30 dark:decoration-white/30 hover:decoration-black/50 focus-visible:decoration-black/50 dark:hover:decoration-white/50 dark:focus-visible:decoration-white/50 text-current hover:text-black focus-visible:text-black dark:hover:text-white dark:focus-visible:text-white transition-colors duration-300 ease-in-out underline underline-offset-[3px]"> Add arch extra repository </a> </li><li class="list-inside list-disc px-6 py-1.5 text-sm"> <a href="#undefined" target="_self" class="inline-block decoration-black/30 dark:decoration-white/30 hover:decoration-black/50 focus-visible:decoration-black/50 dark:hover:decoration-white/50 dark:focus-visible:decoration-white/50 text-current hover:text-black focus-visible:text-black dark:hover:text-white dark:focus-visible:text-white transition-colors duration-300 ease-in-out underline underline-offset-[3px]"> Sort for fastest mirrors </a> </li> </ul> </li><li class="list-inside list-disc px-6 py-1.5 text-sm"> <a href="#undefined" target="_self" class="inline-block decoration-black/30 dark:decoration-white/30 hover:decoration-black/50 focus-visible:decoration-black/50 dark:hover:decoration-white/50 dark:focus-visible:decoration-white/50 text-current hover:text-black focus-visible:text-black dark:hover:text-white dark:focus-visible:text-white transition-colors duration-300 ease-in-out underline underline-offset-[3px]"> AUR </a> <ul class="translate-x-3"> <li class="list-inside list-disc px-6 py-1.5 text-sm"> <a href="#undefined" target="_self" class="inline-block decoration-black/30 dark:decoration-white/30 hover:decoration-black/50 focus-visible:decoration-black/50 dark:hover:decoration-white/50 dark:focus-visible:decoration-white/50 text-current hover:text-black focus-visible:text-black dark:hover:text-white dark:focus-visible:text-white transition-colors duration-300 ease-in-out underline underline-offset-[3px]"> Install Paru </a> </li><li class="list-inside list-disc px-6 py-1.5 text-sm"> <a href="#undefined" target="_self" class="inline-block decoration-black/30 dark:decoration-white/30 hover:decoration-black/50 focus-visible:decoration-black/50 dark:hover:decoration-white/50 dark:focus-visible:decoration-white/50 text-current hover:text-black focus-visible:text-black dark:hover:text-white dark:focus-visible:text-white transition-colors duration-300 ease-in-out underline underline-offset-[3px]"> Replace sudo with doas </a> </li> </ul> </li><li class="list-inside list-disc px-6 py-1.5 text-sm"> <a href="#undefined" target="_self" class="inline-block decoration-black/30 dark:decoration-white/30 hover:decoration-black/50 focus-visible:decoration-black/50 dark:hover:decoration-white/50 dark:focus-visible:decoration-white/50 text-current hover:text-black focus-visible:text-black dark:hover:text-white dark:focus-visible:text-white transition-colors duration-300 ease-in-out underline underline-offset-[3px]"> Laptop power profiles </a> </li><li class="list-inside list-disc px-6 py-1.5 text-sm"> <a href="#undefined" target="_self" class="inline-block decoration-black/30 dark:decoration-white/30 hover:decoration-black/50 focus-visible:decoration-black/50 dark:hover:decoration-white/50 dark:focus-visible:decoration-white/50 text-current hover:text-black focus-visible:text-black dark:hover:text-white dark:focus-visible:text-white transition-colors duration-300 ease-in-out underline underline-offset-[3px]"> Add swap </a> </li><li class="list-inside list-disc px-6 py-1.5 text-sm"> <a href="#undefined" target="_self" class="inline-block decoration-black/30 dark:decoration-white/30 hover:decoration-black/50 focus-visible:decoration-black/50 dark:hover:decoration-white/50 dark:focus-visible:decoration-white/50 text-current hover:text-black focus-visible:text-black dark:hover:text-white dark:focus-visible:text-white transition-colors duration-300 ease-in-out underline underline-offset-[3px]"> Auto-mount an external LUKS encrypted drive </a> </li> </ul> </li> </ul> </nav> </details> <article class="animate"> <hr>
|
||
<h2 id="introduction">Introduction</h2>
|
||
<p>The goal of this guide is to set up a minimal installation of <strong>Artix Linux</strong> with <strong>OpenRC</strong> as an init system and <strong>full disk encryption</strong> on an <strong>UEFI</strong> or <strong>BIOS</strong> system. This guide is meant to be read alongside the wiki’s.</p>
|
||
<hr>
|
||
<h2 id="acquire-an-installation-image">Acquire an installation image</h2>
|
||
<ol>
|
||
<li>Go to the downloads page <a href="https://artixlinux.org/download.php">https://artixlinux.org/download.php</a></li>
|
||
<li>Scroll down to the <strong>Official ISO images</strong> section.</li>
|
||
<li>Under the <strong>base</strong> section, download the file starting with <code>artix-base-openrc</code> and ending with <code>.iso</code></li>
|
||
</ol>
|
||
<hr>
|
||
<h2 id="prepare-an-installation-medium">Prepare an installation medium</h2>
|
||
<h3 id="windows">Windows</h3>
|
||
<p>Use <a href="https://rufus.ie/en">Rufus</a>, here is a <a href="https://www.wikihow.com/Use-Rufus">guide</a> if you need it.</p>
|
||
<h3 id="linux">Linux</h3>
|
||
<ol>
|
||
<li>Insert a USB flash drive into your PC with at least 2 GB of space available on it.</li>
|
||
<li>Find the corresponding block device for the flash drive in <code>/dev</code> folder. Usually it is <code>/dev/sdb</code>.</li>
|
||
<li>Burn the image to the flash drive (assuming your flash drive is /dev/sdb and that your terminal is opened in the directory of the image)</li>
|
||
</ol>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>sudo dd bs=4M if=./artix-base-openrc-YYYY.MM.DD-x86_64.iso of=/dev/sdb conv=fsync oflag=direct status=progress</span></span></code></pre>
|
||
<hr>
|
||
<h2 id="boot-the-live-environment">Boot the live environment</h2>
|
||
<div data-callout="" data-callout-type="info">
|
||
<div data-callout-title="">Info</div>
|
||
<div data-callout-body="">
|
||
<p>Artix Linux installation images do not support Secure Boot. You will need to disable Secure Boot to boot the installation medium.</p>
|
||
</div>
|
||
</div>
|
||
<ol>
|
||
<li>Power off your PC.</li>
|
||
<li>Insert the flash drive into the computer on which you are installing Artix Linux.</li>
|
||
<li>Power on your PC and press <em>boot menu</em> key.</li>
|
||
<li>Boot the installation medium.</li>
|
||
</ol>
|
||
<hr>
|
||
<h2 id="enter-the-live-environment">Enter the live environment</h2>
|
||
<ol>
|
||
<li>Login with the default credentials.</li>
|
||
</ol>
|
||
<ul>
|
||
<li>Username: <code>artix</code></li>
|
||
<li>Password: <code>artix</code></li>
|
||
</ul>
|
||
<ol start="2">
|
||
<li>Switch to the root user</li>
|
||
</ol>
|
||
<div data-callout="" data-callout-type="note">
|
||
<div data-callout-title="">Note</div>
|
||
<div data-callout-body="">
|
||
<p>When encountering a code block as below throughout this guide, execute the commands within it directly in the terminal.</p>
|
||
</div>
|
||
</div>
|
||
<div data-callout="" data-callout-type="info">
|
||
<div data-callout-title="">Info</div>
|
||
<div data-callout-body="">
|
||
<p>When prompted for a password, enter <code>artix</code></p>
|
||
</div>
|
||
</div>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>su -</span></span></code></pre>
|
||
<hr>
|
||
<h2 id="connect-to-the-internet">Connect to the internet</h2>
|
||
<h3 id="via-ethernet">Via Ethernet</h3>
|
||
<p>Connect the computer via an Ethernet cable</p>
|
||
<h3 id="via-wifi">Via WiFi</h3>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>sudo rfkill unblock wifi</span></span>
|
||
<span class="line"><span>sudo ip link set wlan0 up</span></span>
|
||
<span class="line"><span>connmanctl</span></span></code></pre>
|
||
<div data-callout="" data-callout-type="tip">
|
||
<div data-callout-title="">Tip</div>
|
||
<div data-callout-body="">
|
||
<p>Network names can be tab-completed.</p>
|
||
</div>
|
||
</div>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>agent on</span></span>
|
||
<span class="line"><span>scan wifi</span></span>
|
||
<span class="line"><span>services</span></span></code></pre>
|
||
<div data-callout="" data-callout-type="example">
|
||
<div data-callout-title="">Example</div>
|
||
<div data-callout-body="">
|
||
<p>connect wifi_dc85de828967_38303944616e69656c73_managed_psk</p>
|
||
</div>
|
||
</div>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>connect {WiFi name} </span></span>
|
||
<span class="line"><span>quit</span></span></code></pre>
|
||
<h3 id="verify-internet-connectivity">Verify internet connectivity</h3>
|
||
<p>Check for internet</p>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>ping artixlinux.org</span></span></code></pre>
|
||
<hr>
|
||
<h2 id="update-the-system-clock">Update the system clock</h2>
|
||
<p>Activate the NTP daemon to synchronize the computer’s real-time clock:</p>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>rc-service ntpd start</span></span></code></pre>
|
||
<hr>
|
||
<h2 id="partition-the-disk">Partition the disk</h2>
|
||
<ol>
|
||
<li>Install <code>gdisk</code>.</li>
|
||
</ol>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>pacman -Sy gdisk</span></span></code></pre>
|
||
<ol start="2">
|
||
<li>Partition your drive. You can find your drive name using the <code>lsblk</code> command.</li>
|
||
</ol>
|
||
<div data-callout="" data-callout-type="note">
|
||
<div data-callout-title="">Note</div>
|
||
<div data-callout-body="">
|
||
<p>I will be using <code>nvme0n1</code> as my drive throughout this guide, please adapt it to your disk name.
|
||
If you have an hdd, your drive name may ressemble something like <code>sda</code>.</p>
|
||
</div>
|
||
</div>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>gdisk /dev/nvme0n1</span></span></code></pre>
|
||
<ol start="2">
|
||
<li>Delete any existing partitions</li>
|
||
</ol>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>Command (m for help): d</span></span></code></pre>
|
||
<ol start="3">
|
||
<li>Create a boot partition</li>
|
||
</ol>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>Command (m for help): n</span></span>
|
||
<span class="line"><span>Partition number (1-128, default 1):</span></span>
|
||
<span class="line"><span>First sector (...):</span></span>
|
||
<span class="line"><span>Last sector (...): +512M</span></span>
|
||
<span class="line"><span>Hex code or GUID (...): ef00</span></span></code></pre>
|
||
<ol start="4">
|
||
<li>Create a root partition</li>
|
||
</ol>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>Command (m for help): n</span></span>
|
||
<span class="line"><span>Partition number (2-128, default 1):</span></span>
|
||
<span class="line"><span>First sector (...):</span></span>
|
||
<span class="line"><span>Last sector (...):</span></span>
|
||
<span class="line"><span>Hex code or GUID (...): 8300</span></span></code></pre>
|
||
<ol start="5">
|
||
<li>Save the changes</li>
|
||
</ol>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>Command (m for help): w</span></span>
|
||
<span class="line"><span>Do you want to proceed? (Y/N): y</span></span></code></pre>
|
||
<ol start="6">
|
||
<li>Verify partitioning</li>
|
||
</ol>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>lsblk</span></span></code></pre>
|
||
<div data-callout="" data-callout-type="note">
|
||
<div data-callout-title="">Note</div>
|
||
<div data-callout-body="">
|
||
<p>It should look something like this:</p>
|
||
</div>
|
||
</div>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS</span></span>
|
||
<span class="line"><span>nvme0n1 259:0 0 465,8G 0 disk</span></span>
|
||
<span class="line"><span>├─nvme0n1p1 259:1 0 512M 0 part</span></span>
|
||
<span class="line"><span>└─nvme0n1p2 259:2 0 465,3G 0 part</span></span></code></pre>
|
||
<hr>
|
||
<h2 id="encrypt-root-partition">Encrypt root partition</h2>
|
||
<ol>
|
||
<li>Encrypt your root partition.</li>
|
||
</ol>
|
||
<div data-callout="" data-callout-type="tip">
|
||
<div data-callout-title="">Tip</div>
|
||
<div data-callout-body="">
|
||
<p>Make sure to to enter a secure passphrase and to write it down in a secure place as you will not be able to change it later</p>
|
||
</div>
|
||
</div>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>cryptsetup luksFormat /dev/nvme0n1p2</span></span>
|
||
<span class="line"><span>Are you sure (Type `yes` in capital letters): YES</span></span></code></pre>
|
||
<ol start="2">
|
||
<li>Open the encrypted partition</li>
|
||
</ol>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>cryptsetup open /dev/nvme0n1p2 root</span></span></code></pre>
|
||
<hr>
|
||
<h2 id="create-file-systems">Create file systems</h2>
|
||
<ol>
|
||
<li>Create the boot file system</li>
|
||
</ol>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>mkfs.fat -F32 /dev/nvme0n1p1</span></span></code></pre>
|
||
<ol>
|
||
<li>Create the root file system</li>
|
||
</ol>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>mkfs.ext4 /dev/mapper/root</span></span></code></pre>
|
||
<hr>
|
||
<h2 id="mount-file-systems">Mount file systems</h2>
|
||
<ol>
|
||
<li>Mount the root file system</li>
|
||
</ol>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>mount /dev/mapper/root /mnt</span></span></code></pre>
|
||
<ol start="2">
|
||
<li>Mount the boot file system</li>
|
||
</ol>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>mount -m /dev/nvme0n1p1 /mnt/boot</span></span></code></pre>
|
||
<ol start="3">
|
||
<li>Verify mounting</li>
|
||
</ol>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>lsblk</span></span></code></pre>
|
||
<div data-callout="" data-callout-type="note">
|
||
<div data-callout-title="">Note</div>
|
||
<div data-callout-body="">
|
||
<p>It should look something like this:</p>
|
||
</div>
|
||
</div>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS</span></span>
|
||
<span class="line"><span>nvme0n1 259:0 0 465,8G 0 disk </span></span>
|
||
<span class="line"><span>├─nvme0n1p1 259:1 0 512M 0 part /mnt/boot</span></span>
|
||
<span class="line"><span>└─nvme0n1p2 259:2 0 465,3G 0 part </span></span>
|
||
<span class="line"><span> └─root 254:0 0 465,2G 0 crypt /mnt</span></span></code></pre>
|
||
<hr>
|
||
<h2 id="install-essentials">Install Essentials</h2>
|
||
<p>Install the base system, kernel, init system and other essential packages.</p>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>basestrap /mnt base linux linux-firmware openrc elogind-openrc cryptsetup cryptsetup-openrc efibootmgr doas nano</span></span></code></pre>
|
||
<div data-callout="" data-callout-type="note">
|
||
<div data-callout-title="">Note</div>
|
||
<div data-callout-body="">
|
||
<p>Install AMD or Intel microcode, depending on your system’s CPU</p>
|
||
</div>
|
||
</div>
|
||
<h3 id="amd-cpu">AMD CPU</h3>
|
||
<p>Install AMD CPU microcode updates</p>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>basestrap /mnt amd-ucode</span></span></code></pre>
|
||
<h3 id="intel-cpu">Intel CPU</h3>
|
||
<p>Install Intel CPU microcode updates</p>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>basestrap /mnt intel-ucode</span></span></code></pre>
|
||
<h3 id="network-stack">Network stack</h3>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>basestrap /mnt wpa_supplicant networkmanager networkmanager-openrc iwd iwd-openrc</span></span>
|
||
<span class="line"><span>rc-update add NetworkManager</span></span>
|
||
<span class="line"><span>rc-update add iwd</span></span>
|
||
<span class="line"><span></span></span>
|
||
<span class="line"><span>cat << EOF >> /etc/NetworkManager/conf.d/wifi_backend.conf</span></span>
|
||
<span class="line"><span>[device]</span></span>
|
||
<span class="line"><span>wifi.backend=iwd</span></span>
|
||
<span class="line"><span>EOF</span></span></code></pre>
|
||
<h4 id="mac-randomization">MAC randomization</h4>
|
||
<div data-callout="" data-callout-type="info">
|
||
<div data-callout-title="">Info</div>
|
||
<div data-callout-body="">
|
||
<p>MAC randomization can be used for increased privacy by not disclosing your real MAC address to the WiFi network.</p>
|
||
</div>
|
||
</div>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>cat << EOF >> /etc/NetworkManager/conf.d/00-macrandomize.conf</span></span>
|
||
<span class="line"><span>[device-mac-randomization]</span></span>
|
||
<span class="line"><span>wifi.scan-rand-mac-address=yes</span></span>
|
||
<span class="line"><span></span></span>
|
||
<span class="line"><span>[connection-mac-randomization]</span></span>
|
||
<span class="line"><span>ethernet.cloned-mac-address=random</span></span>
|
||
<span class="line"><span>wifi.cloned-mac-address=random</span></span>
|
||
<span class="line"><span>EOF</span></span></code></pre>
|
||
<hr>
|
||
<h2 id="generate-file-system-table">Generate File System Table</h2>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>fstabgen -U /mnt >> /mnt/etc/fstab</span></span></code></pre>
|
||
<hr>
|
||
<h2 id="switch-to-new-installation">Switch to New Installation</h2>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>artix-chroot /mnt bash</span></span></code></pre>
|
||
<hr>
|
||
<h2 id="localization">Localization</h2>
|
||
<h3 id="set-the-locale">Set the locale</h3>
|
||
<div data-callout="" data-callout-type="note">
|
||
<div data-callout-title="">Note</div>
|
||
<div data-callout-body="">
|
||
<p>Feel free to change <code>en_DK.UTF-8</code> to your preferred locale such as <code>en_US.UTF-8</code> or <code>en_GB.UTF-8</code></p>
|
||
</div>
|
||
</div>
|
||
<ol>
|
||
<li>Un-comment <code>en_DK.UTF-8</code></li>
|
||
</ol>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>nano /etc/locale.gen</span></span></code></pre>
|
||
<ol start="2">
|
||
<li>Generate locales.</li>
|
||
</ol>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>locale-gen</span></span>
|
||
<span class="line"><span>echo 'LANG=en_DK.UTF-8' > /etc/locale.conf</span></span></code></pre>
|
||
<hr>
|
||
<h2 id="set-the-time-zone">Set the time zone</h2>
|
||
<div data-callout="" data-callout-type="example">
|
||
<div data-callout-title="">Example</div>
|
||
<div data-callout-body="">
|
||
<p><code>ln -sf /usr/share/zoneinfo/America/Toronto /etc/localtime</code></p>
|
||
</div>
|
||
</div>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>ln -sf /usr/share/zoneinfo/Region/City /etc/localtime</span></span></code></pre>
|
||
<hr>
|
||
<h2 id="set-hardware-clock-from-system-clock">Set hardware clock from system clock</h2>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>hwclock --systohc</span></span></code></pre>
|
||
<hr>
|
||
<h2 id="hostname-and-host">Hostname and Host</h2>
|
||
<div data-callout="" data-callout-type="note">
|
||
<div data-callout-title="">Note</div>
|
||
<div data-callout-body="">
|
||
<p>Change <code>artix</code> to your desired hostname in all of the following commands</p>
|
||
</div>
|
||
</div>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>echo 'artix' > /etc/hostname</span></span></code></pre>
|
||
<ol>
|
||
<li>Edit <code>/etc/conf.d/hostname</code></li>
|
||
</ol>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>nano /etc/conf.d/hostname</span></span></code></pre>
|
||
<ol start="2">
|
||
<li>
|
||
<p>Replace <code>hostname="localhost"</code> with <code>hostname="artix"</code></p>
|
||
</li>
|
||
<li>
|
||
<p>Edit <code>/etc/hosts</code></p>
|
||
</li>
|
||
</ol>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>nano /etc/hosts</span></span></code></pre>
|
||
<ol start="4">
|
||
<li>Add the following:</li>
|
||
</ol>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>127.0.0.1 localhost</span></span>
|
||
<span class="line"><span>::1 localhost</span></span>
|
||
<span class="line"><span>127.0.1.1 artix.localdomain artix</span></span></code></pre>
|
||
<hr>
|
||
<h2 id="initramfs">Initramfs</h2>
|
||
<ol>
|
||
<li>Edit <code>/etc/mkinitcpio.conf</code></li>
|
||
</ol>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>nano /etc/mkinitcpio.conf</span></span></code></pre>
|
||
<ol start="2">
|
||
<li>In the <code>HOOKS</code> array, add <code>encrypt</code> between <code>block</code> and <code>filesystems</code></li>
|
||
</ol>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>mkinitcpio -P</span></span></code></pre>
|
||
<div data-callout="" data-callout-type="note">
|
||
<div data-callout-title="">Note</div>
|
||
<div data-callout-body="">
|
||
<p>It should look something like this:</p>
|
||
</div>
|
||
</div>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>HOOKS=(base udev autodetect microcode modconf kms keyboard keymap consolefont block encrypt filesystems fsck)</span></span></code></pre>
|
||
<hr>
|
||
<h2 id="add-a-user">Add a user</h2>
|
||
<ol>
|
||
<li>Set the root password.</li>
|
||
</ol>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>passwd</span></span></code></pre>
|
||
<ol start="2">
|
||
<li>Create a user and set his password.</li>
|
||
</ol>
|
||
<div data-callout="" data-callout-type="tip">
|
||
<div data-callout-title="">Tip</div>
|
||
<div data-callout-body="">
|
||
<p>Change <code>artix</code> to your desired username</p>
|
||
</div>
|
||
</div>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>useradd -m artix</span></span>
|
||
<span class="line"><span>passwd artix</span></span></code></pre>
|
||
<hr>
|
||
<h2 id="configure-doas">Configure doas</h2>
|
||
<ol>
|
||
<li>Create the config file.</li>
|
||
</ol>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>touch /etc/doas.conf</span></span>
|
||
<span class="line"><span>chown -c root:root /etc/doas.conf</span></span>
|
||
<span class="line"><span>chmod -c 0400 /etc/doas.conf</span></span></code></pre>
|
||
<ol start="2">
|
||
<li>Edit <code>/etc/doas.conf</code></li>
|
||
</ol>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>nano /etc/doas.conf</span></span></code></pre>
|
||
<ol start="3">
|
||
<li>Add the following:</li>
|
||
</ol>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>permit artix as root</span></span>
|
||
<span class="line"><span>permit nopass artix as root cmd pacman</span></span></code></pre>
|
||
<hr>
|
||
<h2 id="boot-loader">Boot Loader</h2>
|
||
<h3 id="check-for-uefi-support">Check for UEFI support</h3>
|
||
<div data-callout="" data-callout-type="tip">
|
||
<div data-callout-title="">Tip</div>
|
||
<div data-callout-body="">
|
||
<p>If you see a bunch of files listed, use EFISTUB.
|
||
If you do not see a bunch of files listed, your system does not support UEFI and you should use GRUB.</p>
|
||
</div>
|
||
</div>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>ls /sys/firmware/efi/efivars</span></span></code></pre>
|
||
<h3 id="efistub">EFISTUB</h3>
|
||
<ol>
|
||
<li>Get the UUID of your root partition.</li>
|
||
</ol>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>blkid -s UUID -o value /dev/nvme0n1p2</span></span></code></pre>
|
||
<ol start="2">
|
||
<li>Create a boot entry</li>
|
||
</ol>
|
||
<div data-callout="" data-callout-type="tip">
|
||
<div data-callout-title="">Tip</div>
|
||
<div data-callout-body="">
|
||
<p>Replace xxxx with the UUID that you obtained earlier.
|
||
Replace <code>intel-ucode.img</code> with <code>amd-ucode.img</code> if you have an AMD CPU</p>
|
||
</div>
|
||
</div>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>efibootmgr -c -d /dev/nvme0n1 -p 1 -l /vmlinuz-linux -L "Artix" -u "cryptdevice=UUID=xxxx:root root=/dev/mapper/root rw initrd=\intel-ucode.img initrd=\initramfs-linux.img loglevel=3 quiet"</span></span></code></pre>
|
||
<h3 id="grub">GRUB</h3>
|
||
<ol>
|
||
<li>Install grub on your boot partition</li>
|
||
</ol>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>pacman -S grub</span></span>
|
||
<span class="line"><span>grub-install /dev/sda</span></span></code></pre>
|
||
<ol start="2">
|
||
<li>Get the UUID of your root partition.</li>
|
||
</ol>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>blkid -s UUID -o value /dev/nvme0n1p2</span></span></code></pre>
|
||
<ol start="3">
|
||
<li>Edit <code>/etc/default/grub</code></li>
|
||
</ol>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>nano /etc/default/grub</span></span></code></pre>
|
||
<ol start="4">
|
||
<li>Add the following to the <code>GRUB_CMDLINE_LINUX</code> line, where xxxx is the UUID that you obtained earlier.</li>
|
||
</ol>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>cryptdevice=UUID=xxxx:root root=/dev/mapper/root</span></span></code></pre>
|
||
<div data-callout="" data-callout-type="note">
|
||
<div data-callout-title="">Note</div>
|
||
<div data-callout-body="">
|
||
<p>It should look something like this:</p>
|
||
</div>
|
||
</div>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>GRUB_CMDLINE_LINUX="cryptdevice=UUID=550e8400-e29b-41d4-a716-446655440000:root root=/dev/mapper/root"</span></span></code></pre>
|
||
<ol start="5">
|
||
<li>
|
||
<p>Un-comment <code>#GRUB_ENABLE_CRYPTODISK=y</code></p>
|
||
</li>
|
||
<li>
|
||
<p>Generate the config file.</p>
|
||
</li>
|
||
</ol>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>grub-mkconfig -o /boot/grub/grub.cfg</span></span></code></pre>
|
||
<hr>
|
||
<h2 id="reboot">Reboot</h2>
|
||
<ol>
|
||
<li>You can reboot and enter into your new installation.</li>
|
||
</ol>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>exit</span></span>
|
||
<span class="line"><span>umount -R /mnt</span></span>
|
||
<span class="line"><span>reboot now</span></span></code></pre>
|
||
<div data-callout="" data-callout-type="note">
|
||
<div data-callout-title="">Note</div>
|
||
<div data-callout-body="">
|
||
<p>Unplug your flash drive after the screen turns black.</p>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<h2 id="post-install">Post install</h2>
|
||
<p>You will now be greeted with a similar screen as when you first booted from the flash drive.
|
||
Login using the credentials that you set, if you followed the example your username would be <code>artix</code>.</p>
|
||
<h3 id="add-arch-repositories-and-sort-for-fastest-mirrors">Add arch repositories and sort for fastest mirrors</h3>
|
||
<h4 id="add-arch-extra-repository">Add arch extra repository</h4>
|
||
<ol>
|
||
<li>Install packages</li>
|
||
</ol>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>doas pacman -Syu artix-archlinux-support curl</span></span>
|
||
<span class="line"><span>doas pacman-key --populate archlinux</span></span>
|
||
<span class="line"><span>doas sh -c "curl https://archlinux.org/mirrorlist/all -o /etc/pacman.d/mirrorlist-arch"</span></span></code></pre>
|
||
<ol start="2">
|
||
<li>Edit <code>/etc/pacman.d/mirrorlist-arch</code></li>
|
||
</ol>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>doas nano /etc/pacman.d/mirrorlist-arch</span></span></code></pre>
|
||
<ol start="3">
|
||
<li>
|
||
<p>Un-comment the first server entries under the worldwide section</p>
|
||
</li>
|
||
<li>
|
||
<p>Edit <code>/etc/pacman.conf</code></p>
|
||
</li>
|
||
</ol>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>doas nano /etc/pacman.conf</span></span></code></pre>
|
||
<ol start="5">
|
||
<li>Add the following to the bottom of the file</li>
|
||
</ol>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>##Arch</span></span>
|
||
<span class="line"><span>[extra]</span></span>
|
||
<span class="line"><span>Include = /etc/pacman.d/mirrorlist-arch</span></span>
|
||
<span class="line"><span></span></span>
|
||
<span class="line"><span>##[multilib]</span></span>
|
||
<span class="line"><span>##Include = /etc/pacman.d/mirrorlist-arch</span></span></code></pre>
|
||
<h4 id="sort-for-fastest-mirrors">Sort for fastest mirrors</h4>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>doas pacman -Syu reflector pacman-contrib</span></span>
|
||
<span class="line"><span>doas reflector --verbose -p https -l 30 -f 5 --sort rate --save /etc/pacman.d/mirrorlist-arch</span></span>
|
||
<span class="line"><span>doas sh -c "curl https://gitea.artixlinux.org/packages/artix-mirrorlist/raw/branch/master/mirrorlist -o /etc/pacman.d/mirrorlist.bak"</span></span>
|
||
<span class="line"><span>doas sh -c "rankmirrors -v -n 5 /etc/pacman.d/mirrorlist.bak > /etc/pacman.d/mirrorlist"</span></span></code></pre>
|
||
<h3 id="aur">AUR</h3>
|
||
<h4 id="install-paru">Install Paru</h4>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>doas pacman -S --needed base-devel</span></span>
|
||
<span class="line"><span>git clone https://aur.archlinux.org/paru.git</span></span>
|
||
<span class="line"><span>cd paru</span></span>
|
||
<span class="line"><span>makepkg -si</span></span>
|
||
<span class="line"><span>cd ..</span></span>
|
||
<span class="line"><span>rm -rf paru</span></span></code></pre>
|
||
<h4 id="replace-sudo-with-doas">Replace sudo with doas</h4>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>doas pacman -Rdd sudo</span></span>
|
||
<span class="line"><span>doas ln -s /usr/bin/doas /usr/bin/sudo</span></span></code></pre>
|
||
<h3 id="laptop-power-profiles">Laptop power profiles</h3>
|
||
<p>Install and enable the powerprofiles daemon</p>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>doas pacman -S power-profiles-daemon power-profiles-daemon-openrc</span></span>
|
||
<span class="line"><span>doas rc-update add power-profiles-daemon</span></span>
|
||
<span class="line"><span>doas rc-service power-profiles-daemon start</span></span></code></pre>
|
||
<h3 id="add-swap">Add swap</h3>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>doas fallocate -l 4G /swapfile</span></span>
|
||
<span class="line"><span>doas chmod 600 /swapfile</span></span>
|
||
<span class="line"><span>daos mkswap /swapfile</span></span>
|
||
<span class="line"><span>doas swapon /swapfile</span></span>
|
||
<span class="line"><span>doas cp /etc/fstab /etc/fstab.bak</span></span>
|
||
<span class="line"><span>echo '/swapfile none swap sw 0 0' | doas tee -a /etc/fstab</span></span></code></pre>
|
||
<h3 id="auto-mount-an-external-luks-encrypted-drive">Auto-mount an external LUKS encrypted drive</h3>
|
||
<pre class="astro-code css-variables" style="background-color:var(--astro-code-background);color:var(--astro-code-foreground); overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>doas fdisk /dev/sdb</span></span>
|
||
<span class="line"><span>>g, n, w</span></span>
|
||
<span class="line"><span></span></span>
|
||
<span class="line"><span>doas cryptsetup luksFormat /dev/sdb1</span></span>
|
||
<span class="line"><span>doas cryptsetup luksOpen /dev/sdb1 hdd1</span></span>
|
||
<span class="line"><span>doas mkfs.ext4 /dev/mapper/hdd1</span></span>
|
||
<span class="line"><span>doas mkdir /mnt/hdd1</span></span>
|
||
<span class="line"><span>doas mount /dev/mapper/hdd1 /mnt/hdd1</span></span>
|
||
<span class="line"><span>doas chown vega:vega /mnt/hdd1</span></span>
|
||
<span class="line"><span>doas dd if=/dev/urandom of=/root/keyfile_hdd1 bs=512 count=4</span></span>
|
||
<span class="line"><span>doas chmod 0400 /root/keyfile_hdd1</span></span>
|
||
<span class="line"><span>doas cryptsetup luksAddKey /dev/sdb1 /root/keyfile_hdd1</span></span>
|
||
<span class="line"><span>UUID=$(doas blkid -s UUID -o value /dev/sdb1)</span></span>
|
||
<span class="line"><span></span></span>
|
||
<span class="line"><span>doas sh -c "cat << EOF >> /etc/conf.d/dmcrypt</span></span>
|
||
<span class="line"><span>target=hdd1</span></span>
|
||
<span class="line"><span>source=UUID='$UUID'</span></span>
|
||
<span class="line"><span>key=/root/keyfile_hdd1</span></span>
|
||
<span class="line"><span>wait=2</span></span>
|
||
<span class="line"><span>EOF"</span></span>
|
||
<span class="line"><span></span></span>
|
||
<span class="line"><span>doas rc-update add dmcrypt boot</span></span>
|
||
<span class="line"><span>doas reboot</span></span></code></pre> <div class="grid grid-cols-2 gap-1.5 sm:gap-3"> <div class="invisible"></div> <div class="invisible"></div> </div> </article> </div> </main> <footer class="animate"> <div class="mx-auto max-w-screen-sm px-3"> <div class="relative"> <div class="absolute -top-12 right-0"> <button id="back-to-top" class="group relative flex w-fit flex-nowrap rounded border border-black/15 py-1.5 pl-8 pr-3 transition-colors duration-300 ease-in-out hover:bg-black/5 hover:text-black focus-visible:bg-black/5 focus-visible:text-black dark:border-white/20 dark:hover:bg-white/5 dark:hover:text-white dark:focus-visible:bg-white/5 dark:focus-visible:text-white"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="absolute left-2 top-1/2 size-4 -translate-y-1/2 rotate-90 fill-none stroke-current stroke-2"> <line x1="5" y1="12" x2="19" y2="12" class="translate-x-2 scale-x-0 transition-transform duration-300 ease-in-out group-hover:translate-x-0 group-hover:scale-x-100 group-focus-visible:translate-x-0 group-focus-visible:scale-x-100"></line> <polyline points="12 5 5 12 12 19" class="translate-x-1 transition-transform duration-300 ease-in-out group-hover:translate-x-0 group-focus-visible:translate-x-0"></polyline> </svg> <div class="text-sm">Back to top</div> </button> </div> </div> <div class="flex items-center justify-between"> <div>© 2025 • z0x</div> <div class="flex flex-wrap items-center gap-1.5"> <a aria-label="RSS" href="/rss.xml" target="_blank" class="group flex size-9 items-center justify-center rounded border border-black/15 hover:bg-black/5 focus-visible:bg-black/5 dark:border-white/20 dark:hover:bg-white/5 dark:focus-visible:bg-white/5"> <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="transition-colors duration-300 ease-in-out group-hover:animate-pulse group-hover:stroke-black group-focus-visible:animate-pulse group-focus-visible:stroke-black group-hover:dark:stroke-white dark:group-focus-visible:stroke-white"> <path d="M5 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path> <path d="M4 4a16 16 0 0 1 16 16"></path> <path d="M4 11a9 9 0 0 1 9 9"></path> </svg> </a> <button id="light-theme-button" aria-label="Light theme" class="group flex size-9 items-center justify-center rounded border border-black/15 hover:bg-black/5 focus-visible:bg-black/5 dark:border-white/20 dark:hover:bg-white/5 dark:focus-visible:bg-white/5"> <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="transition-colors duration-300 ease-in-out group-hover:animate-pulse group-hover:stroke-black group-focus-visible:animate-pulse group-focus-visible:stroke-black group-hover:dark:stroke-white dark:group-focus-visible:stroke-white"> <circle cx="12" cy="12" r="5"></circle> <line x1="12" y1="1" x2="12" y2="3"></line> <line x1="12" y1="21" x2="12" y2="23"></line> <line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line> <line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line> <line x1="1" y1="12" x2="3" y2="12"></line> <line x1="21" y1="12" x2="23" y2="12"></line> <line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line> <line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line> </svg> </button> <button id="dark-theme-button" aria-label="Dark theme" class="group flex size-9 items-center justify-center rounded border border-black/15 hover:bg-black/5 focus-visible:bg-black/5 dark:border-white/20 dark:hover:bg-white/5 dark:focus-visible:bg-white/5"> <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="transition-colors duration-300 ease-in-out group-hover:animate-pulse group-hover:stroke-black group-focus-visible:animate-pulse group-focus-visible:stroke-black group-hover:dark:stroke-white dark:group-focus-visible:stroke-white"> <path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path> </svg> </button> <button id="system-theme-button" aria-label="System theme" class="group flex size-9 items-center justify-center rounded border border-black/15 hover:bg-black/5 focus-visible:bg-black/5 dark:border-white/20 dark:hover:bg-white/5 dark:focus-visible:bg-white/5"> <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="transition-colors duration-300 ease-in-out group-hover:animate-pulse group-hover:stroke-black group-focus-visible:animate-pulse group-focus-visible:stroke-black group-hover:dark:stroke-white dark:group-focus-visible:stroke-white"> <rect x="2" y="3" width="20" height="14" rx="2" ry="2"></rect> <line x1="8" y1="21" x2="16" y2="21"></line> <line x1="12" y1="17" x2="12" y2="21"></line> </svg> </button> </div> </div> </div> </footer> </body></html> |