Skip to content

Conversation

@OsaAjani
Copy link

@OsaAjani OsaAjani commented Dec 5, 2025

📚 Summary

This pull request introduces 14 new missions dedicated to learning filesystems and LVM (Logical Volume Management) concepts.
Each mission focuses on a specific operation or principle, with progressively increasing technical depth.

🗺️ Lore

These missions are framed within a light narrative inspired by Terry Pratchett’s humor and Courteline’s satirical bureaucracy in Messieurs les ronds-de-cuir.
The learner is placed in a world where system administration, and especially volume management, is interpreted as the discovery and management of new lands—every technical task becomes a bureaucratic expedition.

The exaggerated administration oversees every action through forms, seals, and contradictory procedures.
This comedic framing is designed to make the missions memorable while keeping the exercises fully technical and precise.

📘 Story Resume

The overarching story of LVM — L’histoire Véritable (et tamponnée) follows the rise of the Great Secretariat of Territorial Volumes, an absurdly hierarchical institution tasked with discovering, annexing, organizing, resizing, and occasionally repairing newly found “territories” (physical volumes, volume groups, logical volumes, filesystems, etc.).

  • Physical Volumes are unexplored lands suddenly discovered by the Ministry of Cartographic Improvisation.
  • Volume Groups are administrative regions created after interminable committees vote on border definitions, stamps, and sub-stamps.
  • Logical Volumes are districts drawn, redrawn, extended, or reduced based on shifting political priorities and poorly written decrees.
  • Filesystems represent the infrastructure of these territories—roads, towns, archives—whose integrity must occasionally be inspected or repaired following “unfortunate clerical incidents.”
  • Snapshots are official “Historical Instant Decrees” allowing the Secretariat to revert to a prior state after inevitable large-scale mistakes.
  • Data migration is treated as a grand relocation of populations ordered by the central administration.
  • Quotas are systems of obscure fiscal obligations applied to citizens for reasons even the Secretariat can't fully justify.

Throughout the missions, the learner plays the role of a junior clerk or engineer navigating this contradictory administration, applying real technical operations while humorously confronting paperwork, pompous officials, and unclear directives.

The story serves as a thematic background: engaging but lightweight, always secondary to the clarity and accuracy of the technical content.

🎯 Objectives

  • Provide a structured learning path for core LVM concepts: PVs, VGs, LVs, resizing, snapshots, and associated filesystem operations.
  • Offer hands-on exercises guiding learners through practical system administration tasks.
  • Expand the mission catalog with a cohesive set of filesystem-focused challenges.

🛠️ What’s Included

  • 14 new missions, each with:
    • A clear learning goal
    • Commands and expected outcomes
    • An auto.sh script to automatically test the mission

📦 Topics Covered

The missions collectively address the following core concepts:

  • Physical Volumes (PV) — create, display, scan, and remove physical volumes
  • Volume Groups (VG) — create, manage, extend, reduce, export, and import volume groups
  • Logical Volumes (LV) — create, display, scan, remove, and resize logical volumes
  • Filesystems — format volumes with ext4, inspect filesystem properties
  • Mounting — mount/unmount filesystems, configure persistent mounts in /etc/fstab
  • Volume Resizing — extend logical volumes and resize filesystems online
  • Snapshots — create point-in-time copies for backup or rollback
  • Data Migration — move data across physical volumes within a volume group
  • Quotas — enable, configure, and monitor user disk quotas
  • Filesystem Integrity — check and repair filesystems using fsck
  • Snapshot Merging — restore volumes to a previous snapshot state
  • Volume Group Portability — export/import volume groups for system migration

🧪 Testing & Verification

  • Each mission includes an auto.sh testing script to simplify validation.
  • Missions were tested in a classroom setting with ~15 students on Ubuntu, and generally behaved as expected.
  • Improvements were made following classroom feedback to increase consistency and reliability.

⚠️ Notes on Potential Risks

No breaking changes to the project’s core logic.
However, filesystem and LVM operations introduce two practical challenges:

  1. They often require root permissions.
  2. They can be difficult to reproduce safely and consistently.

To mitigate this:

  • A new gsh sudo command is introduced for controlled privilege escalation.
  • Missions prefer loopback-based fake volumes (losetup) to avoid manipulating real disks.
  • Cleanup steps attempt to remove loop devices and temporary artifacts whenever possible.

phyver and others added 30 commits September 24, 2021 13:59
prior to that, one needed to run gameshell with bash, with option -Z.
the line dealing with hidden directories was deleted by accident from
lib/header.sh
procps was missing in the dependency requirement.
The required dependency was psproc (or various other spelling) while the correct spelling is procps.
the day was chosen in the interval 13-18 instead of 13-28
files created by the player were not removed on reset
skipping a mission that has already been completed doesn't require the
password,

going back to a previous mission doesn't require the password.
if one of those is present, skipping is allowed without password

if the file is non empty, it is displayed after the goal with the
command `gsh goal`
to contain the skip files

some minor typos were corrected as well
impératif plutôt que l'infinitif en cohérence avec les autres messages
…rne") in pipe_intro_book_of_potions section.
that could cause problem when using a save file in a different place...
(missions finding_files_maze)

Some students managed to get $PWD to start with 2 '/', which prevented
gameshell from detecting the player was in the maze.
After cleaning (removal of the maze), $PWD was thus a non-existent
directory...
otherwise, the maze directory is not accessible with the graphical file
manager for those who want to use it
phyver and others added 30 commits December 10, 2024 13:22
options -A and -P have been replaced by -M anonymous and -M passport as
well
to avoid confusion (player using charmiglio instead of Charmiglio in the
second mission)
it is not always clear to the player whether their output has blank
lines that should be removed.
it is suprising that
 cd
 cd .....
 gsh goal
 gsh check
doesn't work because of the gsh goal
to run tests in English, French and Italian
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.