Tech 35 min read

Mageia 9 on a junk Dell Latitude 5310: BIOSConnect trap, RAID→AHCI, keyfile fix

IkesanContents

I installed Mageia Linux on a junk Dell Latitude 5310 I picked up at an Akihabara shop. Mageia is a community-run distro from the Mandriva lineage, and I wanted to see how it actually behaves on real hardware as a non-Ubuntu, non-Fedora choice.

This post is a step-by-step log from gear inventory through USB writing, live boot, the SATA AHCI switch, the install proper, first boot, and the Wi-Fi auto-connect trouble at the end.

The gear

Dell Latitude 5310 (the laptop)

The unit was sitting in a back-corner box at a junk shop in Akihabara. Because it looked badly worn, I got it for less than the tagged price, in the 10,000-yen range (roughly USD $70).

Top of the Dell Latitude 5310

The lid is cloudy with handprints and rubbing marks around the DELL logo. Wiping doesn’t take the stains off. There are minor dents at the corners, but no warping, and the hinge opens and closes without play.

Keyboard and trackpad

JIS-layout keyboard inside. Keycap prints are still legible. The trackpad is the old-school style with separate physical click buttons. Classic plain-and-sturdy Latitude look.

Underside

“Latitude 5310” is clearly stamped on the bottom. The service tag is still readable. Big vent slits, the typical 13-inch business laptop layout.

What I confirmed at the shop:

  • Boots to BIOS, memory and SSD are recognized
  • No screen cracks (the smudges are baked in)
  • Some dents, but usable

Counting as functional in that state, taking it home.

Power adapter

Dell 65W AC adapter and power cable

The junk listing came with a genuine Dell 65W adapter. Having or not having this completely changes the deal, so this matters. Output is USB-C (PD). It occupies the Type-C port, so any data USB has to be Type-A on a separate port (more on this below).

Dell Wired Mouse MS116 (newly bought)

The trackpad alone wasn’t going to cut it for sustained work, so I picked up a wired mouse separately. Bluetooth mice break pairing and lag, so I went wired from the start. I also needed a wired mouse and keyboard for an unrelated thing, so I made the trip out anyway.

Dell Wired Mouse MS116 packaging

No brand preference, but the Dell MS116 happened to be the cheapest one. USB-A, three buttons plus wheel.

Side label on the box

The label reads Mfg Date Oct. 2025, fairly recent lot.

Back of the box with regulatory info

Unboxing

The mouse itself

Inside is just the mouse and a single warranty card underneath. Plug it in, it works.

SanDisk Ultra Dual Drive m3.0 32GB (USB writing target)

Once I checked the ports, the Latitude 5310 has the Type-C port occupied while PD charging, so a USB-C stick has nowhere to go. So I went to the store for a plain USB-A stick and grabbed the cheapest one. Only noticed after buying that one end is microUSB-B — it’s a “Dual Drive” model meant for shuttling files with Android phones.

SanDisk Ultra Dual Drive m3.0 32GB package

The writing stick is a SanDisk Dual Drive 32GB. USB-A and microUSB heads on each side.

The stick itself

A sliding cap switches between USB-A and microUSB-OTG. The microUSB side stays unused — I just plug the USB-A end into the PC and write the Mageia ISO with it.

Spec table

ItemValue
ModelDell Latitude 5310
CPUIntel Core i5-10310U (Comet Lake, 4C/8T, 1.7-4.4GHz)
Memory~16GB
StorageInternal SSD present (model to be confirmed during install)
Display13.3 inch
Wi-FiQualcomm Atheros QCA6174 802.11ac (Wi-Fi 5, WPA2 only)
EthernetIntel I219-LM
BluetoothQualcomm Atheros
How I got itAkihabara junk shop, 10,000-yen range
IncludedGenuine Dell 65W AC adapter
Bought separatelyDell MS116 mouse, SanDisk Ultra Dual Drive 32GB

What Mageia Linux is

Mageia official site top page

Mageia is a community-run distribution forked from France’s Mandriva Linux. In 2010, when the future of commercial Mandriva became uncertain, former developers and volunteers set up the non-profit “Mageia.Org” and took it over.

Main characteristics.

ItemDetail
Mandriva lineageRPM-based, distinct package manager urpmi, and the Mageia Control Center (formerly drakconf) unified management GUI is still around
Community-runNo commercial sponsor dependency. Release cycle is leisurely
Desktop choicePlasma, GNOME, Xfce and more; Live ISOs are split by desktop
Current is Mageia 9Released August 2023. Long-term support isn’t formally stated, but maintenance updates for the 9.x line are still flowing

It exists as the choice when you want an RPM distro that isn’t Ubuntu or Fedora.

Why add another Linux box

There are several reasons.

