<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Linux on Samuel Matildes - Knowledge Base</title><link>https://docs.matildes.dev/tags/linux/</link><description>Recent content in Linux on Samuel Matildes - Knowledge Base</description><generator>Hugo</generator><language>en</language><lastBuildDate>Tue, 26 May 2026 14:15:13 +0100</lastBuildDate><atom:link href="https://docs.matildes.dev/tags/linux/index.xml" rel="self" type="application/rss+xml"/><item><title>How Antivirus Software Can Prevent Linux Boot: Troubleshooting Guide</title><link>https://docs.matildes.dev/linux/admin/antivirus-boot-issues/</link><pubDate>Fri, 31 Oct 2025 00:00:00 +0000</pubDate><guid>https://docs.matildes.dev/linux/admin/antivirus-boot-issues/</guid><description>&lt;h2 id="understanding-antivirus-boot-interference"&gt;Understanding Antivirus Boot Interference&lt;a class="td-heading-self-link" href="#understanding-antivirus-boot-interference" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Antivirus software, while crucial for system security, can sometimes interfere with the Linux boot process. This occurs when security modules become overly aggressive during system initialization, potentially causing boot failures, readonly filesystem mounts, or service startup issues.&lt;/p&gt;
&lt;h3 id="common-symptoms"&gt;Common Symptoms&lt;a class="td-heading-self-link" href="#common-symptoms" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;System fails to boot completely&lt;/li&gt;
&lt;li&gt;Filesystem mounts as readonly (&lt;code&gt;ro&lt;/code&gt;) instead of read-write (&lt;code&gt;rw&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Critical services fail to start&lt;/li&gt;
&lt;li&gt;Boot hangs at specific points&lt;/li&gt;
&lt;li&gt;SELinux/AppArmor policy violations during boot&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="filesystem-readonly-issues"&gt;Filesystem Readonly Issues&lt;a class="td-heading-self-link" href="#filesystem-readonly-issues" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;One of the most common problems occurs when antivirus software causes the root filesystem to mount readonly. This prevents the system from writing critical boot files and can halt the initialization process.&lt;/p&gt;</description></item><item><title>How to Enable Azure Serial Console and GRUB on Linux VMs</title><link>https://docs.matildes.dev/azure/vm/serial-console/</link><pubDate>Tue, 14 Oct 2025 00:00:00 +0000</pubDate><guid>https://docs.matildes.dev/azure/vm/serial-console/</guid><description>&lt;p&gt;Azure Serial Console is invaluable when SSH or the network is unavailable. This guide shows how to configure Linux distributions to expose the GRUB menu and kernel boot logs over the VM’s serial port on Azure, fixing cases where migrated images or some distros don’t show GRUB or any serial output.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;For proactive setup, follow Microsoft’s official guide: &lt;a href="https://learn.microsoft.com/en-us/troubleshoot/azure/virtual-machines/linux/serial-console-grub-proactive-configuration"&gt;Proactive GRUB and serial console configuration for Linux on Azure&lt;/a&gt;. This article is intended for cases where you’re facing issues getting serial console and the GRUB menu to display and need troubleshooting-oriented configuration.&lt;/p&gt;</description></item><item><title>How to Troubleshoot Linux Performance — Field Playbook</title><link>https://docs.matildes.dev/linux/admin/linux-performance-playbook/</link><pubDate>Tue, 19 May 2026 00:00:00 +0000</pubDate><guid>https://docs.matildes.dev/linux/admin/linux-performance-playbook/</guid><description>&lt;p&gt;&lt;i class="fas fa-tachometer-alt" aria-hidden="true"&gt;&lt;/i&gt; A field-ready reference for Linux performance investigations — keep it open in a second terminal.&lt;/p&gt;
&lt;h2 id="how-to-use-this-playbook"&gt;How to use this playbook&lt;a class="td-heading-self-link" href="#how-to-use-this-playbook" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Linux performance problems split cleanly into &lt;strong&gt;two very different investigations&lt;/strong&gt;, and picking the wrong one wastes hours:&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Situation&lt;/th&gt;
 &lt;th&gt;Track&lt;/th&gt;
 &lt;th&gt;What you do&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;The problem is happening &lt;strong&gt;right now&lt;/strong&gt; (or you can reproduce it on demand)&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;Track A — Live Triage&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Interactive tools, sample at 1s intervals, follow the bottleneck&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;The problem is &lt;strong&gt;intermittent / random&lt;/strong&gt; (happens overnight, once a week, only under load you can&amp;rsquo;t reproduce)&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;Track B — Background Collection&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Arm continuous loggers &lt;em&gt;before&lt;/em&gt; the next occurrence, then mine the logs afterwards&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="kb-callout kb-callout--rule"&gt;
 &lt;div class="kb-callout__title"&gt;
 &lt;i class="fas fa-bullseye" aria-hidden="true"&gt;&lt;/i&gt;
 &lt;span&gt;Rule of thumb&lt;/span&gt;
 &lt;/div&gt;
 &lt;div class="kb-callout__body"&gt;
 If you can&amp;rsquo;t reproduce it, &lt;strong&gt;do not&lt;/strong&gt; keep staring at &lt;code&gt;top&lt;/code&gt;. Stop, deploy collectors, walk away, and analyse later. Otherwise you&amp;rsquo;ll miss the event every single time.
 &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&lt;img src="https://docs.matildes.dev/linux/admin/linux-performance-playbook/workflow.png" alt="Decision flow: live triage vs. background collection"&gt;&lt;/p&gt;</description></item><item><title>Understanding IO Delays in Linux - Performance Testing with io-delayer</title><link>https://docs.matildes.dev/linux/admin/io-delayer-performance-testing/</link><pubDate>Wed, 07 Jan 2026 00:00:00 +0000</pubDate><guid>https://docs.matildes.dev/linux/admin/io-delayer-performance-testing/</guid><description>&lt;p&gt;
 &lt;a href="https://github.com/samatild/io-delayer" target="_blank" rel="noopener"&gt;
 &lt;i class="fab fa-github" aria-hidden="true"&gt;&lt;/i&gt; GitHub
 &lt;/a&gt;
 &amp;nbsp;•&amp;nbsp;
 &lt;a href="https://pypi.org/project/tuxtoaster" target="_blank" rel="noopener"&gt;
 &lt;i class="fab fa-linux" aria-hidden="true"&gt;&lt;/i&gt; Linux Kernel Module
 &lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;&lt;i class="fas fa-clock" aria-hidden="true"&gt;&lt;/i&gt; Simulate and analyze IO performance degradation at multiple kernel layers to understand system bottlenecks.&lt;/p&gt;
&lt;h2 id="why-io-delays-matter-in-system-performance"&gt;Why IO Delays Matter in System Performance&lt;a class="td-heading-self-link" href="#why-io-delays-matter-in-system-performance" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Input/Output operations form the backbone of system performance, yet they represent one of the most complex and often misunderstood aspects of Linux performance engineering. When applications experience slowdowns, the root cause frequently traces back to IO delays introduced at various kernel layers.&lt;/p&gt;</description></item><item><title>How to Analyze Linux sosreport and supportconfig with SOSParser</title><link>https://docs.matildes.dev/linux/admin/sosparser-analysis-tool/</link><pubDate>Tue, 06 Jan 2026 00:00:00 +0000</pubDate><guid>https://docs.matildes.dev/linux/admin/sosparser-analysis-tool/</guid><description>&lt;p&gt;
 &lt;a href="https://github.com/samatild/SOSParser" target="_blank" rel="noopener"&gt;
 &lt;i class="fab fa-github" aria-hidden="true"&gt;&lt;/i&gt; GitHub
 &lt;/a&gt;
 &amp;nbsp;•&amp;nbsp;
 &lt;a href="https://hub.docker.com/r/samuelmatildes/sosparser" target="_blank" rel="noopener"&gt;
 &lt;i class="fab fa-docker" aria-hidden="true"&gt;&lt;/i&gt; Docker Hub
 &lt;/a&gt;
 &amp;nbsp;•&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;&lt;i class="fas fa-search" aria-hidden="true"&gt;&lt;/i&gt; Parse, analyze, and understand Linux diagnostic reports with automated intelligence.&lt;/p&gt;
&lt;h2 id="what-is-sosparser"&gt;What is SOSParser?&lt;a class="td-heading-self-link" href="#what-is-sosparser" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.com/samatild/SOSParser"&gt;&lt;code&gt;SOSParser&lt;/code&gt;&lt;/a&gt; is a powerful web application designed to automatically parse and analyze Linux &lt;code&gt;sosreport&lt;/code&gt; and &lt;code&gt;supportconfig&lt;/code&gt; diagnostic files, converting them into comprehensive, interactive HTML reports. Created to streamline the often tedious process of manually reviewing system diagnostic data, SOSParser transforms raw diagnostic archives into structured, searchable insights that accelerate troubleshooting and system analysis.&lt;/p&gt;</description></item><item><title>How to Benchmark Linux with Tux Toaster</title><link>https://docs.matildes.dev/linux/admin/benchmarking-with-tuxtoaster/</link><pubDate>Fri, 17 Oct 2025 00:00:00 +0000</pubDate><guid>https://docs.matildes.dev/linux/admin/benchmarking-with-tuxtoaster/</guid><description>&lt;p&gt;
 &lt;a href="https://github.com/samatild/tuxtoaster" target="_blank" rel="noopener"&gt;
 &lt;i class="fab fa-github" aria-hidden="true"&gt;&lt;/i&gt; GitHub
 &lt;/a&gt;
 &amp;nbsp;•&amp;nbsp;
 &lt;a href="https://pypi.org/project/tuxtoaster" target="_blank" rel="noopener"&gt;
 &lt;i class="fab fa-python" aria-hidden="true"&gt;&lt;/i&gt; PyPI
 &lt;/a&gt;
 &amp;nbsp;
&lt;/p&gt;
&lt;p&gt;&lt;i class="fas fa-tachometer-alt" aria-hidden="true"&gt;&lt;/i&gt; Benchmark smarter, not harder — with Tux Toaster.&lt;/p&gt;
&lt;h2 id="what-is-tux-toaster"&gt;What is Tux Toaster?&lt;a class="td-heading-self-link" href="#what-is-tux-toaster" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.com/samatild/tuxtoaster"&gt;&lt;code&gt;Tux Toaster&lt;/code&gt;&lt;/a&gt; is an all-in-one performance toolkit for Linux. It triggers various load tests (&amp;ldquo;toasters&amp;rdquo;) to help you evaluate the performance and stability of your system across CPU, memory, disk, and network. It offers an interactive terminal menu with multi-select support and clear, stoppable workloads.&lt;/p&gt;</description></item><item><title>Why Kernel Crash Dumps Are Critical for Root Cause Analysis</title><link>https://docs.matildes.dev/linux/kernel/why-kernel-crash-dumps-matter/</link><pubDate>Tue, 14 Oct 2025 00:00:00 +0000</pubDate><guid>https://docs.matildes.dev/linux/kernel/why-kernel-crash-dumps-matter/</guid><description>&lt;p&gt;&lt;i class="fas fa-microscope" aria-hidden="true"&gt;&lt;/i&gt; Postmortem Kernel Forensics with vmcore&lt;/p&gt;
&lt;h2 id="summary"&gt;Summary&lt;a class="td-heading-self-link" href="#summary" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;When the Linux kernel panics, there is no userspace stack, no application logs, and often no intact filesystems. The only canonical, lossless record of the kernel’s terminal state is the crash dump (vmcore). Without vmcore, you are constrained to heuristics and guesswork; with vmcore, you can deterministically reconstruct CPU state, task scheduling, memory allocators, locks, timers, and subsystems at the exact point of failure. This is the difference between timeline narratives and hard proof.&lt;/p&gt;</description></item><item><title>Enabling Automatic Kernel Crash Collection with kdump</title><link>https://docs.matildes.dev/linux/kernel/enabling-kdump-crash-collection/</link><pubDate>Mon, 13 Oct 2025 00:00:00 +0000</pubDate><guid>https://docs.matildes.dev/linux/kernel/enabling-kdump-crash-collection/</guid><description>&lt;p&gt;&lt;i class="fas fa-microchip" aria-hidden="true"&gt;&lt;/i&gt; Automatic Enablement of Kernel Crash Dump Collection with kdump-enabler&lt;/p&gt;
&lt;p&gt;This article explains how to automatically enable and configure kernel crash dump (kdump) collection on Linux systems using the &lt;code&gt;kdump-enabler&lt;/code&gt; script. This approach works across multiple distributions and simplifies the process of preparing your system to collect crash dumps for troubleshooting and analysis.&lt;/p&gt;
&lt;h2 id="overview"&gt;Overview&lt;a class="td-heading-self-link" href="#overview" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;kdump-enabler&lt;/code&gt; is a Bash script that automates the setup of kdump:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Installs required packages&lt;/li&gt;
&lt;li&gt;Configures the crashkernel parameter in GRUB&lt;/li&gt;
&lt;li&gt;Enables and starts the kdump service&lt;/li&gt;
&lt;li&gt;Sets up SysRq for manual crash triggering&lt;/li&gt;
&lt;li&gt;Creates backups of configuration files before changes&lt;/li&gt;
&lt;li&gt;Supports Ubuntu, Debian, RHEL, CentOS, Fedora, openSUSE, Arch Linux, and more&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="prerequisites"&gt;Prerequisites&lt;a class="td-heading-self-link" href="#prerequisites" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Root privileges (run with &lt;code&gt;sudo&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;systemd-based Linux distribution&lt;/li&gt;
&lt;li&gt;GRUB bootloader&lt;/li&gt;
&lt;li&gt;Sufficient disk space in &lt;code&gt;/var/crash&lt;/code&gt; for crash dumps&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="installation"&gt;Installation&lt;a class="td-heading-self-link" href="#installation" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Clone the repository and run the script:&lt;/p&gt;</description></item><item><title>Kernel Mode vs User Mode: Privilege Levels and System Call Execution</title><link>https://docs.matildes.dev/linux/kernel/kernel-mode-vs-user-mode/</link><pubDate>Tue, 14 Jan 2025 00:00:00 +0000</pubDate><guid>https://docs.matildes.dev/linux/kernel/kernel-mode-vs-user-mode/</guid><description>&lt;p&gt;&lt;i class="fas fa-shield-alt" aria-hidden="true"&gt;&lt;/i&gt; CPU Privilege Levels and Execution Contexts&lt;/p&gt;
&lt;h2 id="summary"&gt;Summary&lt;a class="td-heading-self-link" href="#summary" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Modern processors implement hardware-enforced privilege levels to isolate untrusted user code from critical kernel services. Linux uses two primary modes: &lt;strong&gt;kernel mode&lt;/strong&gt; (ring 0, CPL 0, EL1) and &lt;strong&gt;user mode&lt;/strong&gt; (ring 3, CPL 3, EL0). Kernel mode grants unrestricted access to CPU features, physical memory, I/O ports, and privileged instructions. User mode restricts access to a virtualized, isolated address space and requires kernel mediation for hardware resources. The transition between modes occurs via system calls, interrupts, and exceptions, all managed by the kernel&amp;rsquo;s interrupt and system call handlers. Understanding this separation is fundamental to security, performance optimization, and kernel debugging.&lt;/p&gt;</description></item><item><title>Understanding CPU Statistics in Linux (/proc/stat)</title><link>https://docs.matildes.dev/linux/kernel/cpu-statistics/</link><pubDate>Tue, 14 Jan 2025 00:00:00 +0000</pubDate><guid>https://docs.matildes.dev/linux/kernel/cpu-statistics/</guid><description>&lt;p&gt;&lt;i class="fas fa-microchip" aria-hidden="true"&gt;&lt;/i&gt; Kernel-Level CPU Time Accounting&lt;/p&gt;
&lt;h2 id="summary"&gt;Summary&lt;a class="td-heading-self-link" href="#summary" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The Linux kernel maintains precise, per-CPU time accounting across ten distinct execution contexts. These statistics, exposed via &lt;code&gt;/proc/stat&lt;/code&gt;, represent cumulative jiffy counters (typically 1/100th or 1/1000th of a second) since system boot. Understanding these counters is essential for performance analysis, capacity planning, and diagnosing CPU contention, I/O bottlenecks, interrupt storms, and virtualization overhead.&lt;/p&gt;
&lt;h2 id="the-procstat-interface"&gt;The /proc/stat Interface&lt;a class="td-heading-self-link" href="#the-procstat-interface" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;/proc/stat&lt;/code&gt; is a virtual file provided by the kernel&amp;rsquo;s proc filesystem. It contains system-wide statistics aggregated across all CPUs and individual per-CPU lines. The format is non-blocking and updated atomically by the kernel scheduler&amp;rsquo;s tick handler.&lt;/p&gt;</description></item></channel></rss>