🎯 OS Admin L3 Interview Prep
Mumbai · 10+ Years · Complete Reference Guide — 150+ Questions · 12 Topics · 6 OS Types
| Tip | Why It Matters |
|---|---|
| Always cite exact command syntax | Separates L3 from L2 engineers |
| Use the STAR method for scenarios | Structured, credible storytelling |
| Quantify everything: "200 servers", "40% reduction" | Shows real production scale |
| Connect every answer to business impact | Relevant in banking context |
| Never make a production change without a change ticket | Critical compliance point |
| Mention rollback plan for every change | Shows risk awareness |
| State "I escalate to IS team first" for security incidents | Mandatory in banking |
OS patching is a structured, multi-phase activity performed during approved maintenance windows. The approach varies by OS but follows the same discipline.
- Identify applicable patches from vendor advisories, Red Hat Satellite, or internal patch baseline
- Download and stage patches in a local repository (avoid patching directly from internet on production)
- Raise a Change Request with implementation plan, rollback plan, and risk assessment
- Take VM snapshot or system backup before starting
- Notify application teams and obtain maintenance window approval from CAB
- Verify kernel version:
uname -r - Check all services:
systemctl list-units --state=failed - Review logs:
dmesg | tail -30,journalctl -p err -n 50 - Run application smoke tests with app team sign-off
- Delete snapshot after 48-hour stability confirmation
- Update change ticket, CMDB, and patch inventory
- VM: Access VMware vCenter console (not SSH — network may be unavailable)
- Physical server: Access via iLO / DRAC / IPMI remote console
- At GRUB menu, press Esc or hold Shift to interrupt automatic boot
- Select the previous kernel entry from the list
- If boots successfully → the new kernel caused the regression
- Download patches to local Red Hat Satellite / YUM mirror — servers never hit internet directly
- Create a patch schedule coordinated with change management and application owners
- Test patches in UAT/Staging first — document any issues or conflicts
- Patch in waves: DR first → Staging → Production clusters (rolling, not all at once)
- Use Ansible playbooks to execute patching in parallel batches with health check validation between waves
- Take VMware snapshots before each wave; remove after 48-hour stability confirmation
- Submit post-patching report: patch compliance %, any failures, rollbacks performed
- Raise an Emergency Change Request immediately — get CAB or designated approver sign-off
- Download the patched OpenSSH package to local repo and verify checksum
- Test on one non-production server: update → verify SSH connectivity → check version
- Write a remediation script with automatic rollback if SSH connectivity fails post-update
- Execute in parallel batches using Ansible or pssh across all 20 servers
- Validate SSH on each server after patching; log results in real time
- Submit evidence report (before/after rpm -q openssh, CVE scan results) to security team within 24 hours
| CVSS Score | Priority | Timeline | Change Type |
|---|---|---|---|
| ≥ 9.0 Critical | P1 | 72 hours | Emergency Change |
| 7.0–8.9 High | P2 | 7–14 days | Normal Change |
| 4.0–6.9 Medium | P3 | Next quarterly cycle | Standard Change |
| < 4.0 Low | P4 | Annual review | Deferred |
| Type | Scope | When Applied | Example |
|---|---|---|---|
| Hotfix | Single critical bug or CVE | Immediately / Emergency window | CVE OpenSSL patch |
| Patch | Multiple bug fixes, security updates | Scheduled monthly/quarterly | RHEL kernel update |
| Service Pack | All patches bundled for a version | Major maintenance window | RHEL 8.6 → 8.8 update, AIX TL |
Prioritization is based on CVSS score. I never rely solely on vendor classification — I cross-reference with our asset inventory to determine actual exposure and impact.
| Stage | Component | What Happens | Failure Symptom |
|---|---|---|---|
| 1 | BIOS/UEFI | POST, locates bootloader from MBR/EFI partition | No display, beep codes |
| 2 | GRUB2 | Loads vmlinuz + initramfs, passes kernel params | GRUB rescue prompt |
| 3 | Kernel | Decompresses, hardware init, mounts initramfs | Kernel panic at early boot |
| 4 | initramfs | Loads drivers, activates LVM, mounts real root | Emergency shell "cannot find root" |
| 5 | systemd | PID 1 — starts services per default target | Services fail, partial boot |
| 6 | Login | getty / sshd ready for user login | Login prompt not appearing |
- initramfs = Initial RAM Filesystem — a compressed cpio archive in /boot/
- Provides minimal userspace environment BEFORE real root filesystem is accessible
- Contains: storage drivers (SCSI, NVMe, FC HBA), LVM tools (to activate VGs), encryption modules (LUKS), udev for device naming
- Without initramfs, kernel cannot access root on LVM, SAN, or encrypted disks
- After mounting real root → hands control to systemd on disk
- Emergency shell appears = systemd failed to mount a filesystem in /etc/fstab
- Run
journalctl -xbto see the exact mount failure reason - Run
blkidto list all block devices and their UUIDs
| Panic Type | Visible In | Fix |
|---|---|---|
| NULL pointer dereference | bt output — driver module | Update or blacklist driver |
| Hardware memory error | mcelog, EDAC dmesg | Replace faulty DIMM |
| OOM (Out of Memory) | oom-kill in /var/log/messages | Tune vm.overcommit, add RAM |
| SAN I/O error | HBA errors in dmesg | Fix multipath, check SAN |
- VG is inactive — most common reason after disk replacement, SAN path loss, or system migration
- PV device is not visible — underlying disk/LUN not accessible to the OS
- VG metadata corrupted — LVM metadata on the PV is missing or corrupt
- LVM filter in /etc/lvm/lvm.conf excludes the device
- Disk not scanned yet — new disk added but LVM hasn't discovered it
When df -h shows available space but you get "No space left on device", the cause is inode exhaustion — the inode table is full.
| Filesystem | Can Extend Add Inodes? | Reason |
|---|---|---|
| ext4 | NO | Inode count fixed at mkfs time — cannot change after creation |
| XFS | YES (effectively) | XFS allocates inodes dynamically from free space |
DM-Multipath provides multiple I/O paths between a server and SAN storage for redundancy and load balancing. If one path fails, I/O switches to alternate path — transparent to the application.
| Policy | Behavior | Use Case |
|---|---|---|
| failover | One active path, rest standby | Simple redundancy |
| round-robin | Distribute I/O across all paths | Load balancing |
| multibus | All paths in one group, all active | Max throughput |
- After recovery: implement 80% disk alert in monitoring tool
- Configure proper logrotate for offending application
- Document RCA and submit post-incident report
| Area | Action | Commands/Files |
|---|---|---|
| SSH | Disable root login, key-auth only, SSHv2, idle timeout | /etc/ssh/sshd_config |
| SELinux | Set to Enforcing mode | setenforce 1, /etc/selinux/config |
| Firewall | Default deny, allow only required ports | firewall-cmd --add-service |
| PAM | Password complexity, account lockout, aging | /etc/security/limits.conf |
| Audit | auditd for privileged commands, file integrity | /etc/audit/rules.d/ |
| Kernel | sysctl hardening, disable IP forwarding, SYN cookies | /etc/sysctl.conf |
| Packages | Remove unused packages and services | yum remove, systemctl disable |
| USB | Disable USB storage module | blacklist usb-storage in modprobe |
- Use specific command paths — never give ALL without strong justification
- Avoid NOPASSWD for destructive commands (rm, dd, chmod, shutdown)
- All sudo usage is logged in /var/log/secure and auditd automatically
- Review sudo rules quarterly as part of access review process
PAM is a framework that decouples authentication from applications. Configuration files are in /etc/pam.d/ — one per service (sshd, login, sudo).
ulimit controls resource limits for processes — preventing a single user/process from consuming all system resources.
| Limit | Flag | Common Value | What It Controls |
|---|---|---|---|
| nofile | -n | 65536 | Open file descriptors (critical for Oracle, Tomcat) |
| nproc | -u | 16384 | Max processes (low value causes fork: retry error) |
| core | -c | unlimited | Core dump size for debugging |
| stack | -s | 10240 | Stack size in KB |
- First — gather evidence: grep the logs, document scope before taking any action
- Report to Information Security team IMMEDIATELY — this is a policy violation security incident
- After IS team authorization — enforce key-auth only for this account
- Coordinate with app team to implement proper key-based auth
- Scan all other servers for the same issue
| Cause | Symptom | Fix |
|---|---|---|
| Runaway log writes | High w/s on app partition | Log rotation, reduce verbosity |
| Backup running | Sequential read spikes | Reschedule to off-peak hours |
| Memory too low / swapping | si/so in vmstat > 0 | Increase RAM or swap |
| VMware noisy neighbor | Latency, not throughput | vMotion VM to less-loaded host |
| SAN path degraded | Intermittent high await | Check multipath -ll, escalate |
| Mode | Name | Redundancy | Load Balance | Switch Config |
|---|---|---|---|---|
| Mode 0 | Round Robin | No | Yes | Required |
| Mode 1 | Active-Backup | Yes | No | None needed |
| Mode 2 | XOR | Yes | Yes | Required |
| Mode 4 | 802.3ad / LACP | Yes | Yes | LACP required |
| Mode 5 | Adaptive TLB | Yes | Tx only | None needed |
| Mode 6 | Adaptive LB | Yes | Yes | None needed |
Yes — called IP aliasing or secondary IPs. A single NIC can have multiple IP addresses, all sharing the same MAC address and physical link.
| Criteria | Shell Script | Ansible |
|---|---|---|
| Style | Procedural | Declarative (desired state) |
| Idempotency | Must code manually | Built-in — safe to run twice |
| Scale | 1–few servers | Hundreds of servers in parallel |
| Agent | None needed | None (agentless via SSH) |
| Use case | Monitoring, log mgmt, ad-hoc tasks | Config deployment, patch orchestration |
| Availability | Always available | Requires Ansible installed |
Cause: Process exceeded its 'nofile' ulimit — max open file descriptors limit reached.
Cause: nproc ulimit reached — max number of processes for the user is exhausted. Often caused by a process creating too many threads or a fork bomb.
Cause: Inode table is full — millions of small files (sessions, temp files, mail spools) have exhausted the inode count even though disk space is available.
Cause: System is out of physical RAM and swap, OOM killer is active, or virtual address space is exhausted.
Cause: Files or processes are still using the filesystem — open file handles, processes with working directory inside the mount.
| Cause | Fix |
|---|---|
| Datastore out of space | Free datastore space, or extend; check Storage → Datastores → Monitor |
| VMware Tools not installed/old | Install/update open-vm-tools inside guest OS |
| Snapshot consolidation needed | Right-click VM → Snapshots → Consolidate |
| Too many existing snapshots | Delete old snapshots first (max recommended: 3-4) |
| Backup running (disk locked) | Wait for NetBackup/Veeam backup to complete |
| Guest OS quiesce failure | Check /var/log/vmware-vmsvc.log inside guest |
vMotion is VMware's live migration technology — moves a running VM from one ESXi host/datastore to another with zero downtime (typically < 1 second interruption).
| Type | Moves | Requirement |
|---|---|---|
| vMotion | CPU + Memory (compute) | Shared storage between hosts |
| Storage vMotion | VM disk files | VM stays on same host |
| Enhanced vMotion | Compute + Storage | No shared storage needed |
A VM template is a master golden image for deploying new VMs consistently. It is a non-runnable copy of a configured VM.
| Item | Template | Snapshot | Clone |
|---|---|---|---|
| Purpose | New VM deployments | Rollback point | Copy for testing |
| Runnable? | No | Yes (parent VM) | Yes |
| Uses | Gold image for fleet | Pre-change safety net | Dev/test copies |
| Function | Why It Matters |
|---|---|
| Time synchronization | Critical for Kerberos, Oracle RAC, banking timestamps |
| Quiesced snapshots | Consistent backup — requires VMware Tools |
| Graceful shutdown/restart | vCenter can cleanly shut down VM (not force power off) |
| Memory balloon driver | Hypervisor reclaims unused guest memory under pressure |
| VMXNET3 NIC driver | Paravirtual — much faster than emulated e1000 |
| PVSCSI driver | High I/O performance for Oracle/SQL Server |
| Guest metrics | vCenter shows OS-level CPU/memory/disk inside guest |
CPU Ready means the vCPU is ready to run but the physical CPU is not available — the hypervisor host is overcommitted.
- Check if the ESXi host cluster is overcommitted (too many vCPUs vs physical cores)
- Coordinate with VMware team to vMotion the VM to a less-loaded host immediately
- Consider reducing vCPU count — fewer vCPUs = less co-scheduling pressure (counterintuitive but effective)
- Escalate for capacity addition if entire cluster is consistently overloaded
- Document correlation between CPU Ready % and application response time for capacity report
| Task | Solaris 10 | Solaris 11 |
|---|---|---|
| Patching | patchadd, patchrm | pkg update |
| Package install | pkgadd | pkg install |
| Service management | svcadm, svcs | svcadm, svcs (same) |
| Zones | zoneadm, zonecfg | zoneadm, zonecfg |
| Network | ifconfig, ndd | ipadm, dladm |
| ZFS | zfs, zpool | zfs, zpool (same) |
| Deployment | JumpStart | AI (Automated Installer) |
| Feature | Benefit | Command |
|---|---|---|
| Copy-on-Write | Crash consistency, instant recovery | Built-in |
| Snapshots | Instant, space-efficient backups | zfs snapshot pool/ds@snap |
| Clones | Writable copy of snapshot | zfs clone pool/ds@snap pool/new |
| Compression | 2-4x storage savings for logs | zfs set compression=lz4 |
| Quotas | Capacity management per dataset | zfs set quota=100G |
| RAIDZ | Native disk redundancy | zpool create -o ashift=12 raidz2 |
| Concept | Linux LVM | AIX LVM |
|---|---|---|
| Allocation unit | Physical Extents (PE) — 4MB default, fixed | Physical Partitions (PP) — 4–128MB, configurable per VG |
| VG types | Standard only | Original (32 PVs), Big (128), Scalable (1024) |
| Mirroring | Via RAID or dm-mirror | Native — mklvcopy |
| Metadata | /etc/lvm/ | ODM (Object Data Manager) |
| Filesystem | ext4, XFS | JFS2 (preferred) |
NIM is AIX's network-based infrastructure management system for OS installation, cloning, and updates across LPAR environments.
- Join the P1 bridge call immediately and declare technical lead for the OS layer
- Perform initial triage within first 15 minutes: server health, network, service status, recent changes
- Maintain a live incident timeline — document every action with timestamps
- Coordinate with App, DBA, Network, and Storage teams — prevent siloed working
- Apply 5-Why methodology to drill to root cause while simultaneously restoring service
- Update the incident manager every 15–30 minutes with status
- After resolution: draft RCA document and present PIR within 48 hours
| Priority | Response Time | Resolution Target | Update Frequency |
|---|---|---|---|
| P1 — Critical | 15 minutes | 4 hours | Every 15–30 min |
| P2 — High | 30 minutes | 8 hours | Every 1 hour |
| P3 — Medium | 4 hours | 24 hours | Daily |
| P4 — Low | Next business day | 72 hours | On request |
- Empathize with the urgency but firmly explain that production changes require a change ticket — this is compliance, not bureaucracy
- Guide the developer/manager to raise an Emergency Change Request (ECR) immediately — can be approved in 30–60 minutes
- While ticket is being raised, collect technical details: source IP, destination IP, port, protocol, business justification — ready to implement the moment approval arrives
- Do NOT make the change without an approved ticket — this exposes the bank to audit risk and potential security breach
- Once approved: implement, document in the ticket, update firewall rule inventory, and schedule post-implementation review
- IBM Tivoli Monitoring (ITM) / Netcool — enterprise monitoring in banking
- Nagios / Icinga — threshold-based service and resource alerting
- Zabbix — agent-based monitoring with dashboards
- HP Operations Manager (HPOM) — event correlation
- vCenter performance alerts — VMware-specific metrics
- Custom shell scripts + cron + mailx — lightweight targeted monitoring
| Alert | Threshold | My Action |
|---|---|---|
| CPU High | >85% sustained 5min | Identify top process, escalate to app team |
| Memory High | >90% | Check for leak, add swap temporarily |
| Disk Warning | >80% | du -sh, clean or extend LV |
| Disk Critical | >90% | Immediate cleanup, alert app team |
| Filesystem Full | 100% | Emergency cleanup, P1 ticket |
| Inode Exhaustion | >90% IUse | Find small file consumer, clean up |
| Service Down | Immediate | systemctl restart, RCA if recurring |
| Backup Failed | Next morning | Retry, fix root cause, document |
| SSH Brute Force | >10 fails/min | Check secure log, block source IP |
- Incident Management: I prioritize tickets by impact × urgency matrix, not by who shouts loudest. SLA adherence is tracked and reported weekly.
- Change Management: All production changes go through RFC → CAB → Implementation → PIR. No exceptions — this protects both the bank and me personally.
- Problem Management: When I see the same incident recurring, I raise a Problem ticket to find and eliminate the root cause. Example: I noticed 80% of disk-full tickets on a cluster came from unmanaged log growth — implemented systematic log rotation that eliminated the recurring incidents entirely.
- Continual Service Improvement (CSI): I track SLA trends monthly and identify improvement opportunities. Automation initiatives I've implemented have reduced manual ticket handling by 40%.
- Knowledge Management: Every resolved incident gets documented in the knowledge base with RCA and resolution steps — reduces time-to-resolve for repeat issues.