The first is to clean up my local dev environment. I want the container parts I split off in development to run on a pure Linux host, not Docker Desktop on Mac/Windows. To kill the behavior and performance discrepancies, having the host itself be Linux is better.

The second is to pull back the test environment I run on a VPS. I’ve been keeping a VPS rented just for verification, and I want to move that to a local machine to trim monthly costs. For workloads that don’t need to be always-on, a secondhand local laptop is enough.

The third is to be able to reproduce Linux-side security incidents at hand. Since the start of 2026, there’s been a chain of Linux kernel bugs that rewrite page cache to gain root. Copy Fail (CVE-2026-31431)Dirty FragFragnesia (CVE-2026-46300) — variants that bypass the interim mitigations keep landing, and the impact on container and CI runner side is significant. On top of that, Claude Code uncovered a 23-year-old NFS heap overflow, showing that AI-driven excavation of old kernel code is also ongoing. I want a dedicated Linux box to try things that I can’t really chase on Mac/WSL without worry.

The last is wanting to see whether Windows games actually run on Linux. I previously wrote about NTSYNC speeding up Linux gaming by handling Windows-style waits in the kernel, but I never actually tried it on real hardware. I want to lightly verify how cleanly my Windows games run with Linux 6.14 + Wine 11.0 + Proton 11 beta.

In short, I want not a “daily driver” but a “verification host I can break”. For that, a slightly junk laptop that boots fine and has reliable power is plenty.

Why I picked Mageia

It’s been a while since I installed Linux directly on local hardware (a clean install, not a Docker container), so I had to think about which distro to use from scratch.

CentOS has been effectively dead for years, and there’s no real reason to install RHEL for verification. Ubuntu is the obvious safe pick, or I could build something clean on Debian — that’s the reasonable starting point. But I couldn’t decide there, so I took the opportunity to look at the current distro landscape, and Mageia caught my eye.

I also considered ZorinOS, which looks more desktop-leaning, but for this use case it felt like either would work. What finally pushed me toward Mageia was the light-hearted thought “Mageia, kind of like Madoka Magica I guess”, with no real reason behind it. If it doesn’t work out, I’ll just switch to Ubuntu.

Downloading the ISO and burning it to USB

Getting the ISO

Download the ISO from the official Mageia downloads page.

Mageia 9 download page. Three buttons: classical, live, network

There are three flavors:

  • Classical install (DVD): Full text/graphical installer. The traditional Mageia approach. You partition first, then install
  • Live media: Boots first so you can confirm hardware behavior, then launches the installer from within. Split by desktop environment (GNOME / Plasma / Xfce)
  • Network install: Boots from a minimal ISO and pulls the rest over the network. Bad fit for a junk laptop because if the Wi-Fi driver isn’t included by default, you’re stuck

I went with live media here. The big upside is that if something doesn’t work (Wi-Fi, trackpad, display), I can back out before touching partitions.

Desktop environment: Xfce

When you pick Live media, the same page expands with Desktop / Architecture / Download method options stacked vertically.

Live media plus desktop, architecture, and download method selection

I excluded GNOME from the start since its extension-heavy customization and resource usage are both heavy. That leaves Plasma and Xfce.

I picked Xfce because the use case is “verification host plus VPS pull-back plus container execution” — mostly console work. The desktop just needs to be there to confirm things. Plasma is flashy and is the Mandriva-tradition headliner, but that comes with more resources and more processes. I don’t want my view of what’s running underneath to get cluttered during verification. Since the laptop is junk with an unknown state, picking the lighter option also lowers the risk that something just doesn’t run.

Plasma is the proper way to enjoy the Mageia experience, but this time I’m going with practicality. Architecture is 64-bit. BitTorrent is faster if seeders are around, but plain direct link works fine.

ISO download page

Click “Direct link” and you get the mirror direct link plus the SHA512 checksum verification steps.

Download page for Mageia 9 Live Xfce 64-bit. ISO link and SHA512 verification commands

Do the hash check. On Linux/macOS, sha512sum -c Mageia-9-LiveDVD-Xfce-x86_64.iso.sha512. On Windows, run PowerShell Get-FileHash -Algorithm SHA512 and compare with the contents of the .sha512 file. It catches mirror-side corruption or substitution, so it’s worth the extra step.

Writing to USB

I’m writing from Windows with Rufus. balenaEtcher or dd would also work.

When you open the ISO in Rufus, this is what you get.

Rufus 4.14 with the Mageia ISO loaded. MBR/BIOS-CSM/FAT32 fields are all greyed out

Partition scheme, target system, file system, and cluster size are all greyed out and untouchable. This is because Rufus decided “this ISO is not ISOHybrid; it’s a pure DD image”. Mageia’s Live ISO is written raw, so Rufus’s detailed settings are ignored and it goes into fixed DD mode. In practice you only do three things: pick device → pick ISO → click Start.

