Inicializando uma ferramenta Linux Live da partição FreeBSD UFS2

1

Eu gostaria de inicializar um CD do Live Linux, sem precisar do CD. Tomemos por exemplo GParted ou CloneZilla. Que eu periodicamente inicializo o Live CD deles. Mas eu gostaria de eliminar o uso da mídia de CD / DVD porque ela é lenta, barulhenta e propensa a erros (arranhões no disco). Eu preferiria carregar essas ferramentas do disco rígido do meu PC de serviço / reparo, o qual estou fazendo dualbooting entre Win7 (NTFS) e FreeBSD (UFS2) usando o Grub2.

Já pesquisei o suficiente para saber que a inicialização de imagens ISO não está funcionando bem (e também entendo o porquê), e a maneira de fazer isso é extrair o conteúdo dos Live CDs e inicializar esses arquivos diretamente.

Aqui está o que eu consegui até agora:

  • Copie os arquivos de dentro da imagem ISO para uma pasta na partição UFS2.
  • Traduza as entradas do menu isolinux do Live CD para um submenu grub2.

Quando eu seleciono um dos itens do submenu no tempo de inicialização do sistema, a entrada inicia a inicialização, mas depois de alguma saída promissora na tela, ela começa a cuspir a mesma mensagem desapontadora várias vezes.

modprobe: module unknown not found in modules.dep

Tenho certeza de onde e por que ele falha. Mas eu não sei se a arquitetura e o funcionamento interno dessas compilações do Live Linux são suficientes para dar o próximo passo. E minha pesquisa na Web não estava me dando resultados úteis.

Como um exemplo real, vou usar os arquivos do Live CD do GParted aqui. Os relevantes são:

  • filesystem.packages
  • filesystem.squashfs
  • initrd.img
  • vmlinuz

Estes eu coloquei em / boot / Gparted / live / na minha partição UFS2 ada0s2a ("hd0, msdos2, bsd1" em termos grub2).

As entradas do grub2 que eu montei a partir das entradas do syslinux do Live CD são ...

menuentry "GParted Live" {
  insmod part_msdos
  insmod ufs2
  set root=(hd0,msdos2,bsd1)
  linux /boot/Gparted/live/vmlinuz boot=live config noswap ip=frommedia nosplash
  initrd /boot/GParted/live/initrd.img
}

e a entrada "GParted Live (para RAM)" com todas as mesmas linhas, exceto para

  linux /boot/GParted/live/vmlinuz boot=live config noswap noprompt toram=filesystem.squashfs ip=frommedia nosplash

Parece-me que o arquivo filesystem.packages não é mencionado nessas entradas. E, novamente, eu não sei como o processo de inicialização do Linux deve funcionar aqui, mas estou convencido de que o problema que enfrento é porque o kernel carregado + initrd está tentando usar dados mantidos dentro do sistema de arquivos.packages ou filesystem.squashfs imagens e não as encontra.

Para resolver o problema, devo ajudar o kernel dizendo onde estão esses arquivos de imagem. A PERGUNTA é, como faço isso? Onde eu faço isso?

A referência ao filesystem.packages pode estar dentro do initrd.img em algum lugar. E eu posso usar gunzip e cpio para extrair o conteúdo desse arquivo de imagem. Mas ainda não sei o que procurar. E também, não estou convencido de que um kernel linux carregado + initrd.img tenha acesso a arquivos no meu sistema de arquivos UFS2 (não Linux). Talvez eu deva colocar os arquivos em uma partição Ext2 separada.

Sugestões, explicações e dicas são bem-vindos!

    
por Keve 24.05.2016 / 20:32

1 resposta

1

SOLUÇÃO ENCONTRADA!

A página GParted ao vivo no disco rígido descreve muito bem o que é necessário fazer para inicializar o GParted Live de arquivos copiados para uma pasta no disco rígido. Eu também encontrei algumas outras perguntas aqui no SuperUser similar à minha pergunta. E eu encontrei referências para

http://www.kernel.org/doc/Documentation/kernel-parameters.txt

e

https://www.kernel.org/doc/Documentation/x86/boot.txt

que são documentos excelentes de seu próprio assunto, mas provaram ser completamente inúteis para o meu problema. Primeiro, porque eles contêm muitos detalhes para serem lidos, e segundo, porque os argumentos que eu estava procurando não foram incluídos. Por isso, mostro-as deliberadamente aqui, não como um link, mas apenas como texto.

Alguns detalhes importantes a serem observados:

  • O sistema Live NÃO pôde BOOT corretamente se os arquivos estavam na minha partição UFS2 porque a imagem GParted baseada no Debian não pode acessar sistemas de arquivos ufs. Isso está em contradição com o fato de que, quando inicializo o Live CD e abro um XTerm, sempre consigo montar minha partição UFS2. Aparentemente, esse recurso de manipulação do ufs vem em um estágio posterior do processo de inicialização.
  • O sistema Live pode inicializar corretamente, no entanto, se os arquivos estiverem na minha partição NTFS. Então eu não precisei criar uma partição separada para Linux Ext2, Ext3, Ext4 ou FAT. Eu poderia usar a outra partição (Win7) da minha configuração de inicialização dupla.
  • A página "GParted Live on Hard Disk" inclui uma solução alternativa, fazendo com que o grub2 monte a imagem ISO real como um dispositivo de loop e, em seguida, inicialize a partir dela. Esta possibilidade foi muito do meu agrado, mas nunca consegui que funcionasse.
  • A maneira real como consegui que tudo funcionasse foi muito fácil depois de ler a página "GParted Live on Hard Disk", demorou menos de 5 minutos. E eu apliquei isso na minha versão existente do gparted-live-0.16.1-1-i486 que baixei há algum tempo atrás. Depois que tudo estava funcionando do jeito que eu queria, eu tentei o mesmo método com a versão mais recente (no momento da escrita de 2016-MAY-25) gparted-live-0.26.0-2-i686 (usei o ZIP porque eu não montar o ISO), mas isso continua falhando em inicializar corretamente. APENAS DIZENDO! Então você pode precisar experimentar várias versões para obter uma solução de trabalho.

AQUI ESTÁ O QUE FUNCIONA:

Os quatro arquivos do ISO GParted (ou ZIP) mencionados em minha postagem original foram copiados para uma pasta / GParted / na minha partição NTFS. Você pode nomear sua pasta como quiser, lembre-se de se referir a esse nome exato mais tarde. Em seguida, crie uma entrada no menu grub2 como esta:

menuentry "GParted Live" {
  insmod part_msdos
  insmod ntfs
  set root=(hd0,msdos1)
  linux /GParted/vmlinuz boot=live config union=aufs noswap noprompt ip=frommedia live-media-path=/GParted bootfrom=/dev/sda1 toram=filesystem.squashfs
  initrd /GParted/initrd.img
}

Espero que isso ajude os outros a resolver problemas semelhantes!

    
por 25.05.2016 / 20:56