quinta-feira, 1 de maio de 2008

Mandriva One no Pendrive



Atenção: As informações contidas neste texto são consideradas obsoletas. Sendo útil apenas como referência histórica.


Mandriva Seed
O Aurelien Lefebvre liberou o Mandriva Seed, que e um programa para copiar o iso do Mandriva One 2009.1 para um pendrive ou similar. Pode ser baixado do diretório devel/tools/ de um dos mirror da mandriva.
ftp://ftp5.gwdg.de/pub/linux/mandriva/mandrivalinux/devel/tools/
Baixe o mandriva-seed.sh, para um diretório no seu sistema que tenha permissão de executar.
Torne-o executável com o comando chmod +x mandriva-seed.sh, e rode com ./mandriva-seed.sh
Precisa estar em um ambiente gráfico.
Uma tela do xterm pedindo password será aberta, digite a senha do root.
Janela do Mandriva Seed, mostrado abaixo, deve aparecer.

Use o botão Browse para escolher a imagem iso previamente baixado.
Plugue o pendrive, e aguarde alguns segundos, que ele vai aparecer na opção Target, caso tenha mais um pendrive, escolha a que vai ser usado.
Agora e só clicar em "Create Live USB" e esperar a conclusão, feito, e só fechar o programa, remover (ou não) o pendrive e fazer o boot por ele.
Não esqueça de fazer um backup do conteudo do pendrive, já que o mesmo será sobre escrito.


Os procedimentos abaixo ainda não foi testando com a versão 2009.1 do Mandriva One.

Indrodução
Mandriva e uma distribuição que se formou pela junção do Mandrake e da Conectiva, A Mandriva vende uma versão especial para ser rodado direto do pendrive, o Mandriva Flash. Infelizmente ela não disponibiliza uma imagem dessa versão para download. O que me motivou a tentar carregar o versão para cd do Mandriva Linux One a partir de um pendrive. Depois de algumas horas de pesquisas (leitura) e tentativas empiricas, resultou nesse artigo.

Material necessário:
Imagem iso do Mandriva Linux One 2008 Spring, que pode ser baixando de
http://www.mandriva.com/ .
Um pendrive ou cartão de memoria com mais de 700MB livres, formatado em fat (fat16 ou fat32 conforme a capacidade da mídia) e que não tenha arquivos importantes.
Um sistema linux (pode ser o próprio Mandriva one), com as seguintes ferramentas:
module-init-tools (depmod) com suporte a zlib
syslinux
kernel com suporte ao squashfs
dosfstools (mkdosfs)
Opcional: install-mbr(1) ou lilo

Procedimentos:
Criar uma partição fat no pendrive, e torna-la ativa (se necessário).
# fdsik /dev/sde

Formatar a partição em fat se necessário, com label MandrivaOne.
# mkdosfs -F16 -n MandrivaOne /dev/sde1
Se o pendrive estiver formatado, somente mude o label para MandrivaOne, que pode ser realizado pelo mlabel (mtools).

Copiar o conteúdo do cdrom do "Mandriva Linux one 2008 spring" para o pendrive.
# cd /media/MandrivaOne
# cp -rv /media/cdrom/ .

Modificando o initrd:
Caso queira, não e necessário realizar esta etapa, veja no final do texto como fazer pelo Windows XP, use o initrd indicado.
O initrd procura o cdrom pelo nome do volume e faz o mount. Temos que mudar a linha que faz a montagem no linuxrc para que em vez do iso9660 use o vfat. A imagem não possui os modulos para montar um sistema de aquivos em vfat, nem os para suporte a discos (HDs e pendrives e similares). Fazendo as devidas adaptações e possivel usar outros sistemas de arquivos, como o ext2, e montar como um branch do unionfs, e ter um sistema gravavel.

Montar o /media/cdrom/loopbacks/distrib.sqfs, squashfs.
# mkdir /mnt/squash
# mount -t squashfs -o ro,loop /media/cdrom/loopbacks/distrib.sqfs /mnt/squash

Descompactar o boot/cdrom/initrd.gz que esta no pendrive
# cd boot/cdrom/
# gzip -d initrd.gz

