Gerenciamento de Sessões no MiniOS 🔄
🤔 O que são Sessões?
As sessões do MiniOS oferecem armazenamento persistente para suas alterações, permitindo que você:
- Salve alterações feitas durante uma sessão ao vivo
- Retome o trabalho de onde parou após reiniciar
- Gerencie múltiplos ambientes de trabalho separados
- Alterne entre diferentes configurações
As sessões utilizam a tecnologia de Sistema de Arquivos Union (AUFS ou OverlayFS) para sobrepor alterações ao sistema base somente leitura.
📋 Tipos e Modos de Sessão
Ações de Sessão
resume- Continua a partir da última sessão utilizada (padrão)new- Cria uma nova sessãoask- Seleção interativa de sessão durante a inicializaçãofresh- Sem persistência (sessão temporária)
Modos de Armazenamento
native- Armazenamento direto no sistema de arquivos (requer sistema de arquivos POSIX: ext4, btrfs, xfs)dynfilefs- Arquivos contêiner expansíveis (funciona em qualquer sistema de arquivos, recomendado para FAT32/NTFS/exFAT)raw- Arquivos de imagem de tamanho fixo (funciona em qualquer sistema de arquivos)
🚀 Parâmetros de Inicialização para Controle de Sessão
Parâmetros Principais de Sessão
| Parâmetro | Valores | Descrição |
|---|---|---|
perch | - | Habilita alterações persistentes |
perchdir | resume | new | ask | /path | Ação da sessão ou diretório |
perchmode | native | dynfilefs | raw | Modo de armazenamento |
perchsize | <size_in_MB> | Tamanho inicial para modos contêiner/imagem |
Estrutura de Diretórios da Sessão
/minios/changes/
├── session.conf # Session configuration (default format)
├── session.json # JSON metadata (when jq is available)
├── 1/ # Session #1 directory
├── 2/ # Session #2 directory
└── N/ # Session #N directory🎛️ Integração com Bootloader
Configuração do GRUB
O MiniOS fornece entradas de menu GRUB pré-configuradas para diferentes modos de sessão:
# Resume previous session
linux /minios/boot/vmlinuz... perchdir=resume
# Start new session
linux /minios/boot/vmlinuz... perchdir=new
# Interactive session selection
linux /minios/boot/vmlinuz... perchdir=ask
# Fresh start (no persistence)
linux /minios/boot/vmlinuz...Configuração do SYSLINUX
Entradas correspondentes para SYSLINUX:
LABEL default
MENU LABEL Run MiniOS (Resume previous session)
APPEND ... perchdir=resume
LABEL perch
MENU LABEL Run MiniOS (Start a new session)
APPEND ... perchdir=new
LABEL asksession
MENU LABEL Run MiniOS (Choose session during startup)
APPEND ... perchdir=ask
LABEL live
MENU LABEL Run MiniOS (Fresh start)
APPEND ...🔧 Comandos de Gerenciamento de Sessão
Usando o Gerenciador de Sessões do MiniOS (GUI)
# Launch graphical session manager
minios-session-managerRecursos:
- Visualizar todas as sessões disponíveis com metadados
- Criar novas sessões com diferentes modos
- Ativar/trocar sessões
- Excluir sessões antigas
- Limpar sessões com mais de X dias
Usando minios-session (CLI)
⚠️ Privilégios Administrativos Necessários:
A ferramenta CLI requer privilégios de root e fará a verificação automaticamente. Execute os comandos com sudo ou através do pkexec:
sudo minios-session list
# or
pkexec minios-session activate 3Comandos Básicos:
# List all sessions
sudo minios-session list
# Show currently active session (will boot next)
sudo minios-session active
# Show currently running session (current boot)
sudo minios-session running
# Check filesystem compatibility and session directory status
sudo minios-session info
sudo minios-session status
# Create new sessions (using positional arguments)
sudo minios-session create native
sudo minios-session create dynfilefs 2000
sudo minios-session create raw 2000
# Activate specific session
sudo minios-session activate 3
# Delete session
sudo minios-session delete 2
# Resize session (dynfilefs/raw modes only)
sudo minios-session resize 1 8000
# Export session to archive
sudo minios-session export 1 /path/to/backup.tar.zst
# Import session from archive
sudo minios-session import /path/to/backup.tar.zst
sudo minios-session import /path/to/backup.tar.zst dynfilefs # with mode conversion
# Copy session with optional mode conversion
sudo minios-session copy 1 2 # copy keeping same mode
sudo minios-session copy 1 3 raw # copy and convert to raw mode
sudo minios-session copy 1 4 native 3000 # copy, convert to native, set size
# Cleanup old sessions (older than 30 days)
sudo minios-session cleanup --days 30Opções Avançadas:
# JSON output for automation (available for all commands)
sudo minios-session --json list
sudo minios-session --json info
sudo minios-session --json active
sudo minios-session --json running
sudo minios-session --json status
sudo minios-session --json create native
sudo minios-session --json activate 2
sudo minios-session --json delete 3
sudo minios-session --json cleanup --days 30
sudo minios-session --json resize 1 8000
sudo minios-session --json export 1 backup.tar.zst
sudo minios-session --json import backup.tar.zst
sudo minios-session --json copy 1 2 native
# Custom sessions directory
sudo minios-session --sessions-dir /custom/path list
sudo minios-session --sessions-dir /mnt/usb/sessions create nativePrincipais Diferenças dos Comandos:
active- Mostra a sessão que será usada no próximo bootrunning- Mostra a sessão atualmente em uso (se houver)resize- Altera o tamanho da sessão (somente para modos dynfilefs/raw)export- Exporta a sessão para um arquivo .tar.zst para backupimport- Importa sessão de um arquivo com conversão de modo opcionalcopy- Copia sessão com conversão de modo opcionalinfo- Verifica compatibilidade do sistema de arquivos e recomendações
📦 Backup e Migração de Sessões
Exportar Sessões
Exporte sessões para arquivos compactados para backup ou transferência:
# Export session to archive
sudo minios-session export 1 /backup/session1.tar.zst
# Export with JSON output
sudo minios-session --json export 2 /backup/session2.tar.zstRecursos:
- Cria arquivo .tar.zst compactado
- Preserva todos os dados e metadados da sessão
- Pode ser importado em qualquer sistema MiniOS
- Compressão automática para economia de espaço
Importar Sessões
Importe sessões de arquivos com conversão de modo opcional:
# Import session keeping original mode
sudo minios-session import /backup/session1.tar.zst
# Import and convert to different mode
sudo minios-session import /backup/session1.tar.zst dynfilefs
sudo minios-session import /backup/session2.tar.zst raw
sudo minios-session import /backup/session3.tar.zst native
# Import with JSON output
sudo minios-session --json import /backup/session.tar.zstRecursos:
- Restaura dados da sessão a partir do arquivo
- Converte automaticamente entre modos de armazenamento, se especificado
- Ignora arquivos existentes para evitar perda de dados
- Cria novo número de sessão automaticamente
Copiar e Converter Sessões
Copie sessões entre diferentes modos de armazenamento:
# Copy session keeping same mode
sudo minios-session copy 1 2
# Copy and convert to different mode
sudo minios-session copy 1 3 raw # convert to raw mode
sudo minios-session copy 1 4 dynfilefs # convert to dynfilefs
sudo minios-session copy 1 5 native # convert to native
# Copy with custom size (for raw/dynfilefs)
sudo minios-session copy 1 6 raw 4000 # 4GB raw image
sudo minios-session copy 2 7 dynfilefs 2000 # 2GB dynfilefsConversões Suportadas:
- native ⇄ dynfilefs ⇄ raw
- Todas as combinações de modos suportadas
- Gerenciamento automático de tamanho
- Preserva dados da sessão durante a conversão
Casos de Uso:
- Migrar de FAT32 para sistema de arquivos ext4 (dynfilefs → native)
- Criar sessões portáteis (native → dynfilefs/raw)
- Otimizar para diferentes sistemas de arquivos
- Criar backups de sessão com modos diferentes
🏗️ Modos de Armazenamento de Sessão em Detalhes
Modo Nativo
Melhor para: Sistemas em sistemas de arquivos POSIX (ext4, btrfs, xfs)
# Enable native mode
perchmode=nativeCaracterísticas:
- Acesso direto ao sistema de arquivos, sem contêiner
- Total conformidade POSIX (links físicos, permissões, atributos estendidos)
- Melhor desempenho entre todos os modos
- Requisitos: Sistema de arquivos compatível com POSIX (ext4, btrfs, xfs)
- Não compatível: FAT32, NTFS, exFAT
Modo DynFileFS
Melhor para: Sistemas de arquivos não POSIX (FAT32, NTFS, exFAT)
# Enable dynfilefs mode with initial size
perchmode=dynfilefs perchsize=2000Características:
- Contêiner expansível com sistema de arquivos ext4 interno
- Cresce automaticamente conforme necessário até o espaço disponível
- Funciona em qualquer tipo de sistema de arquivos
- Pequena perda de desempenho em relação ao modo nativo
- Tamanho padrão: 1000MB, expande dinamicamente
- Recomendado para: Sistemas de arquivos FAT32, NTFS, exFAT
Modo Raw
Melhor para: Requisitos de tamanho fixo em qualquer sistema de arquivos
# Enable raw mode with fixed size
perchmode=raw perchsize=2000Características:
- Imagem de tamanho fixo com sistema de arquivos ext4 interno
- Uso de disco previsível e constante
- Funciona em qualquer tipo de sistema de arquivos
- Tamanho deve ser especificado na criação
- Tamanho padrão: 1000MB se não especificado
- Casos de uso: Sessões portáteis, cotas de armazenamento, alocação de espaço previsível
🗂️ Metadados e Compatibilidade de Sessão
Formatos de Metadados de Sessão
Formato Padrão (session.conf):
default=2
session_mode[1]=native
session_version[1]=5.0.0
session_edition[1]=standard
session_union[1]=overlayfs
session_mode[2]=dynfilefs
session_version[2]=5.0.0
session_edition[2]=standard
session_union[2]=overlayfsFormato JSON (quando jq está disponível):
{
"default": "2",
"sessions": {
"1": {
"mode": "native",
"version": "5.0.0",
"edition": "standard",
"union": "overlayfs"
},
"2": {
"mode": "dynfilefs",
"version": "5.0.0",
"edition": "standard",
"union": "overlayfs"
}
}
}Nota: O MiniOS detecta automaticamente se o
jqestá disponível e usa o formato JSON quando possível, caso contrário utiliza o formato conf tradicional.
Verificação de Compatibilidade
O MiniOS verifica automaticamente a compatibilidade das sessões:
- Versão diferente - Cria nova sessão se a versão do MiniOS for diferente
- Edição diferente - Cria nova sessão se a edição for diferente (standard/toolbox/ultra)
- Union FS diferente - Cria nova sessão se o sistema de arquivos union for diferente (aufs/overlayfs)
- Mudança de modo - Cria nova sessão se o modo de armazenamento mudar
Sistema de Avisos
Ao selecionar sessões incompatíveis, o MiniOS exibe avisos:
- Avisos de incompatibilidade de versão
- Notificações de edição diferente
- Problemas de compatibilidade com o sistema de arquivos union
- Opção de prosseguir por conta e risco do usuário
🎯 Configuração Avançada de Sessão
Localizações Personalizadas de Sessão
# Specify custom session directory
perchdir=/dev/sda2/my-sessions
# Use labeled partition
perchdir=label:MYSESSIONS/work
# Interactive disk selection
perchdir=askdiskGerenciamento de Tamanho da Sessão
# Auto-size for dynfilefs (uses 90% of available space)
perchmode=dynfilefs perchsize=0
# Fixed size for any mode
perchsize=8000 # 8GB
# Size limits per filesystem:
# - FAT32: Maximum 4095MB (4GB limit)
# - Others: Limited by available spaceGerenciamento Automático de Sessões
# Resume last session (default behavior)
perchdir=resume
# Force new session creation
perchdir=new
# Interactive session management
perchdir=ask🛠️ Solução de Problemas de Sessões
Problemas Comuns
Sessão Não Encontrada
# Check session directory
ls -la /minios/changes/
# Verify session metadata
cat /minios/changes/session.conf
# or if JSON format is used:
cat /minios/changes/session.jsonProblemas de Permissão
# Check directory permissions
ls -ld /minios/changes/
# Verify filesystem mount options
mount | grep changesFalhas no Modo de Armazenamento
# Native mode falls back to dynfilefs automatically
# Check system logs for details
sudo minios-session status
sudo minios-session info # Show filesystem compatibilityRecuperação de Sessão
# List all sessions and their status
sudo minios-session list
# Check session integrity and filesystem info
sudo minios-session status
sudo minios-session info
# Show active vs running session status
sudo minios-session active
sudo minios-session running
# Create new session if corrupted
sudo minios-session create nativeLimpeza de Sessões
# Remove sessions older than 30 days
sudo minios-session cleanup --days 30
# Delete specific session (safe method)
sudo minios-session delete 3
# Manual session removal (advanced users only)
sudo rm -rf /minios/changes/session_number/📊 Melhores Práticas para Sessões
Escolhendo Modos de Armazenamento
- Modo nativo: Use quando o MiniOS estiver em um sistema de arquivos POSIX (ext4, btrfs, xfs) – melhor desempenho
- Modo DynFileFS: Use para sistemas de arquivos FAT32, NTFS, exFAT – gerenciamento automático de espaço
- Modo raw: Use quando precisar de tamanho fixo em qualquer sistema de arquivos – uso de disco previsível
Planejamento de Tamanho
- Sessões pequenas: 1-2GB para alterações básicas de configuração
- Desenvolvimento: 4-8GB para ambientes de desenvolvimento
- Cargas pesadas: 8GB+ para instalação extensiva de software
Gerenciamento de Sessões
- Limpe sessões antigas regularmente
- Use nomes descritivos para sessões no gerenciamento manual
- Monitore o uso de espaço em disco
- Mantenha pelo menos uma sessão conhecida e funcional para recuperação
Otimização de Desempenho
- Use o modo nativo sempre que possível para melhor desempenho
- Armazene as sessões em dispositivos de armazenamento rápidos
- Considere SSD para sessões usadas com frequência