Ter um drive externo é uma excelente maneira de dar vida a dispositivos antigos ou permitir rodar Linux em uma máquina que não pode (ou não quer) trocar o disco rígido interno. Digamos que você queira usar Linux em um sistema de dual boot, mas não tenha espaço livre no disco rígido do seu computador. Uma solução é usar uma distribuição Linux "ativa", como Knoppix, que pode rodar diretamente de um CD. Esse método funciona se usado ocasionalmente, mas tem várias desvantagens sérias:
Você ainda precisa de alguns arquivos de dados para permanência. Se você usar apenas arquivos muito pequenos, pode usar disquetes; Para arquivos de tamanho médio, um pen drive USB pode ser suficiente, mas nenhum deles é ideal.
Ao usar CDs "ativos", é muito difícil ou até impossível instalar seus próprios aplicativos ou personalizar os existentes.
Usar uma distribuição ativa desacelera o desempenho, principalmente quando a inicialização detecta todos os dispositivos – mas também em tempo de execução (porque tudo precisa ser carregado de um CD, o que geralmente é muito mais lento do que carregar de um disco rígido).
Naturalmente, existem outras opções. Por exemplo, você pode comprar outros drives embutidos e instalar Linux neles. Mas é comum a máquina provavelmente não ter baias para discos disponíveis (ainda mais para laptops, que geralmente só permitem um HD interno).
Alternativamente, você pode usar um drive maior em vez do atual e instalar Linux no espaço extra que obtém. No entanto, essa é uma opção demorada, pois exige que você reinstale o sistema operacional existente no novo disco, reinstale e reconfigure todos os aplicativos, e restaure todos os dados.
Uma solução melhor é comprar um HD externo e instalar Linux nele. Isso permite conectar discos externos apenas quando quiser usar Linux, sem alterar seu hardware e software existentes.
Opções de drive removíveis
A variedade de dispositivos móveis que podem instalar Linux neles varia desde drives de disquete até dispositivos USB flash, discos rígidos USB/FireWire e muito mais.
Embora seja verdade que o Linux possa ser instalado em dispositivos de pequena capacidade, como disquetes de 1,44MB ou discos USB de 32MB, esses são frequentemente (necessariamente) distribuições especializadas em escala reduzida, por exemplo, para resgatar instalações danificadas.
No entanto, discos rígidos externos oferecem a maior flexibilidade para uma distribuição Linux de uso geral a um custo razoável.
Drives externos vêm de vários fabricantes diferentes (Maxtor, Western Digital, etc.) e podem estar disponíveis em vários tamanhos. Esses drives contêm uma caixa externa que armazena unidades IDE padrão de 3-1/2" ou 2-1/2". Esses drives geralmente são conectados ao computador via USB ou IEEE1394 (FireWire).
Existem duas versões principais do USB, 1.1 e 2.0. A versão 1.1 tem velocidade máxima de transferência de 12 Mbit/s (megabits por segundo), enquanto a versão 2.0 suporta velocidades de transferência de até 480 Mbit/s. Embora a maioria dos drives compatíveis com 2.0 seja compatível com versões anteriores com a 1.1, geralmente é melhor evitar a 1.1, a menos que você não tenha outra escolha (porque é mais lenta).
O padrão FireWire também define muitas velocidades possíveis diferentes, mas, na realidade, sempre que as pessoas falam sobre FireWire, elas querem dizer "FireWire400", que suporta transmissões de até 400 Mbit/s.
Em termos de velocidade, não há muito o que escolher entre USB 2.0 e FireWire: embora o USB 2.0 reporte velocidades mais altas, eles são na verdade semelhantes por causa das diferenças. Se seu computador tiver ambos, pode ser melhor usar USB em vez de FireWire (explicarei o motivo depois), mas se você só tiver FireWire, claro que só pode escolher FireWire. Para máxima flexibilidade, escolha entre um grande número de drives que suportam USB 2.0 e FireWire (por exemplo, aquele que usarei mais adiante neste artigo).
FireWire e placas USB 2.0 são baratas para computadores que não têm as portas necessárias, PCI (para desktops) e PCMCIA (para laptops): por exemplo, a placa FireWire PCMCIA que usei mais adiante neste artigo custava cerca de 10GBP (menos de $20).
Para terminar este artigo, comprei uma caixa de drive externo de 5-1/4". Este é um pingente muito flexível que não vem com nenhum drive e pode caber em qualquer dispositivo IDE padrão, incluindo discos rígidos de 3-1/2" e dispositivos IDE de 5-1/4", como drives CD-RW/DVD-RW. O gabinete possui conectividade USB 2.0 e FireWire.
Para conectar a caixa de pratos ao meu laptop IBM Thinkpad T30, também comprei uma placa PCMCIA FireWire (a porta USB embutida só suporta USB 1.1).
Tanto o cartucho quanto o cartão FireWire são mais baratos (50GBP e 10GBP, respectivamente).
Para fins de teste, conectei a caixa de pratos com o drive IDE de 13GB 3-1/2" que preparei – no uso real, eu compraria discos de maior capacidade, que agora também são muito baratos (cerca de 50GBP por GB!). )
Suporte ao Linux
Como era de se esperar, o suporte ao Linux para essas bandejas é realmente bom. Qualquer dispositivo que siga o padrão SBP (Serial Bus Protocol) para "dispositivos de alto volume" pode ser facilmente usado com Linux.
De modo geral, para permitir suporte a esses dispositivos, o kernel precisa suportar muitas coisas (seja diretamente compiladas ou via módulos).
Para USB e FireWire, o suporte a dispositivos SBP é implementado via emulação SCSI – ou seja, os dispositivos são exibidos para Linux como se fossem discos SCSI. Essa é uma forma comum de abstrair dispositivos de armazenamento no Linux (por exemplo, drives de CD/DVD do IDE também são comumente conectados via emulação SCSI). Portanto, é necessário o seguinte suporte ao kernel:
* Suporte a SCSI
* Simulação SCSI
* Suporte a disco SCSI
Além disso, dependendo do método de conexão, pode ser necessário o seguinte suporte:
Para o FireWire:
IEEE1394 suporte
OHCI1394 suporte
RAW1394 Suporte
SBP-2 suportado
Para USB:
(Host) Suporte USB
Suporte à OHCI
Suporte ao UHCI
Suporte a armazenamento em massa por USB
Obviamente, você precisa suportar outros hardwares (placa de vídeo, etc.) de forma completamente normal, e dependendo da sua situação real de hardware, pode ser necessário outros módulos.
Por exemplo, eu uso uma placa FireWire PCMCIA (cardbus), então preciso acrescentar:
Suporte à PCMCIA
Suporte a cartônus
Instalação
Agora que temos um dispositivo externo, vamos começar a instalar Linux nele.
A maneira mais fácil de instalar Linux agora (na minha opinião, claro) é conectar todo o hardware (aqui, isso inclui conectar a placa FireWire PCMCIA, conectar o cabo FireWire à placa PCMCIA e ao drive, e ligar o interruptor de energia do drive); Depois, inicialize o computador com o CD de instalação da distribuição escolhida.
A distro que escolhi foi a Gentoo (veja referências para links relacionados), então usei o mais recente "Universal" x86 Live CD (2004.1). Outras distribuições devem exigir mais ou menos etapas do que as descritas aqui.
Depois de inicializar com o CD de instalação, ele deveria ter reconhecido seu drive, se você tiver sorte. O drive deve aparecer como um disco em /dev/sdX, onde X é uma letra minúscula começando com "a". No meu sistema, o drive externo é detectado como /dev/sda, mas se você tiver outros discos SCSI (simulados SCSI), isso muda; Nesse caso, pode ser /dev/sdb ou outra letra. Se o drive não for detectado automaticamente, podem ser necessários passos adicionais – por exemplo, você pode precisar ativar o FireWire ou PCMCIA via a opção de inicialização, ou pode ser necessário carregar manualmente alguns módulos do kernel ou algo do tipo (veja a referência para um link para o guia de solução de problemas).
Uma vez identificado o disco, ele deve realmente funcionar como um disco rígido interno para o restante da instalação a ser considerado; Então você deve conseguir particionar conforme necessário e instalar Linux normalmente.
Um aviso: tenha cuidado ao decidir onde instalar o bootloader (geralmente GRUB ou LILO) - recomendo não instalá-lo em um Master Boot Record (MBR), que geralmente é o padrão. Em vez disso, ele deve ser instalado na partição raiz (ou partição de boot, se estiver usando um bootloader separado) do disco externo.
Agora que temos o Linux instalado no dispositivo, vamos inicializar o Linux. Aqui estão algumas dicas para começar.
Orientação
Antes de discutir a inicialização de um novo drive, há algumas teorias sobre bootloader para entender.
O bootloader geralmente é instalado no MBR do primeiro disco rígido do computador. Quando o bootloader é invocado (a BIOS executa automaticamente o código no MBR), ele geralmente exibe um menu do sistema operacional que pode inicializar. Selecione um determinado sistema operacional de inicialização.
Há duas coisas a serem observadas sobre esse cenário:
* Menu de seleção do sistema operacional (geralmente) carregado do disco.
* Para inicializar o sistema operacional, o bootloader precisa ler o kernel relevante do disco.
Como o acima acontece antes do sistema operacional ser carregado, significa que todas as leituras de disco devem ocorrer da mesma forma que as chamadas da BIOS são feitas. Isso envolve problemas sérios: ou seja, para inicializar o disco diretamente, sua BIOS deve suportar discos conectados via FireWire ou USB. Isso pode ser visto frequentemente como uma opção da BIOS para inicializar a partir desses tipos de discos. Na verdade, o suporte ao BIOS FireWire é raro atualmente, mas o suporte a USB está se tornando bastante comum. Então, se você está usando USB em um computador relativamente novo, deve conseguir inicializar o drive diretamente no Linux.
Depois de instalar o GRUB no MBR de um drive externo, consigo inicializar o drive diretamente quando conectado via USB. Ao inicializar, o disco conectado está simplesmente entrando no programa de configuração da BIOS. O disco externo aparecerá como um disco rígido normal: mova o disco para que ele preceda o disco interno na ordem de inicialização.
Também posso instalar o bootloader no MBR do drive interno e usá-lo para inicializar o drive USB (neste ponto, ele aparece como HD1 no GRUB no GRUB). Se você estiver usando o FireWire, há a chance de que a BIOS não consiga inicializar o disco diretamente e exija algumas ações adicionais.
Felizmente, por causa da flexibilidade do Linux, se você não conseguir inicializar diretamente (com uma placa PCMCIA FireWire, esse é definitivamente o meu caso!). ), haverá soluções relativamente simples. Os passos iniciais de boot podem ser realizados a partir de um dispositivo suportado, como uma unidade de disquete, CD, chave USB ou uma pequena partição no drive principal, e então operações adicionais podem ser realizadas usando o disco externo.
Crie uma imagem de boot
O bootstrapping pode ser feito usando dois métodos:
* Guiamento de um estágio
O kernel inicializa, instala o sistema de arquivos raiz e continua com a inicialização chamando um script de inicialização (geralmente /sbin/init).
* Bootstrap em dois estágios (iniciado)
O kernel inicializa, instala o disco RAM inicial (initrd) e realiza uma inicialização personalizável adicional, e então instalar o sistema de arquivos raiz e prosseguir com a inicialização (geralmente também chamando /sbin/init). Ambos os métodos têm suas próprias vantagens e desvantagens.
Um estágio de orientação
Para usar o boot de uma etapa, precisamos construir um kernel que tenha todos os drivers necessários para instalar o sistema de arquivos raiz embutido
|