Montar o initrd
# mkdir /mnt/initrd
# mount -t ext2 -o rw,loop /media/MandrivaOne/boot/cdrom/initrd /mnt/initrd

Copiar os modulos sd_mod,vfat,fat e msdos para o initrd
# cd /mnt/initrd/lib/modules/2.6.24.4-desktop586-1mnb/kernel/fs
# cp -a /mnt/squash/lib/modules/2.6.24.4-desktop586-1mnb/kernel/fs/msdos/ .
# cp -a /mnt/squash/lib/modules/2.6.24.4-desktop586-1mnb/kernel/fs/fat/ .
# cp -a /mnt/squash/lib/modules/2.6.24.4-desktop586-1mnb/kernel/fs/vfat/ .
# cp /mnt/squash/lib/modules/2.6.24.4-desktop586-1mnb/kernel/fs/nls/nls_cp437.ko.gz nls/
# cd ../drivers/scsi/
# cp /mnt/squash/lib/modules/2.6.24.4-desktop586-1mnb/kernel/drivers/scsi/sd_mod.ko.gz .
# cd

Atualizar as dependências dos modulos do kernel
# depmod -a -b /mnt/initrd 2.6.24.4-desktop586-1mnb

Editar o linuxrc que esta no initrd
# cd /mnt/initrd
# (editor predileto) linuxrc
e incluir as seguintes linhas, junto a linhas similares
probe-modules sd_mod
probe-modules nls_cp437
probe-modules vfat
#
mudar a linha
nash-mount -o ro -t iso9660 LABEL=MandrivaOne /live/media
para
nash-mount -o ro -t vfat LABEL=MandrivaOne /live/media
mude o ro para rw caso queira gravar no pendrive enquanto roda o live mandriva.
grave o arquivo e saia do editor.

Desmontar o initrd
# umount /mnt/initrd

compactar o initrd
# cd /media/MandrivaOne/boot/cdrom/
# gzip -9 initrd
Verifique se o initrd.gz esta com a data atualizada.

Instalando o syslinux:
Copiar o boot/cdrom/syslinux.cfg para a raiz do pendrive
# cd /media/MandrivaOne/
# cp boot/cdrom/syslinux.cfg .
# cd

Desmontar o pendrive
# umount /media/MandrivaOne/

Instalar o syslinux, sde1 e a partição no pendrive.
# syslinux /dev/sde1

Como o syslinux esta instalado na partição, e necessário copiar um mbr para o raiz do pendrive.
# cat /usr/lib/syslinux/mbr.bin >/dev/sde
Pode ser que esse mbr não funcione corretamente (tela somente com um cursor piscando), nesse caso e necessário instalar ou um outro, que pode ser feito usando o install-mbr ou pelo lilo
# install-mbr /dev/sde
ou
# lilo -M /dev/sde mbr
Agora, e só testar o boot.
O syslinux não ira mostrar corretamente os menus e o gráficos como no boot pelo cdrom.

Windows XP:
Pelo windows não seria possível fazer algumas das modificações necessárias no initrd, sendo necessário usar um pré modificado.
 
Baixe o initrd modificado desse endereço:
http://_enigma.nobel.com.br_/eeepc/mandriva_initrd.gz
Renomeia para initrd.gz

Baixe o syslinux para o windows
http://syslinux.zytor.com/
http://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-3.63.zip
Descompacte em algum ponto do seu hd, recomendo na raiz de alguma partição.

Em um pendrive formatado em fat (fat16 ou fat32), não pode ser NTFS, mude o nome do volume onde pretende instalar o Mandriva para MANDRIVAONE (propriedades do drive).

Use algum programa que abra aquivos .iso, como o winrar ou um emulador de cdrom, e copie o conteúdo para a raiz do pendrive.
Copie o initrd.gz previamente baixado para o boot/cdrom do pendrive, copie o syslinux.cfg para a raiz o pendrive.

Abra um prompt de comandos, mude para o diretório onde esta o win32/syslinux.exe.
c:\
cd c:\syslinux-3.63\win32
syslinux -m -a U:

onde U: e a letra correspondente ao pendrive.