Click Start and you get a warning that all existing data on the USB will be wiped — agree and proceed.

Rufus mid-write, 90.6% progress at 2 minutes elapsed

Leave it alone and the write finishes. For this Live Xfce ISO it was past 90% at around the 2-minute mark. With an ISO this size, Mageia’s Live ISO finishes in under 10 minutes.

Write complete. Status bar back to "ready", device name is now MGAISO-ESP, volume label changed to Mageia-9-Live-Xfce-x86_64

When it’s done, the status bar returns to “ready” and the device name changes from NO_LABEL (D:) to MGAISO-ESP (Disk 1), with the volume label also changed to Mageia-9-Live-Xfce-x86_64. That means the USB is set up as a Mageia boot medium.

After writing, Windows may pop up a “USB needs to be formatted” dialog — it didn’t this time, but if it does, Windows simply can’t read the Linux partition. Nothing is broken, so always hit Cancel. Format it and the ISO you just wrote is gone.

Preparing the laptop side

Plug the freshly written USB into the Latitude 5310, connect the power adapter and mouse, and power it on. While the Dell logo is showing, mash F2 to enter BIOS, or F12 to get the one-time boot menu.

BIOS layout

Dell Latitude 5310 BIOS menu tree showing General / System Configuration / Video / Security / Secure Boot / Performance and more

The familiar Latitude tree-structured BIOS. Boot Sequence lives under General, and Secure Boot is a separate top-level item nearby.

Boot Sequence

Boot Sequence screen with only Windows Boot Manager and Onboard NIC (IPv4/IPv6)

The first time I looked, I didn’t notice that the USB wasn’t in the list, mashed F12 and panicked when nothing showed up. The cause was simple — I hadn’t plugged the USB in yet.

After plugging it in and re-entering BIOS, two new entries appeared in Boot Sequence.

Boot Sequence reopened after plugging in the USB. UEFI: SanDisk and UEFI: SanDisk, Partition 2 are added

  • UEFI: SanDisk — entry that scans the whole USB disk
  • UEFI: SanDisk, Partition 2 — entry that points directly at the EFI system partition inside the Mageia ISO

By UEFI convention, putting Partition 2 (the EFI system partition) first is the normal choice. That said, most firmware will scan the EFI region behind either entry, so picking whichever boots is fine to start.

Move USB to the top of the right-side list and Apply.

Boot order reshuffled to put UEFI: SanDisk at the top

Exit and the system will boot from USB automatically on next start. If you don’t want to boot from USB every time, leave the order alone and pick USB from the F12 one-time menu instead.

Secure Boot

Mageia uses shim and is signed under Microsoft’s UEFI signing, so Secure Boot can stay ON. I’m leaving it untouched here.

Secure Boot Enable is checked (Secure Boot active)

Secure Boot Mode is Deployed Mode (full protection)

If the USB doesn’t boot or a signature error appears mid-boot, come back here and uncheck Secure Boot Enable to try again.

Expert Key Management. Enable Custom Mode stays off, don't touch

Expert Key Management is for replacing PK/KEK/db/dbx yourself. No need to touch it here.

Boot and install

First attempt: USB boot fails and Dell’s recovery flow takes over

I picked UEFI: SanDisk, Partition 2 from the F12 boot devices list and hit Enter. No error appeared right after — instead the Dell SupportAssist logo came up.

SupportAssist On-board Diagnostics: hardware scan complete, "machine will restart and download cSOS for recovery"

The scan result was Success, but then it said “machine will restart and download cSOS for recovery” and automatically transitioned into a recovery flow.

BIOSConnect Wi-Fi selection screen, trying to download an OS recovery image from Dell's servers

It wants to connect to Wi-Fi and download the “SupportAssist OS Recovery Image” from Dell’s servers.

This is Dell BIOS’s BIOSConnect / SupportAssist OS Recovery feature, which kicks in automatically when it judges that the selected boot device couldn’t boot an OS, and walks you into “Your OS is broken, let’s recover it over the network”. At a glance it looks like “the USB booted successfully and then ran some diagnostics”, but the reality is the USB boot failed and the system silently fell into a different recovery feature. It progresses on its own, so it’s easy to mistake for a selection error.

Worth logging on the failure side because anyone with the same model can hit this.

To get out, Ctrl+Alt+Del for a restart is the easiest. The Cancel button or a long power press also work, but there’s no need to power-cycle.

Disable Secure Boot, retry, and it just boots

The actual cause of the silent USB boot failure was Secure Boot rejecting Mageia’s shim. Mageia 9 is supposed to be Secure Boot compatible, but depending on the Dell key DB and the shim’s signature verification path, it can still get rejected.

Fix:

  1. F2 → Secure Boot → uncheck Secure Boot Enable
  2. Apply → Exit

