Como montar uma imagem de disco rígido do OpenBSD no Linux?

4

Primeiro, vou começar explicando como obtive meu problema, isso me ajudará a entender o que preciso.

Há alguns meses, meu disco rígido portátil quebrou. Eu não tive nenhuma substituição rápida, mas precisei daquele laptop no dia seguinte, então tudo que eu consegui fazer foi extrair o drive de 2.5 "do meu roteador. O roteador era na verdade um PC ATX rodando o OpenBSD 4.9. Agora, já que eu precisava disso dirigir muito rapidamente, criei uma imagem com dd no meu computador de mesa, coloquei a unidade no laptop e instalei o Fedora.

OK, agora eu tenho um disco rígido substituto para o meu laptop, e antes de começar a instalar coisas no disco rígido que está voltando para o roteador, eu estava me perguntando como poderia montar a imagem que eu fiz quando começou ...

O ponto é, eu poderia fazer uma nova instalação do mais recente OpenBSD e depois usar coisas como arquivos de configuração da imagem. A única coisa que sei que posso fazer agora é simplesmente gravar a imagem no disco com dd . Isso deve funcionar e tudo isso, mas eu gostaria de aproveitar a oportunidade para atualizar o sistema também.

Eu tentei montar as partições do OpenBSD antes de fazer a imagem, mas não funcionou, e eu tive muito pouco tempo (apenas algumas horas nesta noite). Devo escrever a imagem no disco, então tente montá-lo, recuperar os arquivos que eu preciso e depois instalar o último OpenBSD?

    
por polemon 19.06.2013 / 04:50

2 respostas

3

O motivo pelo qual você não pode simplesmente montar as partições é porque você tem uma imagem disco e não imagens de partições individuais . Você precisaria dos deslocamentos das diferentes partições e as usaria quando montar usando suas opções de loop e offset.

No seu caso, eu reproduzia a imagem e depois atualizava, mas você não indica como conectou o computador de mesa de 2,5 "a você, ou como você vai fazer isso agora. Se você for usar USB A atualização antes da reprodução é provavelmente mais rápida (mas um pouco mais trabalhosa), supondo que a imagem esteja em uma unidade SATA interna.Por causa das diferenças de velocidade USB 2.0 vs SATA, o upgrade demorará mais. A reprodução da imagem (atualizada ou não) levará o mesmo tempo.

Se você quiser atualizar antes da reprodução, use o parted para encontrar o início das imagens. parted hd.img fornecerá uma lista de números de partição, início e fim. Com as informações iniciais, por exemplo, 12345, você pode montar uma partição na imagem do disco:

mount -o loop,ro,offset=12345 hd.img /mnt/tmp

Você pode precisar especificar o tipo de partição também se sua área de trabalho não a reconhecer. Você pode então atualizar sua nova instalação com essa informação, remontar a partição rw limpar a partição e escrever as coisas de volta. A única coisa que não tenho certeza é se isso consfuse o bootloader da placa ATX, mas atualizar um sistema restaurado para o disco teria o mesmo problema.

    
por 19.06.2013 / 07:57
1

Isso funcionou para mim:

losetup -r -P /dev/loop1 openbsd.dsk

No entanto, losetup(8) vem de:

# losetup --version
losetup from util-linux 2.22.2

e tem -P opção:

   -P, --partscan
          force kernel to scan partition table on newly created loop device

Eu posso ver as partições, em dmesg(1) e em /proc :

# dmesg
...
[43126.359869]  loop1: p4
 p4: <openbsd: p5 p6 p7 p8 p9 p10 p11 >

# grep -e loop1 /proc/partitions
   7        1  419430400 loop1
 259        0  419424988 loop1p4
 259        1     208845 loop1p5
 259        2     265041 loop1p6
 259        3     160650 loop1p7
 259        4    1052240 loop1p8
 259        5    4192960 loop1p9
 259        6     522112 loop1p10
 259        7  413023104 loop1p11

Versão mais antiga do losetup(8) não suporta a opção -P .

    
por 18.03.2014 / 01:34