Não garanto que esse procedimento funcione.


1) install-mbr foi escrito para o projeto Debian por Neil Turton.

20 comentários:

Anônimo disse...

Putz!!! Ate que enfim um tutorial de Mandriva+Pendrive que funciona! E faz sentido...

Uma dica: Para quem tem MP3/pendrive, nao use partições. Trabalhe direto com o /dev/sdX, para formatar use "mkdosfs -v -F16 -I /dev/sdX".

Perfeito no meu eeePC. Agora tem um linux de verdade no meeeupc...

Parabéns pelo trabalho.

Glaydson disse...

Em /mnt/initrd/lib não tem a pasta modules apenas module-init-tools. Será que tem diferença da versão Gnome que baixei do Mandriva?

Anônimo disse...

Cara estou fazendo como manda na parte de instalar via Windows XP mas, quando peço para configurar o syslinux.cfg na pasta raiz do pen driver não mostra as mudanças.
Então quando dou boot no PC pela USB aparece o seguinte erro:

Boot error
tem como solucionar isso?
Abraços

PMelo disse...

é só pra copiar o syslinux.cfg na raiz do pendrive, cara.

Anônimo disse...

Onde fica esse arquivo syslinux.cfg? porque eu baixo o programa para fazer as modificações e continua o mesmo erro =/

Abraços

pksato disse...

A parte de instalação pelo windows XP e somente uma informação extra, os detalhes devem ser preenchidos lendo o texto completo, uma chance para pessoas que nunca usaram linux, possam testar o Mandriva, e se possível abandonar de vez o windows e as suas dores de cabeça.
Por favor, leia o texto completo, principalmente a parte que se refere ao syslinux.
E, caso queira uma resposta direta, deixe o endereço de email.

Anônimo disse...

Bem do jeito que explica na parte do Windows o tutorial deixa claro que é para usuários que não tem o Mandriva instalado mas, tem que seguir o tutorial da 1º parte onde está explicando com as linhas de comando?
Ainda estou tendo problema na hora de copiar o syslinux.cfg na pasta raiz do pen driver e a formatação como fica no Windows XP?
Só da para formatar em FAT32
De qualquer forma vou deixar meu email gfenrrir@hotmail.com

Abraços =)

PMelo disse...

O procedimento pelo windows xp funciona direitinho, só não consegui ainda com a versão GNOME do mandriva 2008.1

Anônimo disse...

Enão me ensina pelo windows xp que não estou conseguindo

tem que formatar o pen driver em que modo?
tem que redimencionar o pendriver

e o syslinux como uso ele

do jeito que está nesse tutorial não está funcionado =/

abraços

Megaf disse...

pksato, pro One dar boot no EeePC e em outros computadores, precisa fazer os dois ultimos passos diferentes.

Antes do fazer
# syslinux /dev/sde1
tem que instalar o lilo. Assim:
# lilo -M /dev/sd[x] mbr (onde [x] eh a letra correspondente ao dev.

e depois, em vez de syslinux /dev/sde1
fazer:
# syslinux -s /dev/sd[x]1

isso elimina essa etapa >
Como o syslinux esta instalado na partição, e necessário copiar um mbr para o raiz do pendrive.
# dd if=/usr/lib/syslinux/mbr.bin of=/dev/sde bs=404 count=1

Pois o lilo ja faz, eu acho.

PMelo disse...

Cara:
1- Vai em Meu computador, e clica com o botão direito no pendrive, formatar.
lá formata em fat32, e coloca o rótumo do volume a palavra MANDRIVAONE, e faz uma formatação rapida.
2- Copia TODOS os arquivos do cd(ou iso), pra raiz do pendrive.
3- Na pasta boot>cdrom, vc coloca o arquivo initrd.gz novo, do tutorial do sato. Nessa mesma pasta, você copia o arquivo syslinux.cfg para a raiz do pendrive. Ou seja, no F:, ou seja lá qual for a letra do seu pendrive.
3- Roda o syslinux com o comando "syslinux -m -a F:" na pasta q vc instalou o syslinux

Agora foi?

Anônimo disse...

tentei de tudo e nada deu certo..