That’s it. No need to re-pick anything with F12 — the UEFI: SanDisk, Partition 2 I’d already put at the top of Boot Sequence worked normally, and Mageia booted straight away after the restart.

Walking through Mageia’s initial setup

Once boot succeeds, the Live environment setup wizard pops up in sequence.

EULA. Pick "Accept" and OK

Accepting the license agreement. The Japanese translation shown is just for reference; the legally valid version is the English original. Accept and OK.

Timezone selection with Tokyo highlighted

Timezone is Tokyo.

Date/time. Local time or UTC

Choose how the hardware clock should be handled. For Linux-only setups, UTC is the proper choice (matches Linux kernel default behavior). If you plan to dual-boot with Windows, local time keeps Windows from going haywire over time mismatches. This time, to avoid clock accidents with Windows, I went with local time. If I commit to Mageia-only, I’ll switch to UTC later.

Keyboard layout. Japanese 106 keyboard highlighted

Keyboard is Japanese 106. Matches the hardware so just pick that.

Mageia Welcome screen. Welcome dialog with tabs over an Xfce desktop, "Wi-Fi network available" notification at bottom right

Made it to the Xfce desktop. The “Welcome to Mageia” dialog shows up with tabs (Welcome / Live Mode / MCC / Software install / Install / About). The “Wi-Fi network available” notification at the bottom right confirms Wi-Fi is alive too.

At this point:

  • Display works
  • Wi-Fi detected (but connecting to a WPA3 SSID errors out; WPA2 works)
  • Trackpad and mouse both responsive
  • Keyboard layout correct

The minimum hardware the laptop needed is all working.

I first suspected the WPA3 error came from the older wpa_supplicant baked into the Live ISO, but the fact that the Dell BIOSConnect (pre-boot environment) earlier also couldn’t connect to the WPA3 SSID points to a hardware/firmware-side WPA3 SAE limitation, not a Linux-side issue.

The Latitude 5310 shipped with either Wi-Fi 6 AX201 (WPA3-capable) or an older Wi-Fi 5 card (WPA2 only), depending on configuration. This unit has the Qualcomm Atheros QCA6174 (802.11ac, WPA2-era), which I confirmed in the Live environment with inxi -F (see below). Workaround: switch the home router to WPA2/WPA3 mixed mode, or have a separate SSID running WPA2 only and use that. Swapping the internal Wi-Fi card on a Latitude 5310 isn’t straightforward around the M.2 slot, so if you absolutely need WPA3, adding a USB Wi-Fi dongle is the realistic option.

Pulling hardware details in Live mode

I closed the Welcome dialog, opened the Xfce terminal, and ran inxi -F and lscpu to confirm the implementation.

inxi -F output showing Audio (PipeWire/PulseAudio), Network, Hardware, Local Storage, Sensors, and more

From inxi -F:

  • Audio: PipeWire 0.3.71, PulseAudio 16.1 active
  • Ethernet: Intel Ethernet I219-LM (Gigabit)
  • Wi-Fi: Qualcomm Atheros QCA6174 802.11ac (driver: ath10k_pci) — pre-WPA3 generation
  • Bluetooth: Qualcomm Atheros (USB-connected, driver: btusb)
  • CPU temp: 54.0°C / PCH 51.0°C (just after Live boot, light load)
  • Memory: 15.32 GiB (16GB installed)

lscpu output with Intel Core i5-10310U details

From lscpu:

  • CPU: Intel Core i5-10310U (Comet Lake)
    • 4 cores / 8 threads
    • 1.7GHz base / 4.4GHz turbo
    • L1d 128KiB / L1i 128KiB / L2 4MiB / L3 6MiB
  • Virtualization: VT-x enabled
  • Various CPU vulnerability mitigations applied (Mitigation indicators)

10th-gen vPro i5, 4C8T, 16GB RAM. Even as junk, plenty of headroom for a verification host.

IME deferred

I tried to type Japanese in the terminal and immediately noticed that the Live environment doesn’t have a Japanese IME. What I set earlier was just the keyboard layout (the physical key mapping); the IME (ibus-mozc / fcitx5-mozc and similar Japanese input engines) is a separate thing. That’s why pressing the 半角/全角 key does nothing. I’ll just use English input during Live and install urpmi ibus-mozc or urpmi fcitx5-mozc after the install.

Wipe Windows, all Mageia

This junk box is for verification, with no need to keep the existing Windows, so I’m going all-Mageia. Dual-boot just multiplies accidents, and if I ever need Windows again I can run it in a VM.

How to launch the installer

The Welcome dialog’s “Install” tab wasn’t obvious, so I typed install in the Whisker Menu search box to find it.

Whisker Menu search for "install" with "Install on Hard Disk" highlighted

Clicking “Install on Hard Disk” launches the installer.

Mageia Live install wizard opening screen: "This wizard helps you install a live distribution"

