- Complete documentation for all bootc commands and subcommands - Debian-specific adaptations and workarounds - Manual installation methods to bypass bootc reliability issues - Technical guides with Rust source code analysis - Flowcharts and external command references - Hidden command documentation (bootc internals, state, etc.) - Composefs integration analysis - Base image creation guides (with and without bootc binary) - Management scripts and automation - Comprehensive troubleshooting and examples
14 KiB
bootc exec-in-host-mount-namespace - External Commands Reference
Overview
This document provides a comprehensive reference for all external commands used by bootc exec-in-host-mount-namespace operations. These commands are essential for understanding the dependencies and integration points of the exec-in-host-mount-namespace system.
Core Commands
bootc
Purpose: Main bootc command for exec-in-host-mount-namespace operations
Usage: bootc exec-in-host-mount-namespace [ARGS]...
Dependencies: None (core command)
Examples
# Execute command in host mount namespace
bootc exec-in-host-mount-namespace ls /
# Execute with arguments
bootc exec-in-host-mount-namespace mount /dev/sda1 /mnt
# Execute system command
bootc exec-in-host-mount-namespace systemctl status
System Commands
setns
Purpose: Change namespace membership
Usage: setns [options...] <file> [program [arguments...]]
Dependencies: util-linux
Examples
# Change to mount namespace
setns /proc/1/ns/mnt /bin/bash
# Change to PID namespace
setns /proc/1/ns/pid /bin/bash
# Change to network namespace
setns /proc/1/ns/net /bin/bash
unshare
Purpose: Run program in new namespaces
Usage: unshare [options...] [program [arguments...]]
Dependencies: util-linux
Examples
# Create new mount namespace
unshare -m /bin/bash
# Create new PID namespace
unshare -p /bin/bash
# Create new network namespace
unshare -n /bin/bash
# Create multiple namespaces
unshare -m -p -n /bin/bash
nsenter
Purpose: Enter namespaces
Usage: nsenter [options...] [program [arguments...]]
Dependencies: util-linux
Examples
# Enter mount namespace
nsenter -m -t 1 /bin/bash
# Enter PID namespace
nsenter -p -t 1 /bin/bash
# Enter network namespace
nsenter -n -t 1 /bin/bash
# Enter multiple namespaces
nsenter -m -p -n -t 1 /bin/bash
Filesystem Commands
mount
Purpose: Mount filesystems
Usage: mount [options...] <device> <directory>
Dependencies: util-linux
Examples
# Mount filesystem
mount /dev/sda1 /mnt
# Mount with options
mount -o ro,noexec /dev/sda1 /mnt
# Mount bind
mount --bind /source /target
# Mount tmpfs
mount -t tmpfs tmpfs /tmp
umount
Purpose: Unmount filesystems
Usage: umount [options...] <directory>
Dependencies: util-linux
Examples
# Unmount filesystem
umount /mnt
# Force unmount
umount -f /mnt
# Lazy unmount
umount -l /mnt
# Unmount all
umount -a
chroot
Purpose: Change root directory
Usage: chroot [options...] <directory> <command>
Dependencies: coreutils
Examples
# Change root
chroot /mnt /bin/bash
# Change root with specific command
chroot /mnt /bin/ls
# Change root with environment
chroot /mnt env -i /bin/bash
chdir
Purpose: Change working directory
Usage: chdir <directory>
Dependencies: coreutils
Examples
# Change to root directory
chdir /
# Change to specific directory
chdir /var/lib/bootc
# Change to home directory
chdir ~
Process Commands
exec
Purpose: Replace current process
Usage: exec [command [arguments...]]
Dependencies: coreutils
Examples
# Replace with new command
exec /bin/bash
# Replace with command and arguments
exec /bin/ls -la /
# Replace with shell
exec /bin/sh
ps
Purpose: Process status
Usage: ps [options...]
Dependencies: procps
Examples
# Show all processes
ps aux
# Show process tree
ps -ef
# Show specific process
ps -p 1234
# Show processes by user
ps -u username
kill
Purpose: Send signals to processes
Usage: kill [options...] <pid>
Dependencies: util-linux
Examples
# Kill process
kill 1234
# Force kill process
kill -9 1234
# Send signal
kill -TERM 1234
# Kill by name
pkill process_name
System Information Commands
uname
Purpose: System information
Usage: uname [options...]
Dependencies: coreutils
Examples
# Show system name
uname
# Show all information
uname -a
# Show kernel name
uname -s
# Show kernel version
uname -r
# Show machine type
uname -m
hostname
Purpose: Hostname operations
Usage: hostname [options...]
Dependencies: hostname
Examples
# Show hostname
hostname
# Show FQDN
hostname -f
# Show short hostname
hostname -s
# Show domain name
hostname -d
lscpu
Purpose: CPU information
Usage: lscpu [options...]
Dependencies: util-linux
Examples
# Show CPU information
lscpu
# Show in JSON format
lscpu -J
# Show in extended format
lscpu -e
# Show in parseable format
lscpu -p
free
Purpose: Memory information
Usage: free [options...]
Dependencies: procps
Examples
# Show memory usage
free
# Show in human readable format
free -h
# Show in bytes
free -b
# Show with total
free -t
# Show with wide format
free -w
File Commands
ls
Purpose: List directory contents
Usage: ls [options...] [file...]
Dependencies: coreutils
Examples
# List files
ls
# List with details
ls -l
# List all files
ls -a
# List with human readable sizes
ls -lh
# List with recursive
ls -R
# List with sort by time
ls -lt
find
Purpose: Find files
Usage: find [path...] [expression]
Dependencies: findutils
Examples
# Find files by name
find /path -name "*.txt"
# Find files by type
find /path -type f
# Find files by size
find /path -size +100M
# Find files by modification time
find /path -mtime -7
# Find files by permissions
find /path -perm 644
stat
Purpose: File status
Usage: stat [options...] [file...]
Dependencies: coreutils
Examples
# Show file status
stat file.txt
# Show in custom format
stat -c "%n %s %Y" file.txt
# Show filesystem status
stat -f /path
# Show with format
stat --format="%n: %s bytes" file.txt
Storage Commands
df
Purpose: Disk space usage
Usage: df [options...] [file...]
Dependencies: coreutils
Examples
# Show disk usage
df -h
# Show specific filesystem
df -h /var/lib/bootc
# Show inode usage
df -i
# Show all filesystems
df -a
du
Purpose: Directory space usage
Usage: du [options...] [file...]
Dependencies: coreutils
Examples
# Show directory usage
du -h /var/lib/bootc
# Show total usage
du -sh /var/lib/bootc
# Show usage by subdirectory
du -h --max-depth=1 /var/lib/bootc
# Show usage of all files
du -ah /var/lib/bootc
lsblk
Purpose: List block devices
Usage: lsblk [options...]
Dependencies: util-linux
Examples
# List block devices
lsblk
# Show device tree
lsblk -f
# Show device sizes
lsblk -b
# Show device types
lsblk -d
Network Commands
curl
Purpose: HTTP client for registry operations
Usage: curl [options...] <url>
Dependencies: curl
Examples
# Download file
curl -O https://example.com/file.tar
# Get HTTP headers
curl -I https://example.com
# POST data
curl -X POST -d "data" https://example.com
# With authentication
curl -u username:password https://example.com
# With custom headers
curl -H "Authorization: Bearer token" https://example.com
wget
Purpose: HTTP client for downloading files
Usage: wget [options...] <url>
Dependencies: wget
Examples
# Download file
wget https://example.com/file.tar
# Download with progress
wget --progress=bar https://example.com/file.tar
# Download recursively
wget -r https://example.com/
# Download with authentication
wget --user=username --password=password https://example.com
Systemd Commands
systemctl
Purpose: Systemd service management
Usage: systemctl <subcommand> [options...]
Dependencies: systemd
Examples
# Check service status
systemctl status bootc-*
# Start service
systemctl start bootc-*
# Enable service
systemctl enable bootc-*
# Reload systemd configuration
systemctl daemon-reload
journalctl
Purpose: Systemd journal viewing
Usage: journalctl [options...]
Dependencies: systemd
Examples
# Show all logs
journalctl
# Show logs for service
journalctl -u bootc-*
# Show recent logs
journalctl -n 100
# Follow logs
journalctl -f
# Show logs since time
journalctl --since "1 hour ago"
# Show logs with priority
journalctl -p err
Container Commands
podman
Purpose: Container runtime
Usage: podman <subcommand> [options...]
Dependencies: podman
Examples
# List containers
podman ps
# List images
podman images
# Pull image
podman pull quay.io/myorg/image:latest
# Run container
podman run -it image:latest
# Build image
podman build -t myimage:latest .
# Inspect image
podman inspect image:latest
docker
Purpose: Alternative container runtime
Usage: docker <subcommand> [options...]
Dependencies: docker
Examples
# List containers
docker ps
# List images
docker images
# Pull image
docker pull quay.io/myorg/image:latest
# Run container
docker run -it image:latest
# Build image
docker build -t myimage:latest .
Bootloader Commands
grub-mkconfig
Purpose: Generate GRUB configuration
Usage: grub-mkconfig [options...]
Dependencies: grub2
Examples
# Generate GRUB config
grub-mkconfig -o /boot/grub/grub.cfg
# Generate with specific output
grub-mkconfig -o /boot/grub2/grub.cfg
# Generate with verbose output
grub-mkconfig -v -o /boot/grub/grub.cfg
grub-install
Purpose: Install GRUB bootloader
Usage: grub-install [options...] <device>
Dependencies: grub2
Examples
# Install GRUB
grub-install /dev/sda
# Install with specific directory
grub-install --boot-directory=/boot /dev/sda
# Install with verbose output
grub-install -v /dev/sda
efibootmgr
Purpose: EFI boot manager
Usage: efibootmgr [options...]
Dependencies: efibootmgr
Examples
# List boot entries
efibootmgr
# Create boot entry
efibootmgr -c -d /dev/sda -p 1 -L "Bootc" -l /EFI/bootc/grubx64.efi
# Delete boot entry
efibootmgr -b 0000 -B
# Set boot order
efibootmgr -o 0000,0001,0002
Archive Commands
tar
Purpose: Archive operations
Usage: tar [options...] <archive> [file...]
Dependencies: tar
Examples
# Create archive
tar -cf archive.tar file1 file2
# Extract archive
tar -xf archive.tar
# List archive contents
tar -tf archive.tar
# Create compressed archive
tar -czf archive.tar.gz file1 file2
# Extract compressed archive
tar -xzf archive.tar.gz
gzip
Purpose: Compression
Usage: gzip [options...] [file...]
Dependencies: gzip
Examples
# Compress file
gzip file.txt
# Decompress file
gzip -d file.txt.gz
# Compress with custom level
gzip -9 file.txt
# Keep original file
gzip -k file.txt
Monitoring Commands
top
Purpose: Process monitoring
Usage: top [options...]
Dependencies: procps
Examples
# Show processes
top
# Show specific user
top -u username
# Show specific process
top -p 1234
# Show with custom delay
top -d 5
# Show with custom sort
top -o %CPU
htop
Purpose: Interactive process monitoring
Usage: htop [options...]
Dependencies: htop
Examples
# Show processes
htop
# Show specific user
htop -u username
# Show specific process
htop -p 1234
# Show with custom delay
htop -d 5
iotop
Purpose: I/O monitoring
Usage: iotop [options...]
Dependencies: iotop
Examples
# Show I/O usage
iotop
# Show only processes doing I/O
iotop -o
# Show with custom delay
iotop -d 5
# Show with custom refresh
iotop -n 10
Security Commands
openssl
Purpose: SSL/TLS operations
Usage: openssl <command> [options...]
Dependencies: openssl
Examples
# Generate private key
openssl genrsa -out key.pem 2048
# Generate certificate
openssl req -new -x509 -key key.pem -out cert.pem
# Verify certificate
openssl verify cert.pem
# Check certificate details
openssl x509 -in cert.pem -text -noout
# Generate hash
openssl dgst -sha256 file.txt
gpg
Purpose: GPG operations
Usage: gpg [options...]
Dependencies: gnupg
Examples
# Generate key pair
gpg --gen-key
# List keys
gpg --list-keys
# Sign file
gpg --sign file.txt
# Verify signature
gpg --verify file.txt.asc
# Encrypt file
gpg --encrypt file.txt
Development Commands
make
Purpose: Build automation
Usage: make [target...]
Dependencies: make
Examples
# Build project
make
# Clean build
make clean
# Install
make install
# Run tests
make test
# Update generated files
make update-generated
cargo
Purpose: Rust package manager
Usage: cargo <subcommand> [options...]
Dependencies: rust
Examples
# Build project
cargo build
# Run project
cargo run
# Run tests
cargo test
# Check code
cargo check
# Update dependencies
cargo update
git
Purpose: Version control
Usage: git <subcommand> [options...]
Dependencies: git
Examples
# Clone repository
git clone https://github.com/containers/bootc.git
# Check status
git status
# Add files
git add .
# Commit changes
git commit -m "message"
# Push changes
git push
This comprehensive reference covers all external commands used by the bootc exec-in-host-mount-namespace system, providing examples and usage patterns for each command.