Tenho uma máquina dual boot com duas instalações Linux, uma é meu sistema principal e a outra é um tipo de instalação de recuperação para usar caso algo dê errado com a instalação principal (para consertar a principal ou até mesmo para usá-la em uma situação de emergência).
Como tento manter essa instalação secundária atualizada, é preciso atualizar regularmente os pacotes, etc. O problema é que isso exige inicializá-la de tempos em tempos, o que consome tempo e, para não dizer, é muito chato.
Para resolver isso, configurei uma máquina convidada VMware que usa o segundo disco físico de instalação como seu disco virtual, o que me permite manter essa segunda instalação como uma tarefa em segundo plano (na maior parte do tempo).
O problema é que existem alguns riscos conhecidos do uso de discos físicos em VMs, sendo os mais importantes que vale a pena mencionar:
- A possibilidade de inicializar a VM enquanto o sistema operacional principal tem uma ou mais de suas partições também montadas, muitas vezes levando à corrupção e perda de dados.
- VMware para usar acidentalmente o disco físico errado devido à nomenclatura uniforme do kernel de dispositivos não ser garantida em cada inicialização. Pelo menos teoricamente, o mesmo disco pode ser atribuído a diferentes
/dev/sdX
nós em diferentes inicializações.
Como eu poderia evitar que essa situação acontecesse?
Para abordar os riscos mencionados na questão, escreveremos uma regra udev que garante que o VMware sempre usará o disco correto. Além disso, a menos que explicitamente montado pelo usuário, ele também garante que nenhuma de suas partições será montada automaticamente por utilitários e ambientes baseados em udisks (geralmente em
/run/media/<user>/...
):Você pode salvar o arquivo abaixo como
/etc/udev/rules.d/70-persistent-vmdk.rules
Em seguida, configure o VMware para usar
/dev/vmdisk0
em vez do nome canônico do dispositivo (como/dev/sda
,/dev/sdb
,/dev/nvme0n1p1
, ...).Note que o vmware inicialmente se recusará a adicionar um dispositivo físico se você especificar um symlink como o caminho do dispositivo. Tudo bem, primeiro crie-o usando seu nome canônico, depois feche o vmware e edite o arquivo vmdk.
Deve haver uma linha parecida com esta:
Substitua apenas o nome do dispositivo e não toque em mais nada :
Claro que você pode aumentar essas regras do udev para adicionar mais discos com base em seus números de série e nomeá-los
/dev/vmdisk2
,/dev/vmdisk3
...OBS: Isso foi testado no VMWare Workstation 17.5
O principal objetivo de postar esta pergunta foi compartilhar as técnicas que desenvolvi e que podem ajudar outras pessoas, então estou respondendo minha própria pergunta.
Quaisquer melhorias e outras respostas que o complementem são mais que bem-vindas.