First attempt: installer stops on an error

Right after clicking Next, it stops on a Perl-origin error.

"An error occurred" Can't call method "first_usable_sector" on unblessed reference.

Can't call method "first_usable_sector" on unblessed reference.

This is what the Mageia installer (Perl-based) prints when it fails to get partition info from a disk. “unblessed reference” is a Perl-specific message meaning “I expected an object but got something undefined”.

So the installer can’t find a destination disk.

Investigation: the internal SSD isn’t visible

Open a terminal and check actual state with lsblk — turns out the internal SSD isn’t recognized at all.

lsblk output. Only sda (USB) shows up, no internal SSD. sudo says "command not found"

NAME    MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0     7:0    0   3.3G  1 loop /run/mgalive/ovlsize
sda       8:0    1  28.7G  0 disk
├─sda1    8:1    1   3.4G  0 part
└─sda2    8:2    1     4M  0 part

Only the USB (sda) shows up. The internal SSD should appear as nvme0n1 or sdb, but it’s missing. BIOS recognized it just fine, so the hardware isn’t broken — the Linux side just can’t get to it.

While at it, sudo fdisk -l came back with “sudo: command not found”. Mageia Live ISO doesn’t include sudo by default — for root operations, get a root shell with su - first. The root password in the Live environment is empty (just press Enter).

Cause: SATA was in RAID mode

A classic trap on junk Dell machines: when the BIOS’s SATA Operation is set to Intel RST (RAID) mode, Linux can’t see the internal SSD. Windows reads it through the Intel RST driver, but Linux needs AHCI mode to handle it normally.

In hindsight, the early inxi -F output already mentioned Intel Comet Lake RAID Controller, which was the foreshadowing.

BIOS: switch SATA Operation to AHCI

F2 to enter BIOS → System Configuration → SATA Operation → change to AHCI.

BIOS SATA Operation screen with AHCI radio button selected

"SATA Operation is being changed! Attention! Changing this setting may prevent your operating system from booting..." warning dialog with Yes/No

A warning shows up; confirm Yes → Exit. On a Windows install, this change makes it unbootable, but since I’m wiping Windows anyway, doesn’t matter.

Second attempt: disk selection

Restart Live → run “Install on Hard Disk” again. This time no first_usable_sector error, the wizard proceeds.

Disk selection screen. NVMe block device (238GB) visible. "Erase and use entire disk" selected

The 238GB internal NVMe finally shows up. Pick “Erase and use entire disk” and proceed.

"All partitions and data on drive nvme0n1 (238GB, NVMe block device) will be lost" confirmation

Confirm that I’m okay wiping Windows. Next. At this point the first format runs, Windows partitions are erased, and Mageia’s auto-partitioning (nvme0n1p2 50GB / + nvme0n1p4 183GB /home) gets written to disk.

Removing unused packages

"The following packages were found to be unnecessary for your system" — both "unused hardware support" and "unused language support" checked

It asks whether to remove unused hardware and language support. On a verification host, leftover drivers and language packs just get in the way, so I checked both and removed them. Next.

The install itself

"Please wait while Mageia is being installed on your system" with progress bar

File copy runs. The mageia.org/contribute invitation shows up on the side.

Bootloader configuration

Bootloader basic settings. Bootloader: GRUB2 (graphical), boot device: EFI system partition, default boot timeout: 10s, security password empty

Default config: GRUB2 (graphical) written to the EFI system partition. 10-second timeout, no bootloader password. Verification box, so leave as is.

Bootloader advanced. Default Mageia, extra args splash quiet noiswmd resume=UUID=da0ae0bf-574a-49a7-b4ba-9a558aa87bad audit=0, "Check for other OSes" ON, "Install in /EFI/BOOT" OFF

Advanced side. Kernel boot options include splash quiet noiswmd resume=UUID=.... audit=0 suppresses auditd logs. “Check for other OSes” is ON (Windows is gone, so it won’t find anything). “Install in /EFI/BOOT” forces the standard path, used as a workaround for some legacy BIOS issues — leave it OFF.

Online media setup: "You can configure online media here. This enables installing security updates." Yes/No

Enable online update media with “Yes”.

Installing the bootloader

GRUB2 being written.

Network setup — where I accidentally closed the wizard

"Choose the connection you want to configure": Wired (Ethernet) / Satellite / Cable modem / DSL / ISDN / Wireless (Wi-Fi) / GPRS/Edge/3G / Bluetooth / Analog telephone modem. Wired highlighted

From here on, Japanese localization stops kicking in and you get unexpected English-only screens (a Mageia quirk). Connection type: pick Wireless and Next.

"Wireless - Select the network interface to configure": wlp1s0 Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter / Use a Windows driver (with ndiswrapper)