Uso o ubuntu 7.04 e tentei pelo windows XP e nada

Pelo win ele deu o boot mas pediu login e senha e não inicializou o ambiente gráfico.

Pelo ubuntu ele dá erro no disco, o que pode ser?

meu e-mail guilherme[dot]ostrock[at]gmail[dot]com

Anônimo disse...

Pmelo fiz do jeito que você explicou, mas na hora de dar boot pelo pen driver aparece a seguinte mensagem:

SYSLINUX 3.63 2008-04-10 CBIOS Copyright (C) 1994-2008 Peter Anvin

Unknown keyword in configuration file.

boot:
Loading /boot/umlinuz
Loading /boot/cdrom/initdr.gz

depois dessa tela começa a dar erro de sintaxe e fica em uma tela parecida com o console, mas não funciona nenhum comando =/

alguem sabe como resolver esse problema?

Abraços

PMelo disse...

confere se é a versão certa do mandriva: 2008.1 spring KDE

e se o pendrive tá formatado em fat32 e com o nome certo: MANDRIVAONE

Anônimo disse...

Cara dessa vez deu certo ^^
Obrigado pela ajuda

o problema era que estava usando o Mandriva 2008.0 por isso que dava erro de sintaxe.

Mas seria conveniente criar uma partição swap no pen driver?
já que o meu é de 4Gb da Kingston
ah e outra coisa e seu eu quiser salvar minhas configurações e instalar programas, vou poder usar em outro PC sem problema?


Abraços =)

Anônimo disse...

Ei só mais uma coisa não estou conseguindo acessar o HD depois que carrega o sistema pelo pendriver e sem tem jeito de dimunuir
o tempo de espera logo no inicio do boot demora pelo menos uns 40s antes de começar a dar boot pela USB

falo do arquivo syslinux eu vi em um editor de texto

Abraços

Danniel Lara Souza disse...

Cara eu fiz Diferente eu pluguei meu pen de 4G no pc e coloquei meu DVD Mandriva Power Pack 2008.1 e mandei instalar no pen ocorreu tudo bem funcionou 100%

windsword disse...

hola, no se Portugues, pero quiero preguntar que: cuanddo trato de montar distrib.sqfs /mnt/squash/ me da un error, "mount: wrong fs type, bad option, bad superblock etc, etc," pero dmesg | tail dice, SQUASHFS error: Major/Minor mismatch, trying to mount newer 3.1 filesystem
SQUASHFS error: Please update your kernel"

como arreglo este problema?

Hi, I don't speak nor write Portuguese, I ran into a problem when I try to mount dristib.sqfs and dmesg | tail tells mthat I'm trying t mout newer 3.1 filesystem and that I update the kernel, how do I fix this problem
my system is : linux 2.6.25.4-10-pae please help!!

// Salvador - Chicago IL -USA

Anônimo disse...

olá amigo,sou iniciante no linux e gostaria de saber como faço para instalar o mandriva conectiva 2008 e o windows xp no hd e ter opção de boot?

Desde já agradeço....

Anônimo disse...

Valei-me!!!! nao consigo entender esses montes de codigos complicados! talvez por isso que muita gente nao tem paciencia pra usar esse sistema em que apesar de estar parecendo mais amigavel ainda tem muito labirinto. Eu baixei o mandriva one 2009 live cd, o dvd, o umbuntu 8.10, o fedora 10, o fedora 11 beta, o kurumin, o linux vista aero 3D e putz nao consigo fazer funcionar as duas partiçoes q tenho no meu hd sata, os efeitos 3d desktop mas esse eu ja sei q minha placa mae nao suporta. Ja mexi, remexi no arquivo mtab, fstab pra fazer ativar a partição d e nao consigo, ja tentei ler tutoriais de como instalar o amsn mas sempre falta algo no meio do caminho e me perco de onde buscar mais informação. DESISTO, acabo voltando pro windows q nao me traz nenhuma dificuldade e pra instalar programas, pra usar hds, partiçoes... Ainda nao é a hora do linux chegar nas residencias do usuario domestico. Quem quiser comunicaar... enegreiros@hotmail.com