NB: Aqui apresento a maneira manual de proceder. É um pouco mais complicado (não pensamento impossível), mas você pode controlar exatamente o que você quer / precisa. Se você não entende nada, talvez usar um software como o MultiSystem seria uma solução melhor para você.
Existem duas maneiras de criar essa chave usb. Você pode usar uma tabela de partição mdos / MBR ou uma tabela de partição GPT. Ambos têm vantagens e desvantagens, vou tentar descrever a versão do mdose primeiro, e posso vir para a versão do GPT mais tarde, quando tiver mais tempo.
tabela de partição mdos / MBR
Primeiro, certifique-se de ter todos os seus dados de backup. Essa operação pode ser perigosa se você não souber o que faz e pode apagar seu disco rígido se fizer manipulações incorretas, portanto, certifique-se de saber o que está fazendo antes de digitar um comando.
Etapa 1: encontre seu dispositivo usb
Use o comando
lsblk
para encontrar o nome do seu dispositivo USB. Você pode, por exemplo, executar lsblk
, conectar sua chave e executar mais uma vez lsblk
para ver o que mudou. O dispositivo que aparece é sua chave e será anotado em /dev/sdX
.
Etapa 2: crie as partições
Você pode usar qualquer programa que desejar: gparted
, fdisk
, cfdisk
(uma ferramenta de linha de comando para fdisk
) ... Em seguida, faça as seguintes operações
- Primeiro inicie o programa (
sudo gparted
ousudo fdisk /dev/sdX
dependendo do programa escolhido) - Em seguida, redefina seu dispositivo para ter uma tabela de partições
msdos
(emgparted
está em "Dispositivo / Criar uma nova tabela de partições", comfdisk
typeo
. - Em seguida, crie três partições. O primeiro é em FAT32, será a partição de dados (pode ser também NTFS, ext ou qualquer outro sistema de arquivos), o segundo é uma partição EFI (baseada em FAT) e deve ser inicializável e em torno de 150M, o a última é a partição com o iso e deve ser inicializável e em FAT32 (se você usar o ext2, se inicializará, mas não poderá usar a persistência). Aqui está o que você gostaria de ter no final do processo (por favor, observe as bandeiras (drapeau na foto), elas são importantes):
Se você quiser criá-los com fdisk
, você deve ter algo assim:
$ sudo fdisk -l /dev/sdc
Disque /dev/sdc : 14,3 GiB, 15376000000 octets, 30031250 secteurs
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Type d'étiquette de disque : dos
Identifiant de disque : 0x2d844503
Périphérique Amorçage Début Fin Secteurs Taille Id Type
/dev/sdc1 2048 14682111 14680064 7G b W95 FAT32
/dev/sdc2 * 14682112 14989311 307200 150M ef EFI (FAT-12/16/32)
/dev/sdc3 * 14989312 30031249 15041938 7,2G b W95 FAT32
Para isso, siga estas etapas:
sudo fdisk /dev/sdX
o
n
p
1
<Enter>
+7G # Or any size you want, just be sure to let arount 2G at the end of the device
t
b
n
p
2
<Enter>
+150M
t
ef
n
p
3
<Enter>
<Enter>
t
b
w
sudo mkfs.fat -F32 /dev/sdX1
sudo mkfs.vfat /dev/sdX2
sudo mkfs.fat -F32 /dev/sdX3
Etapa 3: monte as partições
Agora, monte-os para escrever neles
mkdir /tmp/usb{2,3}
sudo mount /dev/sdX2 /tmp/usb2/
sudo mount /dev/sdX3 /tmp/usb3/
Passo 4: Instale o grub nas duas partições (EFI e não-EFI)
Então, você precisa instalar o grub nas duas partições. Certifique-se de ter o grub instalado e, em seguida, execute:
sudo grub-install -v --no-floppy --boot-directory=/tmp/usb3 --target=i386-pc /dev/sdX
sudo grub-install -v --no-floppy --boot-directory=/tmp/usb2 --efi-directory=/tmp/usb2 --removable --target=x86_64-efi /dev/sdX
Passo 5: Copie o arquivo iso e configure o grub
Copie o arquivo iso na seguinte pasta:
sudo cp <your iso file> /tmp/usb3/linux-iso
e coloque a configuração do grub nas duas configurações do grub /tmp/usb2/grub/grub.cfg
e /tmp/usb3/grub/grub.cfg
(NB: pode ser grub2 / grub.cfg dependendo da sua versão do grub)
insmod loopback
insmod iso9660
menuentry 'XUbuntu 16.04 "Xenial Xerus" - amd64' {
set isofile="/linux-iso/xubuntu-16.04.1-desktop-amd64.iso"
search --no-floppy --set -f $isofile
loopback loop $isofile
linux (loop)/casper/vmlinuz.efi locale=fr_FR bootkbd=fr console-setup/layoutcode=fr iso-scan/filename=$isofile boot=casper file=/cdrom/preseed/ubuntu.seed noprompt ro quiet splash noeject --
initrd (loop)/casper/initrd.lz
}
NB: você deve editar este arquivo para combinar com o bom arquivo iso, aqui nós supomos que nós colocamos o arquivo em /tmp/usb3/linux-iso/xubuntu-16.04.1-desktop-amd64.iso
.
Reinicialize e experimente nos modos UEFI e não-UEFI: ele deve funcionar, mas você não deve ter persistência ainda!
Etapa 6: adicione persistência única
Adicionar persistência é muito fácil. A idéia é criar na terceira partição (na verdade, qualquer partição FAT32 seria aceita) um arquivo vazio casper-rw
que conterá algum sistema de arquivos ext2. Ele será posicionado acima do arquivo iso, de forma que, se o sistema for modificado, o arquivo casper-rw
registrará essas modificações. Se você deseja gravar somente a home, faça exatamente as mesmas etapas, mas com o nome de arquivo home-rw
em vez de casper-rw
(pode ser útil se você se importar apenas com os dados do documento e se preferir evitar os problemas com persistência completa explicada depois). Finalmente, observe que, em vez de um arquivo, você pode criar uma partição no ext2 cujo rótulo é casper-rw
ou home-rw
e fornecerá exatamente o mesmo resultado, exceto que você poderá ter mais de 4 Gb de modificações ( tamanho máximo no sistema FAT32).
Para criar o arquivo, basta executar:
sudo dd if=/dev/zero of=/mnt/usb3/casper-rw bs=1M count=512
(aqui é 512M, mas você pode alterar o tamanho dos dados até 4G)
e adicione persistent
na linha linux ...
nos arquivos /mnt/usb{2,3}/grub/grub.cfg
(modifique os dois arquivos). Deve ser assim:
insmod loopback
insmod iso9660
menuentry 'XUbuntu persistent 16.04 "Xenial Xerus" - amd64' {
set isofile="/linux-iso/xubuntu-16.04.1-desktop-amd64.iso"
search --no-floppy --set -f $isofile
loopback loop $isofile
linux (loop)/casper/vmlinuz.efi locale=fr_FR bootkbd=fr console-setup/layoutcode=fr iso-scan/filename=$isofile boot=casper persistent file=/cdrom/preseed/ubuntu.seed noprompt ro quiet splash noeject --
initrd (loop)/casper/initrd.lz
}
Agora reinicie: você deve ter persistência! Você pode até mesclar arquivos persistentes e não persistentes como este:
insmod loopback
insmod iso9660
menuentry 'XUbuntu 16.04 "Xenial Xerus" - amd64' {
set isofile="/linux-iso/xubuntu-16.04.1-desktop-amd64.iso"
search --no-floppy --set -f $isofile
loopback loop $isofile
linux (loop)/casper/vmlinuz.efi locale=fr_FR bootkbd=fr console-setup/layoutcode=fr iso-scan/filename=$isofile boot=casper file=/cdrom/preseed/ubuntu.seed noprompt ro quiet splash noeject --
initrd (loop)/casper/initrd.lz
}
menuentry 'XUbuntu persistent 16.04 "Xenial Xerus" - amd64' {
set isofile="/linux-iso/xubuntu-16.04.1-desktop-amd64.iso"
search --no-floppy --set -f $isofile
loopback loop $isofile
linux (loop)/casper/vmlinuz.efi locale=fr_FR bootkbd=fr console-setup/layoutcode=fr iso-scan/filename=$isofile boot=casper persistent file=/cdrom/preseed/ubuntu.seed noprompt ro quiet splash noeject --
initrd (loop)/casper/initrd.lz
}
Múltipla persistência
No momento, todo o sistema operacional na chave tem o mesmo arquivo de persistência. E se é um casper-rw
que é compartilhado, se pode quebrar tudo (os dados em um sistema operacional não tem nada a ver com os dados no outro sistema operacional). Para ter um arquivo persistente para cada sistema, é muito fácil, coloque o arquivo em uma determinada pasta, por exemplo persist/xubuntu
:
mkdir /mnt/usb3/persist/xubuntu/
sudo dd if=/dev/zero of=/mnt/usb3/persist/xubuntu/casper-rw bs=1M count=512
e adicione persistent persistent-path=/persist/xubuntu
nos arquivos grub.cfg
:
insmod loopback
insmod iso9660
menuentry 'XUbuntu persistent 16.04 "Xenial Xerus" - amd64' {
set isofile="/linux-iso/xubuntu-16.04.1-desktop-amd64.iso"
search --no-floppy --set -f $isofile
loopback loop $isofile
linux (loop)/casper/vmlinuz.efi locale=fr_FR bootkbd=fr console-setup/layoutcode=fr iso-scan/filename=$isofile boot=casper persistent persistent-path=/persist/xubuntu file=/cdrom/preseed/ubuntu.seed noprompt ro quiet splash noeject --
initrd (loop)/casper/initrd.lz
}
Você também pode notar que não encontrei uma maneira de ter uma partição casper-rw
para cada sistema operacional, portanto, não vejo como ter persistência múltipla e persistência de mais de 4 GB para todo o sistema operacional.Se alguém tiver uma ideia, ficarei feliz em saber disso. Talvez a montagem da partição possa resolver temporariamente esse problema?
Desvantagem da persistência
Quando você usa persistência, deve estar ciente de que a atualização pode ser perigosa. Ele poderia realmente quebrar seu sistema se as modificações tocassem o kernel, então evite fazer muito dele. Além disso, às vezes não se encaixa bem quando você muda o computador, algumas pessoas explicam que perderam a internet quando o cartão da internet mudou. Se você quiser atualizar seu sistema, você deve instalá-lo diretamente na chave usb (como se a chave usb fosse um disco), mas este método pode falhar se você tentar a chave em um computador que precisa de software proprietário que não é incluído no sistema operacional instalado. Se alguém tiver uma solução que contorne essas desvantagens, ficarei feliz em saber disso.
Fontes
Para configurar o grub para combinar com outros sistemas ou se você quiser usar o GPT em vez do MBR, você pode se interessar pelos seguintes links:
Aproveite e não hesite em perguntar se você tem dúvidas.