Wi-Fi interface selection. Pick wlp1s0 for the Qualcomm Atheros QCA6174 (not the ndiswrapper option).

"Wireless - Please select your network": list of home and nearby SSIDs

Pick my home WPA2 SSID.

"Wireless - Please select your connection protocol. If you do not know it, keep the preselected protocol.": Automatic IP (BOOTP/DHCP) / Manual configuration. Automatic IP selected

Connection protocol is Automatic IP (DHCP).

"Wireless IP settings": Get DNS servers from DHCP checked / DNS server 1 empty / DNS server 2 empty / Host name: localhost.localdomain

IP settings. As-is: leave DNS to DHCP, the default state.

I wanted to fix the DNS to Cloudflare here, so I unchecked the DHCP option and switched to manual entry.

DNS server 1: 1.1.1.1 / DNS server 2: 1.0.0.1 (both Cloudflare)

I first put both Cloudflare (1.1.1.1 + 1.0.0.1). But Cloudflare’s DNS, while fast, had multiple short name-resolution outages from late 2025 into early 2026. Concentrating on a single provider means immediate dead-end when it falls over, so I want to include a second provider’s system.

DNS server 1: 1.1.1.1 (Cloudflare) / DNS server 2: 8.8.8.8 (Google) updated

Changed the secondary to 8.8.8.8 (Google). With this, even if CF is down, name resolution itself keeps going.

This is where the wizard-closes accident happened: I clicked “Advanced” to open the advanced panel, then clicked “Close” — and the entire wizard closed. The “Close” I clicked looked, from its position and wording, like the button that collapses just the advanced panel, but it was actually the button that exits the entire wizard. The Mageia wizard’s “Close” / “Quit” / “Cancel” / “Done” labels are hard to map to scope from position and text alone — does pressing it just fold up an advanced section, exit the current step, or kill the whole wizard? The wizard fully exits here, which means starting over.

I didn’t even need to open the advanced panel for DNS settings (entering the primary/secondary DNS directly is enough), so this is a mistake most people wouldn’t make. But the advanced panel is permanently visible at the bottom of the screen, which tempts you to click it, and then the behavior of the “Close” button is easy to misread — it’s that kind of trap.

Wizard restart → second format confirmation

The restarted wizard skipped the initial “Erase and use entire disk” step (the disk was already partitioned in Linux layout) and instead presented a format instruction for the existing Linux partitions (p2/p4).

"Select partitions to format": nvme0n1p2 (50GB, /, ext4) and nvme0n1p4 (183GB, /home, ext4), both checked

The first format already wiped Windows, so this is a second format on the Linux partitions. Leave both checked and Next.

"Select mount points": nvme0n1p2 → / / nvme0n1p4 → /home

Mount point assignments are the proposed / and /home.

Wireless connection control and connection test

"Wireless - Connection control": Allow users to manage the connection OFF / Start the connection at boot ON / Enable traffic accounting OFF / Allow interface to be controlled by Network Manager: No / Allow access point roaming OFF

Connection control. Only Start the connection at boot is ON, the rest defaults. Note that “Allow interface to be controlled by Network Manager: No” — this is what later prevents the regular user from changing Wi-Fi settings (the connection itself still comes up automatically).

"Do you want to start the connection now?" Yes/No

Start the connection now? Yes.

"Testing the connection..."

"Congratulations, the network and Internet configuration are finished. After this is done, we recommend that you restart your X environment to avoid any hostname-related problems."

Network done.

Pulling in online updates

"Mirror selection: Auto / Downloader: Default"

Update media mirror setup. Auto + default downloader.

"`20260426-041416-synthesis.hdlist.cz' starting download..." (host localhost.localdomain)

It’s fetching synthesis.hdlist.cz, the package index format urpmi uses. The Mandriva-lineage urpmi format.

"You can download updated packages. These packages were updated after the distribution was released. They include security and bugfix updates." Yes/No, Yes selected

Asked whether to apply updates. “Yes”.

"The following packages will be installed to satisfy dependencies": glibc-2.36-59 / lib64rpm9-4.18.2-1 / meta-task-9-4 / perl-5.36.0-1.2 / perl-base / perl-doc / python3-rpm / rpm-4.18.2 / rpm-plugin-ima / rpm-plugin-syslog / rpm-plugin-systemd-inhibit ... 11 packages, 23MB

11 packages totaling 23MB, including glibc, lib64rpm9, perl-5.36, python3-rpm, and rpm-4.18.2. The size you’d expect from glibc and the rpm suite getting swapped out. OK to proceed.

Reboot request comes in two stages

"Please reboot the computer for glibc" (first one, glibc alone)

The first dialog says reboot is needed for the swapped glibc. I clicked OK → Done, but it didn’t auto-reboot — additional update jobs kept going.

"Please reboot the computer for glibc, kernel-desktop, systemd" (second one, the list has grown)

