Como fazer SRM Firmware David Mosberger <mailto:davidm@azstarnet.com> v0.5, 17 August 1996 Este documento descreve como inicializar o Linux/Alpha usando o SRM Firmware, que é o firmware normalmente usado para iniciar o DEC Unix. Usualmente, é preferível usar o MILO ao invés do aboot desde que o MILO esteja perfeitamente adaptado para as necessidades do Linux. Contudo, MILO não está sempre disponível para um sistema particular e MILO não tem habilidade para iniciar a rede. Neste ou em outro caso, usar o SRM console deve ser a solução correta. ______________________________________________________________________ Índice geral 1. Como o SRM carrega um sistema operacional? 1.1 Acionando o Carregador Secundário de Sistemas Operacionais 2. O Carregador Direto 3. O Carregador aboot 3.1 Obtendo e Construindo aboot 3.2 Instalação Via Disquete 3.3 Instalação em Discos Rígidos 3.4 Instalação Via CD-ROM 3.5 Construindo o Kernel do Linux 3.6 Inicializando o Linux 3.6.1 Nome do Arquivo de Inicialização 3.6.2 Indicadores de Inicialização. 3.6.2.1 Selecionando a Partição do /etc/aboot.conf. 3.7 Carregando o Sistema Através da Rede 4. Compartilhando um disco com o DEC Unix 4.1 Particionando o Disco 4.2 Instalando aboot ______________________________________________________________________ 11.. CCoommoo oo SSRRMM ccaarrrreeggaa uumm ssiisstteemmaa ooppeerraacciioonnaall?? Todas as versões do SRM podem ser inicializadas de discos SCSI e as versões para as novas plataformas, como Noname ou AlphaStations, podem ser inicializadas a partir de disquetes também. Inicialização através da rede via bootp também é suportada. Note-se que as antigas versões (principalmente a da placa Jensen) não podem inicializar a partir de disquetes. Ainda, inicialização a partir de discos IDE não são suportadas. A inicialização do Linux com SRM é realizada em dois passos: primeiramente, o SRM carrega e transfere o controle para o carregador de sistemas operacionais secundário. Este então configura o ambiente para o Linux, lê a imagem do kernel de um sistema de arquivos em disco e finalmente transfere o controle para o Linux. Atualmente, há dois carregadores secundários de sistemas operacionais para Linux: o carregador direto que vem junto com o kernel do Linux e o aboot que é distribuído separadamente. Estes dois softwares são descritos com maiores detalhes adiante. 11..11.. AAcciioonnaannddoo oo CCaarrrreeggaaddoorr SSeeccuunnddáárriioo ddee SSiisstteemmaass OOppeerraacciioonnaaiiss SRM não sabe absolutamente nada sobre sistemas de arquivos ou partições de discos. Ele simplesmente espera que o carregador secundário de sistemas operacionais ocupe uma área consecutiva de setores físicos de um disco, iniciando a partir de um deslocamento pré determinado. As informações sobre o tamanho do carregador secundário de sistemas operacionais e o deslocamento do primeiro setor de disco estão armazenadas nos primeiros 512 bytes do setor. Especificamente, um inteiro longo com deslocamento 480 armazena o tamanho do carregador secundário de sistemas operacionais (em blocos de 512 bytes) e um longo como o deslocamento 488 fornece o número do setor no qual o carregador secundário de sistemas operacionais inicia. O primeiro setor ainda armazena uma "palavra" de deslocamento 496 o qual é sempre igual a zero e um verificador de integridade de deslocamento 504. O verificador é simplesmente a soma dos primeiros 63 inteiros longos no primeiro setor. Caso o verificador de integridade do primeiro setor esteja correto, SRM segue adiante e lê os setores, iniciando no setor fornecido no campo "número do setor de início" e os coloca na memória virtual no endereço 0x20000000. Caso a leitura seja completada com sucesso, SRM executa uma instrução de transferência para o endereço 0x20000000. 22.. OO CCaarrrreeggaaddoorr DDiirreettoo Os fontes deste carregador podem ser encontrados no diretório linux/arch/alpha/boot na distribuição dos fontes do kernel do Linux. Ele carrega o kernel do Linux através da leitura de START_SIZE - descolamento que indica o byte de início no disco BOOT_SIZE+512 (também em bytes). As constantes START_SIZE e BOOT_SIZE são definidas em linux/include/asm- alpha/system.h. START_SIZE deve no mínimo ser tão grande quanto a imagem do kernel (ou seja o tamanho dos segmentos .text, .data e .bss). De forma similar deve ser no mínimo tão grande quanto a imagem do carregador direto de sistema operacional. Ambas as constantes devem ser um inteiro múltiplo do tamanho do setor, o qual é igual a 512 bytes. Os valores padrões são atualmente 2 Mb para START_SIZE e 16 Kb para BOOT_SIZE. Note-se que se deseje iniciar o sistema a partir de um disquete de 1.44 Mb, deve-se reduzir o START_SIZE para 1.400 Kb e estar certo de que o kernel que se deseja inicializar não é maior que isto. Para construir um carregador direto, simplesmente digite "make rawboot" no diretório /usr/src/linux. Isto deve produzir os seguintes arquivos em arch/alpha/boot: ttoooollss//llxxbboooott:: O primeiro setor do disco. Contém o deslocamento e o tamanho do próximo arquivo no formato descrito a seguir. ttoooollss//bboooottllxx:: O carregador direto de sistemas que carregará o arquivo abaixo. vvmmlliinnuuxx..nnhh:: A imagem bruta do kernel consistindo de segmentos .text, .data e .bss do arquivo objeto em /usr/src/linux/vmlinux. A extensão .nh indica que o arquivo não tem cabeçalho de arquivo objeto. A concatenação destes três arquivos devem ser gravados no disco que se deseje utilizar para inicializar o sistema. Por exemplo, para gravá-los em um disquete, insira um deles vazio em, digamos, /dev/fd0 e então digite: cat tools/lxboot tools/bootlx vmlinux >/dev/fd0 Pode-se então desligar o sistema e inicializar o sistema a partir do disquete através do comando boot dva0. 33.. OO CCaarrrreeggaaddoorr aabboooott Ao se usar o firmware SRM, aboot é a forma preferida de se inicializar o Linux. Ele suporta: · inicialização direta de vários sistemas de arquivos ((ext2, ISO9660 e UFS, o sistema de arquivos DEC), · inicialização de arquivos objetos inicializáveis (tanto ELF como ECOFF) · inicialização de kernels comprimidos, · inicialização pela rede (usando bootp), · tabelas de partições no formato DEC Unix ( a qual é compatível com as tabelas de partição do BSD Unix), · inicialização interativa e configurações padrão para consoles SRM que não podem passar longas expressões de opções 33..11.. OObbtteennddoo ee CCoonnssttrruuiinnddoo aabboooott A versão mais recente do aboot está disponível em ftp://ftp.alphalinux.org/pub/linux/axp/aboot. A descrição neste manual aplica-se ao aboot versão 0.5 ou mais recente. Uma vez que ele seja recebido e extraído o arquivo tar, verifique o conteúdo dos arquivos README e INSTALL para algumas instruções sobre a sua instalação. Em particular, esteja seguro de ajustar as variáveis no Makefile e no include/config.h para que se adequem ao ambiente local. Normalmente, não será necessário alterar absolutamente nada ao se construir aboot sob o Linux, mas é sempre uma boa idéia verificar novamente. Caso se esteja satisfeito com a configuração, simplesmente digite make para construí-lo (caso não se esteja construindo sob Linux, é bom saber que aboot requer o GNU make). Após executar o make, o diretório aboot deve conter os seguintes arquivos: aabboooott Este é o executável atual do aboot (ou um arquivo objeto ECOFF ou ELF). bboooottllxx O mesmo que acima, mas contém somente os segmentos de texto, dados e bss --- ou seja este não é um arquivo objeto. ssddiisskkllaabbeell//wwrriitteebboooott utilitário para instalar o aboot em um disco rígido. ttoooollss//ee22wwrriitteebboooott utilitário para instalar o aboot em um sistema de arquivos ext2 (normalmente usado em disquetes). ttoooollss//iissoommaarrkkbboooott Utilitário para instalar o aboot em um sistema de arquivos iso9660 (usado pelos distribuidores de CD-ROM). ttoooollss//aabboooottccoonnff Utilitário para configurar um aboot instalado. 33..22.. IInnssttaallaaççããoo VViiaa DDiissqquueettee O carregador de sistemas pode ser instalado em um disquete usando o comando e2writeboot (note-se que isso não pode ser feito em um sistema Jensen, uma vez que seus firmwares não suportam a inicialização a partir do disquete). Este comando requer que o disco não esteja fragmentado, assim como necessita encontrar blocos contíguos para armazenar toda a imagem (atualmente cerca de 90 Kb). Caso o e2writeboot falhe devido a isso, reformate o disquete e tente novamente (com por exemplo fdformat(1)). Por exemplo, apresentamos a seguir os passos de instalação do aboot no disquete assumindo que a unidade de disquetes esteja em /dev/fd0: fdformat /dev/fd0 mke2fs /dev/fd0 e2writeboot /dev/fd0 bootlx 33..33.. IInnssttaallaaççããoo eemm DDiissccooss RRííggiiddooss Uma vez que o comando e2writeboot pode falhar em discos altamente fragmentados e desde que a reformatação de uma disco rígido é algo normalmente doloroso, é normalmente mais seguro instalar o aboot em um disco rígido utilizando o comando swriteboot, o qual requer que os primeiros setores sejam reservados para a inicialização do sistema. Sugerimos que o disco seja particionado de forma que a primeira partição inicie com um deslocamento de 2.048 setores. Isso reserva um espaço de aproximadamente 1 Mb para armazenamento do aboot. Em um disco adequadamente particionado, será possível instalar o aboot da seguinte forma (assumindo-se que o disco seja /dev/sda): swriteboot /dev/sda bootlx Em um sistema Jensen, será necessário deixar um espaço ainda maior, uma vez que será necessário gravar também o kernel neste local - 2 Mb deve ser suficiente para se utilizar kernels comprimidos. Use swriteboot conforme descrito anteriormente para gravar o bootlx junto com o kernel do Linux. 33..44.. IInnssttaallaaççããoo VViiaa CCDD--RROOMM Para tornar um CD-ROM inicializável pelo SRM, simplesmente construa o aboot conforme descrito anteriormente. A seguir, esteja seguro de que o arquivo bootlx esteja presente no sistema de arquivos iso9660 (por exemplo copie bootlx para o diretório que é o sistema de arquivos master, e então execute o comando mkisofs naquele diretório). Após, tudo o que precisa ser feito é marcar o sistema de arquivos como inicializável pelo SRM. Isso pode ser obtido com o seguinte comando: isomarkboot filesystem bootlx O comando acima assume que o sistema de arquivos é um arquivo contendo o sistema de arquivos iso9660 e que o bootlx foi copiado para o diretório raiz daquele sistema de arquivos. É isso! 33..55.. CCoonnssttrruuiinnddoo oo KKeerrnneell ddoo LLiinnuuxx Um kernel inicializável do Linux pode ser construído seguindo-se os seguintes passos. Durante o make config, esteja seguro de responder "sim" para a questão sobre a intenção de construir a inicialização do kernel via SRM: cd /usr/src/linux make config make dep make boot O último comando irá construir o arquivo arch/alpha/boot/vmlinux.gz o qual pode ser copiado para o disco do qual se deseje inicializar o sistema. No exemplo em disquete acima, pode-se acrescentar: mount /dev/fd0 /mnt cp arch/alpha/boot/vmlinux.gz /mnt umount /mnt 33..66.. IInniicciiaalliizzaannddoo oo LLiinnuuxx Com o firmware SRM e o aboot instalados, Linux é geralmente inicializado com o comando no seguinte formato: boot devicename -fi filename -fl flags Os argumentos de nome de arquivo e indicadores de argumentos são opcionais. Caso eles não sejam especificados, SRM usa os valores padrões armazenados nas variáveis de ambiente no BOOT_OSFILE e BOOT_OSFLAGS. A sintaxe e o significado destes dois argumentos são descritos em maiores detalhes a seguir. 33..66..11.. NNoommee ddoo AArrqquuiivvoo ddee IInniicciiaalliizzaaççããoo O argumento do nome de arquivo tem o seguinte formato: [n/]nome_de_arquivo n é um dígito simples na faixa de 1 a 8, que fornece o número da partição a partir da qual a inicialização do sistema será feita. O nome do arquivo é o caminho do arquivo que se deseja carregar. Por exemplo, para inicializar o sistema a partir da segunda partição do dispositivo SCSI de identificação 6, pode-se informar: boot dka600 -file 2/vmlinux.gz ou para inicializar o sistema a partir da unidade de disquetes 0, deve-se informar: boot dva0 -file vmlinux.gz Se o disco não tem tabela de partição, aboot assume que o disco contém uma partição ext2 iniciando no primeiro bloco de disco. Isto permite a inicialização a partir de disquetes. Como um caso especial, a partição de número 0 é usada para requisitar a inicialização a partir de um disco que não contém um sistema de arquivos (ainda). Ao se especificar a "partição" de número 0, aboot assume que o kernel está armazenado logo após a imagem de aboot. Tal formato pode ser obtido através do comando swriteboot. Por exemplo, para configurar uma inicialização sem sistema de arquivos a partir de /dev/sda, pode-se ser usado o comando: swriteboot /dev/sda bootlx vmlinux.gz Inicializar um sistema desta forma não é normalmente necessário. A razão desta existência reside no fato de tornar possível ter-se o Linux instalado em sistemas que não podem ser inicializados a partir de disquetes (como por exemplo de Jensen). 33..66..22.. IInnddiiccaaddoorreess ddee IInniicciiaalliizzaaççããoo.. Um determinado número de indicadores de inicialização pode ser especificada. A sintaxe é -flags "opções..." Onde "opções..." é qualquer combinação das seguintes opções (separadas por espaços em branco). Há diversas opções de inicialização, dependendo de quais programas de controle de dispositivos estão instalados. As opções listadas a seguir tem a intenção de serem exemplos que ilustram a idéia geral: llooaadd__rraammddiisskk==11 Copia o sistema de arquivos raiz de um disco (disquete) para a memória RAM antes de inicializar o sistema. O disco em memória RAM será usado na composição de dispositivo raiz. Isso é útil para a inicialização do Linux em um sistema com somente uma unidade de disquetes. ffllooppppyy==ssttrr Configura o disquete para str. rroooott==ddeevv Seleciona o dispositivo dev como o sistema de arquivos raiz. O dispositivo pode ser especificado através de um número hexadecimal de maior e menor (por exemplo 0x802 para /dev/sda2) ou através de um dos poucos nomes canônicos (por exemplo /dev/fd0, /dev/sda2). ssiinnggllee Inicializa o sistema no modo monousuário. kkggddbb Habilita o kernel-gdb (funciona somente se o parâmetro CONFIG_KGDB estiver configurado; um segundo sistema Alpha necessita estar conectado em uma porta serial para tornar esta estrutura funcional). Algumas implementações SRM (por exemplo, a Jensen) são habilitadas e permitem somente expressões curtas de opções (por exemplo, no máximo 8 caracteres). Nestes casos, aboot poderá ser inicializado com o indicador de um único caracter igual a "i". Com este indicador, aboot irá solicitar ao usuário para interativamente informar as opções de inicialização com expressões de até 256 caracteres. Por exemplo: boot dka0 -fl i aboot> 3/vmlinux.gz root=/dev/sda3 single Um vez que a inicialização desta forma pode tornar-se rapidamente tediosa, aboot permite que sejam definidas os atalhados para comandos de linha usados freqüentemente. Em particular, uma opção de dígito simples (0-9) solicita que aboot use a opção correspondente armazenada no arquivo /etc/aboot.conf. Um exemplo do aboot.conf é mostrado a seguir: # # configurações padrão do aboot # 0:3/vmlinux.gz root=/dev/sda3 1:3/vmlinux.gz root=/dev/sda3 single 2:3/vmlinux.new.gz root=/dev/sda3 3:3/vmlinux root=/dev/sda3 8:- root=/dev/sda3 # inicialização direta do kernel sem sistemas de # arquivos 9:0/vmlinux.gz root=/dev/sda3 # inicialização sem sistemas de arquivos de kernel # ECOFF (comprimidos) - Com este arquivo de configuração, o comando boot dka0 -fl 1 corresponde exatamente ao comando de inicialização mostrado acima. É muito simples esquecer qual número corresponde a qual comando. Para aliviar este problema, inicialize com a opção "h" e o aboot irá imprimir o conteúdo de /etc/aboot.conf antes de solicitar o comando de inicialização do sistema. Finalmente, quando o aboot solicitar uma opção, é possível informar um único caracter ("i", "h" ou "0"-"9") para obter o mesmo efeito como se o indicador tivesse sido especificado na linha de comando de inicialização. Por exemplo, pode-se iniciar o sistema com o indicador "i" e então digita-se "h" (seguida de [Enter]) para relembrar o conteúdo de /etc/aboot.conf. 33..66..22..11.. SSeelleecciioonnaannddoo aa PPaarrttiiççããoo ddoo //eettcc//aabboooott..ccoonnff.. Quando instalado em um disco rígido, aboot necessita conhecer em qual partição se deve pesquisar pelo arquivo /etc/aboot.conf. Um novo aboot compilado irá pesquisar a segunda partição (por exemplo /dev/sda2). Uma vez que possa ser um incoveniente compilar aboot somente para alterar o número da partição, abootconf permite se modificar diretamente um aboot instalado. Especificamente, caso se deseje alterar aboot para usar a terceira partição do disco /dev/sda, pode-se usar o comando: abootconf /dev/sda 3 Pode-se verificar a configuração atual simplesmente omitindo o número da partição, Ou seja: abootconf /dev/sda irá imprimir o número da partição atualmente selecionada. Note-se que aboot deve estar instalado para que este comando possa ser utilizado. Ainda, ao se instalar um novo aboot, o número da partição irá ser definido pelo padrão (ou seja, será necessário executar abootconf novamente). Desde a versão 0.5 do aboot é possível ainda selecionar a partição de aboot.conf via linha de comando. Isto pode ser feito através da linha de comando no formato a:b, onde a é a partição que contém /etc/aboot.conf e b é a opção de um único dígito conforme descrito acima (0-9, i ou h). Por exemplo, ao se digitar "3:h" dka100 o sistema será inicializado a partir do SCSI ID 1, carregar /etc/aboot.conf a partir da terceira partição, imprimir seu conteúdo na tela e aguardar pela informação das opções de inicialização. 33..77.. CCaarrrreeggaannddoo oo SSiisstteemmaa AAttrraavvééss ddaa RReeddee Dois passos são necessários antes que o Linux possa ser inicializado através da rede. Inicialmente, é necessário definir as variáveis de ambiente SRM para habilitar a inicialização através do protocolo bootp e segundo será necessário configurar outra máquina como o servidor de inicialização. Por favor, verifique a documentação do SRM que acompanha a sua instalação para verificar como habilitar o bootp. A configuração de um servidor de inicialização é obviamente dependente de qual sistema operacional será executado naquele equipamento, mas tipicamente envolve a inicialização do programa bootpd em segundo plano após a configuração do arquivo /etc/bootptab. Este arquivo tem uma entrada descrevendo cada cliente que tem permissão para inicializar a partir do servidor. Por exemplo, caso se deseje inicializar a máquina minhamaq.cs.pantanal.edu.br, então a entrada terá o seguinte formato: minhamaq.cs.pantanal.edu.br:\ :hd=/remoto/:bf=vmlinux.bootp:\ :ht=ethernet:ha=08012B1C51F8:hn:vm=rfc1048:\ :ip=192.12.69.254:bs=auto: Esta entrada assume que o endereço Ethernet da máquina seja 08012B1C51F8 e seu endereço IP seja 192.12.69.254. O endereço Ethernet pode ser encontrado com o comando show device da console SRM ou, caso o Linux esteja sendo executado, através do comando ifconfig. A entrada define ainda se o cliente não tem nenhuma especificidade. Caso contrário o arquivo vmlinux.bootp será inicializado a partir do diretório /remoto. Para maiores informações sobre a configuração do bootpd por favor verifique a sua página de manual on-line. A seguir, construiremos aboot com a linha de comando make netboot. Esteja certo de que o kernel que se deseje utilizar já esteja construído. Por padrão o Makefile de aboot utiliza o kernel encontrado em /usr/src/linux/arch/alpha/boot/vmlinux.gz (edite o Makefile caso se deseje utilizar um caminho diferente). O resultado de make netboot é um arquivo chamado vmlinux.bootp o qual contém aboot e o kernel do Linux, prontos para a inicialização através da rede. Finalmente, copie o vmlinux.bootp para o diretório do servidor de inicialização. No exemplo acima, pode-se copiá-lo em /remote/vmlinux.bootp. A seguir, ligue a máquina cliente e a inicialize, especificando o adaptador Ethernet como o dispositivo de inicialização. Tipicamente, o SRM chamará o primeiro adaptador Ethernet como ewa0, sendo que o comando de inicialização a partir deste dispositivo terá o seguinte formato: boot ewa0 As opções -fi e -fl podem ser usadas da forma usual. Em particular, pode-se especificar que aboot solicite os argumentos do kernel do Linux através da especificação da opção -fl i. 44.. CCoommppaarrttiillhhaannddoo uumm ddiissccoo ccoomm oo DDEECC UUnniixx Infelizmente, o DEC Unix não conhece absolutamente nada sobre Linux, então compartilhar um disco entre dois sistemas operacionais pode não ser algo inteiramente trivial. De qualquer forma não é uma tarefa difícil caso se tenha as informações contidas nesta seção. Assumimos aqui que se esteja utilizando o aboot versão 0.5 ou mais recente. 44..11.. PPaarrttiicciioonnaannddoo oo DDiissccoo Inicialmente e mais importante: nunca use quaisquer dos programas Linux de particionamento (minlabel ou fdisk) em um disco que é usado também pelo DEC Linux. O programa Linux minlabel usa a mesma tabela de partições que o programa disklabel do DEC Linux, porém há algumas incompatibilidades nos dados informados pelo minlabel, e então o DEC Unix irá simplesmente recusar a tabela de partições geradas pelo minlabel. Para configurar uma partição Linux ext2 sob DEC Unix, há necessidade de alterar a entrada disktab do disco. Como exemplo nesta discussão, vamos assumir que se tenha um disco rz26 (um disco comum de 1 Gb) no qual se deseja instalar o Linux. A entrada disktab sob o DEC Unix v 3.2 se assemelha ao seguinte (veja o arquivo /etc/disktab): rz26|RZ26|DEC RZ26 Winchester:\ :ty=winchester:dt=SCSI:ns#57:nt#14:nc#2570:\ :oa#0:pa#131072:ba#8192:fa#1024:\ :ob#131072:pb#262144:bb#8192:fb#1024:\ :oc#0:pc#2050860:bc#8192:fc#1024:\ :od#393216:pd#552548:bd#8192:fd#1024:\ :oe#945764:pe#552548:be#8192:fe#1024:\ :of#1498312:pf#552548:bf#8192:ff#1024:\ :og#393216:pg#819200:bg#8192:fg#1024:\ :oh#1212416:ph#838444:bh#8192:fh#1024: Os campos interessantes aqui são o? e p?, onde ? é uma letra na faixa Ah (inicialmente através da oitava partição). O valor o fornece o deslocamento inicial da partição (em setores) e o valor p fornece o seu tamanho (também e setores). Veja disktab(4) para maiores informações. Note-se que DEC Unix parece definir partições sobrepostas. Para a entrada acima, o layout da partição se parece com algo como isso (pode-se verificar isso, adicionando-se os diversos valores de o e p): a b d e f |---|-------|-----------|-----------|-----------| c |-----------------------------------------------| g h |-----------------|-----------------| DEC Unix insiste que a partição a inicia no deslocamento 0 e que a partição c utiliza todo o disco. Desta forma, é possível configurar a tabela de partições da forma que se queira. Suponhamos que se tenha um sistema DEC Unix usando a partição g e se deseje instalar o Linux em uma partição h com a partição b sendo a partição de troca. Para se obter este layout sem destruir a partição DEC existente, será necessário configurar o tipo de partição de forma explícita. Pode-se fazer isto através da adição de um campo t para cada partição. Neste caso, adicionaremos a seguinte linha à entrada no disktab acima: :ta=unused:tb=swap:tg=4.2BSD:th=resrvd8: Agora porque nós marcamos a partição h como "reservd8" ao invés de "ext2"? Bem, DEC Unix não conhece nada sobre Linux. O que faz com que a partição de tipo "ext2" corresponda ao valor numérico 8. Ou seja em linguagem do DEC Unix, "reservd8" significa "ext2". OK, esta foi a parte difícil. Agora necessitamos somente instalar a entrada no disktab atualizado. Vamos assumir que o disco tenha uma identificação SCSI id 5. Neste caso, nós podemos informar: disklabel -rw /dev/rrz5c rz26 Pode-se verificar se tudo está correto através da leitura da identificação do disco através do comando "disklabel -r /dev/rrz5c". Neste ponto, pode-se reinicializar o DEC Unix e estar seguro de que a partição DEC Unix está perfeitamente funcional. Caso este seja o caso, pode-se desligar a máquina e inicilizar a instalação do Linux. Esteja seguro para ignorar o passo de particionamento de disco durante a instalação. Uma vez que já temos uma tabela de partições disponível, deve ser possível ir adiante e selecionar a oitava partição como a partição raiz do Linux e a segunda como a partição de troca. Caso o disco seja, digamos, o segundo disco SCSI da máquina, então o nome do dispositivo para esta partição será /dev/sdb8 e /dev/sdb2, respectivamente (note que o uso de letras no nome dos dispositivos e números nos nomes das partições é exatamente o inverso que o DEC Unix faz; o esquema Linux faz mais sentido, é claro :-). 44..22.. IInnssttaallaannddoo aabboooott Primeiro grande problema: com o firmware SRM pode-se inicializar um e somente um sistema operacional por disco. Por esta razão, é geralmente melhor ter-se ao menos dois discos SCSI em uma máquina na qual se deseje ter dupla inicialização entre o Linux e o DEC Unix. Obviamente pode-se inicializar o Linux a partir de um disquete caso a velocidade não seja um problema ou através da rede, caso se tenha um servidor bootp disponível. Mas nesta seção assumiremos que se deseje inicializar o Linux a partir de um disco que contenha uma ou mais partições DEC Unix. Segundo grande problema: instalando-se aboot em um disco compartilhado com DEC Unix torna a primeira e a terceira partições sem uso, uma vez que elas necessitam começar com um deslocamento de 0. Por esta razão, recomendamos que se altere o tamanho da partição a para algo com tamanho suficiente para conter somente o aboot (1 Mb deve ser suficiente). Observados este dois aspectos, a instalação de aboot é quase tão simples de instalar como se forma da forma usual: uma vez que as partições a e c irão ser sobrepostas com aboot, necessitamos dizer ao comando swriteboot que isto está ok. Podemos fazer isso sob Linux na linha de comando, com o seguinte formato (novamente, assumindo que estamos tentando instalar aboot no segundo disco SCSI): swriteboot -f1 -f3 /dev/sdb bootlx -f1 significa que desejamos forçar a gravação do bootlx mesmo quando isso sobrepõe a partição 1. O correspondente se aplica à partição 3. É isso. Pode-se agora desligar o sistema e inicializar o sistema a partir do disco rígido. Em nosso exemplo, a linha de comando SRM seria algo como: boot dka5 -fi 8/vmlinux.gz -fl root=/dev/sdb8