Eu segui o meu plano original e tenho que dizer que funcionou muito bem. Para aqueles em uma situação como a minha, onde o O.S. instalado tem uma pegada relativamente pequena (ou seja, é menor do que as unidades USB de baixo custo) e o disco rígido onde o O.S. está atualmente instalado é a unidade de destino para migrar o sistema para um novo O.S., esse método de migração deve ser bastante eficaz. Ele fornece uma cópia de trabalho do seu O.S atual, que pode ser inicializado a qualquer momento, bem como uma cópia, acessível como uma partição de dados após a conclusão da migração, de todos os arquivos e pastas localizados sob o antigo O.S. Isso envolve apenas a obtenção de uma unidade USB com o tamanho necessário (na verdade, eu obtive uma unidade de 32 GB), formatando-a como ext2, tornando-a inicializável com o syslinux, copiando todos os dados do antigo O.S. (na verdade ainda está em execução) para a unidade USB e, finalmente, reinicializar o sistema usando a unidade USB. Etapas mais detalhadas abaixo (instruções para um BIOS legado, sistema não-uefi).
O que é necessário: uma unidade USB de tamanho apropriado, um sistema que tenha o syslinux instalado e o utilitário rsync em execução a partir do O.S., que será substituído em breve.
-
Adquira uma unidade USB do tamanho necessário, insira-a no sistema, crie uma partição, formate-a ext2 e defina o sinalizador de inicialização para a partição (usei o gparted nas últimas 3 etapas).
-
Torne a unidade inicializável usando o syslinux: a partir de um sistema com o syslinux instalado, execute
dd bs=440 count=1 if=/usr/lib/syslinux/bios/mbr.bin of=/dev/sdx
("x" sendo substituído pela letra da unidade USB inserida). -
Monte a unidade e copie os arquivos necessários para o syslinux, do sistema em que o syslinux foi instalado, usando o comando
cp /usr/lib/syslinux/bios/*.c32 /syslinux-boot/syslinux/
(esses arquivos pertencem ao diretório / boot / syslinux, mas como esse diretório pode ser sobrescrito na etapa 4., estamos temporariamente renomeando, neste estágio, / boot para / syslinux-boot) -
Copie todos os arquivos do antigo O.S. para a unidade USB usando o comando
rsync -aHAXx / /mount/point-of/USB-drive
(/ é o diretório raiz do seu sistema operacional antigo, a partir do qual você está executando rsync, enquanto / mount / ponto-de / unidade USB será qualquer ponto em que você montou seu drive USB ). Este processo pode levar muito tempo: no meu sistema, com portas USB2.0, demorou mais de 12 horas; então seja paciente. -
Quando a cópia estiver concluída, mova o diretório syslinux localizado no diretório / syslinux-boot na unidade USB para o diretório / boot na unidade USB.
-
Edite ou crie um arquivo syslinux.cfg dentro do diretório / boot / syslinux na unidade USB. Isso pode ser um pouco complicado, pois você precisará saber o nome e a localização exatos do kernel e do initramfs que deseja usar ao inicializar a unidade USB. Você também precisará estipular a localização do sistema de arquivos raiz na unidade USB, pois ela será vista pelo BIOS do seu computador. Meu arquivo syslinux.cfg foi apropriado diretamente do wiki do Arch, com apenas algumas pequenas edições para adaptá-lo ao meu sistema. Parece algo assim:
(/ dev / sdc1 é a localização da unidade USB no meu sistema)
- Reinicialize o computador, selecione na BIOS a unidade USB recém-copiada como a mídia de inicialização e ela deve inicializar praticamente como sempre. Agora você pode desativar o disco rígido atual e instalar seu novo O.S. para isso, copiando os dados que serão necessários a partir da instalação antiga, uma vez que o novo O.S. está instalado e inicializando.
Reflexões:
-
Por quanto tempo um O.S. originalmente instalado em um disco rígido ser executado a partir de uma unidade USB? Eu não faço ideia. Eu acho que deveria ser um período relativamente curto (talvez alguns dias?), Uma vez que, se rodando a partir da mídia flash, configurações especiais são necessárias para minimizar os ciclos de leitura / gravação. Meu plano é executar o sistema antigo a partir de USB por não mais que uma semana ou duas.
-
Tornar a unidade inicializável provavelmente poderia ser feito com o GRUB. Eu sou a favor do syslinux sobre o GRUB, então eu realmente não investiguei esse caminho.
-
Não tenho certeza se o sistema de arquivos vfat pode ser usado em um esquema como este. Pensei em usar f2fs, o que acho interessante para projetos USB. Por último, verifiquei que as partições f2fs não podem ser inicializadas; tal variação na solução atual provavelmente exigiria colocar 2 partições na unidade USB - uma pequena partição ext2 / boot para kernel, initramfs e arquivos de inicialização, e então a partição de dados principal formatada como f2fs. Mais edição adicional do syslinux.cfg
-
Se houver alguma possibilidade, a unidade USB inicializável executando seu antigo O.S. será usado em algum outro computador, será melhor usar o UUID da unidade em seu arquivo syslinux.cfg em vez do caminho do dispositivo, como usei. O comando blkid fornecerá as informações necessárias para fazer isso.
Créditos: o wiki do Arch (principalmente link )