As updates progressed, kernel-desktop and systemd also got replaced, and the same dialog returned with a longer list of packages. This time I rebooted manually.

Important point here: pull the USB stick when rebooting. Since I’d put UEFI: SanDisk, Partition 2 at the top of Boot Sequence earlier, rebooting with the USB still inserted boots back into the Live ISO. Physically pulling the USB lets Boot Sequence naturally fall through to the internal SSD, so I don’t need to redo the boot order.

After reboot: drakfirst asks the same things again

First boot from the internal SSD → Mageia splash, then the drakfirst initial setup wizard launches. What’s bewildering here: almost the same questions the Live ISO installer asked appear again. Due to Mageia 9’s design, draklive-install and drakfirst run independently, so this happens. Redundant, but it’s the spec.

drakfirst: network connection type (wired/satellite/cable/DSL/ISDN/wireless)

drakfirst: wireless IP protocol (Automatic IP (BOOTP/DHCP) / manual)

Reconfigure network as wireless.

User creation screen. Administrator (root) password, user password, full name, login name hide3tu

User creation. Set the root password and user hide3tu’s password.

Regular user can’t manage Wi-Fi, and the connection drops on reboot

Reboot brings up the login screen.

Mageia login screen. Password field for user hide3tu

Logged in normally as hide3tu, and the desktop tray network indicator says “unmanaged” — the regular user can’t switch connections or change settings. I first thought “the connection comes up automatically and I just can’t manage it”, but then after a reboot, the connection itself drops and doesn’t reconnect automatically — that came out in subsequent reboots.

Opening drakconnect as root and manually reconnecting every time isn’t a sustainable operation, so I went after the root cause.

Triage: wlp1s0 is unmanaged by NetworkManager

The state is easy to see from the terminal.

$ nmcli device
DEVICE  TYPE      STATE    CONNECTION
eno1    ethernet  unavailable  --
lo      loopback  unmanaged    --
wlp1s0  wifi      unmanaged    --

wlp1s0 is unmanaged, so nmcli can’t scan or connect through it. On the ip link side it shows state UP mode DORMANT — the interface is alive but not associated with an AP.

Running nmcli device set wlp1s0 managed yes returns result="success" in audit logs but the state doesn’t change. grep -rn unmanaged /etc/NetworkManager/ /usr/lib/NetworkManager/ doesn’t show an explicit unmanaged directive anywhere. The ifcfg-wlp1s0 file has NM_CONTROLLED=yes properly set.

So the situation is “configuration says NM should manage it, but the internal state stubbornly stays unmanaged”.

Root cause: the ifcfg-rh plugin can’t parse Mageia-specific ifcfg

After triage, the cause turned out to be NetworkManager’s plugin configuration.

Mageia 9’s default NetworkManager runs with plugins=ifcfg-rh,keyfile. ifcfg-rh is the plugin that reads and writes RHEL-style sysconfig/network-scripts/ifcfg-* files, but Mageia’s ifcfg files contain RHEL-absent custom fields (WIRELESS_ENC_KEY, WIRELESS_WPA_DRIVER=wext, KEY_MGMT=WPA-PSK, WPA_PSK=..., RESOLV_MODS, PEERYP, etc.). The ifcfg-rh plugin can’t parse them properly, and as a result it never reads NM_CONTROLLED=yes and silently pins wlp1s0 to unmanaged. device set managed yes returning success while doing nothing, conf.d/[device-wlp1s0] managed=true not taking effect — all of this is the same effect.

Fix: migrate all profiles to keyfile and drop ifcfg-rh

The fix is “stop using the ifcfg-rh plugin and unify on the keyfile format”. NetworkManager 1.40 added the nmcli connection migrate command, which takes existing ifcfg-based connections and writes them out as keyfile format.

Procedure:

su -

# Convert all existing profiles to keyfile format
nmcli connection migrate

# Edit /etc/NetworkManager/NetworkManager.conf to set:
#   plugins=keyfile     (drop ifcfg-rh)

# Clear runtime cache and restart
rm /run/NetworkManager/devices/3   # wlp1s0 runtime state (empty file)
systemctl restart NetworkManager

After this, wlp1s0 changes to managed state and the autoconnect setting takes effect, so the connection comes up automatically.

The converted profiles get stored at /etc/NetworkManager/system-connections/<connection-name>.nmconnection in keyfile format (INI-style, permission 600). With ifcfg-rh dropped, NM can no longer see the ifcfg-wlp1s0 side, so keeping it around as a .bak does no harm.

State after it worked

$ nmcli device
DEVICE  TYPE      STATE      CONNECTION
wlp1s0  wifi      connected  aterm-ikeda-a
eno1    ethernet  connected  System eno1
lo      loopback  unmanaged  --

