Ao criar uma unidade USB de instalação completa usando um computador com uma partição de troca, o instalador Ubiquity formata cada partição de troca no computador e adiciona seus caminhos ao fstab. Isso inclui as partições de troca existentes no computador e as partições de troca criadas pelo processo de instalação.
Se houver partições de troca existentes no computador, o Ubiquity não cria um novo arquivo de troca para a unidade USB. Se a unidade USB for inicializada em um computador que não tenha uma partição de troca, não haverá espaço de troca disponível.
O que devo fazer? Devo criar um novo arquivo de troca e adicioná-lo ao fstab? Em caso afirmativo, devo apenas remover quaisquer partições de troca existentes do fstab ou devo mantê-las? Existe alguma preocupação com a segurança? A próxima pessoa que estiver usando o computador pode copiar meus dados de swap, contas bancárias, etc?
USB inicializável e espaço de troca
Um computador pode ter várias partições de troca e uma nova instalação do Ubuntu usará todas elas, mesmo que não estejam listadas em fstab. Além disso, o computador pode usar um único arquivo de troca se estiver listado em fstab.
Mesmo os dispositivos USB inicializáveis ao vivo e persistentes usarão todas as partições de troca que encontrarem.
O Ubuntu 20.04 criará um arquivo de troca durante a instalação, desde que não haja partições de troca no computador. (Esta é outra razão para desconectar o HDD/SSD interno durante a instalação).
Depois que o arquivo de troca for adicionado ao fstab, o computador não usará nenhuma partição de troca que não esteja listada no fstab.
Segurança:
Uma unidade flash pode ser facilmente perdida ou extraviada. Se você usa um pendrive ao lidar com dados confidenciais, a unidade deve ser totalmente criptografada.
Uma partição swap pode ser copiada ou clonada como qualquer outro arquivo ou partição.
Um arquivo de troca faz parte da partição raiz e é criptografado automaticamente junto com ela.
Geralmente, não é uma boa ideia criptografar a partição de troca no computador de outra pessoa ao usar um USB inicializável. Para evitar que quaisquer dados sejam deixados nas partições de troca do computador host, um arquivo de troca deve ser usado ou a troca deve pelo menos ser desativada antes de sair:
sudo swapoff -a
.Para substituir uma partição de troca por um arquivo de troca em um USB inicializável:
Verifique o swap que está em uso:
sudo swapon -s
Se a(s) partição(ões) de troca forem encontradas:
sudo swapoff -a
sudo nano -Bw /etc/fstab
Adicione "#" antes do UUID da(s) partição(ões) de troca:
# UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX none swap sw 0 0
Adicione uma linha para o arquivo de troca:
swapfile none swap sw 0 0
Crie o arquivo de troca:
sudo fallocate -l XG /swapfile
Onde X é o tamanho do arquivo de troca em GB
Reinício:
sudo reboot
Para habilitar a hibernação:
Aumente o tamanho do arquivo de troca para corresponder ao tamanho da RAM até 8 GB por acima, conforme necessário.
Edite /etc/default/grub para adicionar localização e deslocamento de currículo ao grub.cfg:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX resume_offset=XXXXX"
Use o UUID da raiz.
Usar deslocamento de
sudo filefrag -v /swapfile
cscameron@cscameron-T:~$ filefrag -v /swapfile Filesystem type is: ef53 File size of /swapfile is 4819255296 (1176576 blocks of 4096 bytes) ext: logical_offset: physical_offset: length: expected: flags: 0: 0.. 0: 303104.. 303104: 1: 1: 1.. 2047: 303105.. 305151: 2047: unwritten 2: 2048.. 4095: 311296.. 313343: 2048: 305152: unwritten
resume_offset=303104
Atualizar GRUB
sudo update-grub
Teste de hibernação
sudo systemctl hibernate
Um botão de hibernação pode ser adicionado usando extensões do gnome.
NOTAS:
Existe uma pequena possibilidade de obter falhas em um arquivo de troca ao criá-lo com fallocate. /var/log/syslog pode ser pesquisado pela frase
swapon: swapfile has holes
para garantir que não haverá perda de dados.Para obter a melhor chance de retomar com sucesso, conecte o USB no mesmo slot em que estava durante a hibernação. Não há problema em executar a máquina host a partir de seu próprio sistema operacional enquanto o USB estiver em hibernação.