CertGrid CertGrid
Concepts·LPIC-2

LPIC-2 exam format and topic weights

LPIC-2 is 201-450 and 202-450, both required, each 60 questions in 90 minutes and scored 200-800 with 500 to pass. 201 is the machine - kernel, storage, capacity, startup. 202 is the services you install and configure. This guide explains why that second half needs a lab rather than a book, and introduces the three machines every later page runs on.

Start Here Guide 1 of 29 Intermediate

Exam structure and topic weights are LPI's published objectives for 201-450 and 202-450, linked below. Nothing here is derived from this site's practice questions - a question bank is edited, and a guide quoting one goes quietly out of date.

Two service hosts and a client. Every service here is proven from a machine that is not running it.
Server NameIP AddressOSRolesCPURAMHDD
LPIC2-A01192.168.0.78Ubuntu 26.04 LTSPrimary service host - BIND, Apache, Samba, Postfix. Topic 204 RAID runs on loop devices; this machine has no spare disk2 Core4 GB50 GB
LPIC2-B01192.168.0.79AlmaLinux 10.2Second service host - nginx, NFS, DNS secondary, and the other family's spelling of each service2 Core4 GB50 GB
LPIC2-C01192.168.0.80Ubuntu 26.04 LTSClient - resolves, mounts and connects, so every service is proven from a machine that is not running it2 Core4 GB50 GB

This guide includes

Use this before booking either LPIC-2 paper. This matters because installed, enabled and running are three different questions - and a unit can be disabled and active at the same time.

Before you start

  1. The three machines, and why there are three

    Two servers of different families, and a client that serves nothing.

    bash Example session
    . /etc/os-release; echo "$PRETTY_NAME  $(uname -r)"; echo "--- the primary service host"Ubuntu 26.04 LTS  7.0.0-30-generic--- the primary service host. /etc/os-release; echo "$PRETTY_NAME  $(uname -r)"; echo "--- the RPM-family service host"AlmaLinux 10.2 (Lavender Lion)  6.12.0-211.7.3.el10_2.x86_64--- the RPM-family service host. /etc/os-release; echo "$PRETTY_NAME  $(uname -r)"; echo "--- the client, which runs no service"Ubuntu 26.04 LTS  7.0.0-30-generic--- the client, which runs no service

    Expected resultUbuntu 26.04 LTS twice and AlmaLinux 10.2 once, on kernels 7.0.0-30-generic and 6.12.0-211.7.3.el10_2.

    Success conditionYou know which machine each command on this path ran on.

  2. What a machine with no services still runs

    Nineteen services, and not one of them is on the syllabus.

    bash Example session
    systemctl list-units --type=service --state=running --no-pager | head -8  UNIT                        LOAD   ACTIVE SUB     DESCRIPTION  chrony.service              loaded active running chrony, an NTP client/server  cron.service                loaded active running Regular background program processing daemon  dbus.service                loaded active running D-Bus System Message Bus  getty@tty1.service          loaded active running Getty on tty1  ModemManager.service        loaded active running Modem Manager  multipathd.service          loaded active running Device-Mapper Multipath Device Controller  networkd-dispatcher.service loaded active running Dispatcher daemon for systemd-networkdsudo -n ss -tlnp | head -5; echo "--- and this is everything it offers the network"State  Recv-Q Send-Q Local Address:Port Peer Address:PortProcessLISTEN 0      4096   127.0.0.53%lo:53        0.0.0.0:*    users:(("systemd-resolve",pid=607,fd=17))LISTEN 0      4096         0.0.0.0:22        0.0.0.0:*    users:(("sshd",pid=1266,fd=3),("systemd",pid=1,fd=169))LISTEN 0      4096      127.0.0.54:53        0.0.0.0:*    users:(("systemd-resolve",pid=607,fd=19))LISTEN 0      4096            [::]:22           [::]:*    users:(("sshd",pid=1266,fd=4),("systemd",pid=1,fd=170))--- and this is everything it offers the network

    Expected resultchrony, cron, dbus, getty, ModemManager, multipathd, networkd-dispatcher - 19 running services - and sshd the only thing listening beyond loopback.

    Success conditionYou know what the baseline is before you add anything to it.

  3. Installed, enabled, running - three different questions

    A unit that is disabled and active at the same time.

    bash Example session
    systemctl show sshd -p FragmentPath -p UnitFileState -p ActiveState 2>/dev/null; systemctl show ssh -p FragmentPath -p UnitFileState -p ActiveState 2>/dev/nullActiveState=activeFragmentPath=/usr/lib/systemd/system/ssh.serviceUnitFileState=disabledActiveState=activeFragmentPath=/usr/lib/systemd/system/ssh.serviceUnitFileState=disabledsystemctl show ssh -p After -p Wants --no-pager 2>/dev/null | tr ' ' '\n' | head -6; echo "--- ordering and dependency are different things"Wants=sshd-keygen.serviceAfter=systemd-journald.socketnss-user-lookup.targetssh.socketsysinit.target-.mount--- ordering and dependency are different things

    Expected resultActiveState=active with UnitFileState=disabled - and a Wants on sshd-keygen.service with After naming sockets and targets.

    Success conditionYou can tell whether a service will come back after a reboot.

Troubleshooting

Official sources