$ nmcli -f all device show wlp1s0
GENERAL.NM-MANAGED:  yes
IP4.ADDRESS[1]:      192.168.11.37/24
IP4.GATEWAY:         192.168.11.1
IP4.DNS[1]:          1.1.1.1
IP4.DNS[2]:          8.8.8.8
  • Automatically reconnects after reboot
  • Wi-Fi connection now appears in the regular user’s desktop too
  • The DNS settings I configured (Cloudflare + Google) are preserved
  • Setting connection.autoconnect-priority=50 makes this connection win in multi-Wi-Fi environments

About the Mageia-specific ifcfg vs ifcfg-rh mismatch

Mageia has historically had a dual structure of drakx-net (its own network management inherited from Mandriva) and NetworkManager, and ifcfg includes its own custom fields. That those don’t mesh with the RHEL-oriented ifcfg-rh plugin was the root cause here. Even if you create a Wi-Fi configuration via drakconnect in Mageia 9 with NM_CONTROLLED=yes, NetworkManager only sees it through ifcfg-rh, so an ifcfg with Mageia-specific fields ends up entirely unsupported.

Two directions for handling this:

  • Migrate to keyfile (the approach taken here): Modern NetworkManager usage, knowledge that carries over to other distros
  • Lean on drakx-net: Traditional systemctl enable network + wpa_supplicant.service setup. This is the Mageia way, but you lose the NM-side GUI

I went with keyfile since carryover Linux knowledge is more useful for a verification host. Keeping wired (eno1) plugged in during the work means you can keep working even when Wi-Fi cuts out. Having a physical cable on hand provides peace of mind.

Making Japanese IME (Mozc) the default

ibus-mozc itself was already installed by default with the Japanese locale on Mageia 9 (urpmi ibus-mozc reports “already installed”). The problem was that the panel indicator showed JA (keyboard layout indicator) right after login, the Mozc engine wasn’t selected, and pressing 半角/全角 didn’t switch to Japanese conversion.

After checking the registered Mozc engine via ibus list-engine and the current active engine via ibus engine, I pinned preload-engines to Mozc:

gsettings set org.freedesktop.ibus.general preload-engines "['mozc-jp']"
gsettings set org.freedesktop.ibus.general engines-order "['mozc-jp']"

This makes the system start in Mozc mode right after login.

Didn’t take effect on the first reboot: After the first reboot, the preload-engines change didn’t apply, and JA still required manual switching. It finally applied on the second reboot. I can only speculate at the cause (leftover ~/.cache/ibus/ cache, race between ibus-daemon startup order and gsettings load), but the practical lesson is try rebooting twice when ibus behavior is flaky after a settings change.

gsettings is per-user, so root’s ibus settings are managed separately. I don’t use GUI Japanese input as root in practice, so I left it for now. If needed, run the same commands inside su - for root.

Installing Chrome: refusing to run as root is the correct behavior

I wanted Chrome as the browser, so I downloaded the official google-chrome-stable_current_x86_64.rpm for Fedora/openSUSE, went root with su -, and installed with urpmi ./google-chrome-stable_current_x86_64.rpm. That part went without issue.

After that, running google-chrome-stable from a root terminal won’t launch. By design, Chrome on Linux refuses to launch as root (its sandbox process model relies on dropping privileges from a parent, but when you start as root, there’s nothing further to drop to). Tacking on --no-sandbox will get it to start, but as the name implies, that runs with the sandbox disabled, which is unsafe — don’t use it.

Logging in as the regular user hide3tu and running the same command opened Chrome normally. This is the correct behavior, and there’s no need to start Chrome as root. Install with root, launch as the regular user — that’s the operational pattern.


In the end, this box is going to be left running and accessed over SSH from another machine for most things. The GUI is just for initial setup and as a fallback during troubleshooting; I’ll touch it remotely from other PCs normally. I also installed Claude Code and Codex, so it doubles as a development box. The original goals for the verification host (containers, pulling back from VPS, reproducing Linux kernel-side security issues, Wine/Proton) now have a foundation to build on.

A couple of things I noticed after buying. The first is that BIOS reports battery health as “Good”. Even left without power for a while, the battery barely drains. For a 10th-gen Latitude in the 10,000-yen range with a live battery, this is a hit as a junk find. The second is that some of the number row keys feel iffy. Pressing on a hard surface improves them, so it seems like a contact issue, but the troubled keys are specific and skewed toward certain positions. I almost want to suspect the previous owner was constantly typing a specific password, which wore those keys down disproportionately.

The exterior is rough, certain keys flake out, but the battery is healthy. The visual-vs-internal mismatch leaves me wondering whether the previous owner actually used it much, but for verification host purposes there’s nothing to complain about. For 10,000-yen range, this much running, no complaints.

Mageia Xfce desktop with the wallpaper changed to Puella Magi Madoka Magica

The current wallpaper.