Inicializar a partir do disco rígido USB?

44

Existe uma maneira de inicializar a partir de um disco rígido externo conectado ao dispositivo pela porta USB (em vez de inicializar a partir do cartão SD)?

Sistema caiu
fonte
1
Este é apenas um link para o tutorial real, então eu deixá-lo como um comentário: blog.krastanov.org/2014/01/30/booting-pi-reliably-from-usb
Krastanov

Respostas:

8

Agora, quase cinco anos depois que o autor originalmente fez essa pergunta, o
Raspberry Pi oficialmente suporta a inicialização a partir de um dispositivo de armazenamento em massa USB .

No entanto, isso é suportado apenas no Raspberry Pi 3 . Aqui está o porquê:

Será possível inicializar um Pi 1 ou Pi 2 usando o MSD?

Infelizmente não. O código de inicialização é armazenado apenas no dispositivo BCM2837; portanto, o Pi 1, o Pi 2 e o Pi Zero exigirão cartões SD.

Andrejs Cainikovs
fonte
28

Não é possível inicializar o RPi a partir do USB diretamente no verdadeiro sentido da palavra. No entanto, não há nada para impedir que alguém faça uma mini-distro que contenha / boot e algum tipo de gerenciador de inicialização. Isso poderia implementar a inicialização a partir do USB ou até de um ambiente no estilo PXE. Isso pode caber em um pequeno cartão SD - cartões de 64 MB estão disponíveis por centavos. Espero que alguém role uma distribuição para isso - mas ainda não a encontrei.

Enquanto isso, você pode mover sua própria partição raiz para o disco rígido para obter tempos de inicialização mais rápidos, mas é um pouco complicado, pois você precisará obter um kernel que suporte o armazenamento USB. Boas instruções sobre como fazer isso podem ser encontradas em: http://mitchtech.net/raspberry-pi-root-fs-on-usb-drive/

Maria Zverina
fonte
3
Essa é uma boa ideia.
Jivings
Atualização: agora existe suporte experimental para inicializar diretamente no USB; não é necessário cartão SD após a configuração inicial.
precisa saber é o seguinte
21

Do FAQ do Raspberry Pi :

Você precisa inicializar a partir do SD, mas um HD USB pode "assumir o controle" após a inicialização inicial. Você não pode inicializar sem um cartão SD.

Darren Wilkinson
fonte
1
isso significa que depois que o disco rígido assume o controle, não há mais necessidade do carro com memória?
Suhaib
5

De fato, se você pode viver apenas com a partição SD MS-DOS (/ boot) onde o kernel reside, poderá ter / root e tudo o mais em um dispositivo externo. O cartão de memória USB ou um disco rígido físico é bom como unidade secundária. O bom é que, a menos que você 'localize' o local errado, este é um procedimento não destrutivo: uma edição e você volta ao original,

Definir esta configuração é bastante fácil. Você configura sua instalação como de costume e move / copia a partição EXT4 para a unidade externa.

Usando a fdiskpartição ' ' da unidade secundária selecionada, crie uma partição do mesmo tamanho ou tamanho maior que o mmcblk0p2 atual (ou mmcblk0p5). Salve a nova configuração.

Encontre o nome da partição, neste exemplo, '/ dev / sda5', no entanto, essa partição dependerá da sua configuração.

Copie a partição em execução (nota: não é aconselhável copiar uma partição em execução; alguns arquivos estão no estado 'instável' ou aberto; no entanto, funcionam bem):

dd if=/dev/mmcblk0p2 of=/dev/sda5 bs=10M

Agora, edite a seguinte linha no arquivo /boot/cmdline.txt e modifique o local 'root':

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

Para esta nova linha.

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/sda5 rootfstype=ext4 elevator=deadline rootwait

Observe que a partição de inicialização é o MS-DOS; portanto, se você precisar corrigir, poderá montar o SD em outro lugar e editar. Se a inicialização falhar, o carregador mostrará na tela (HDMI) os pontos de montagem disponíveis.

Essa configuração depende da ordem de montagem. O número da partição pode mudar se o dispositivo estiver montado em outro slot; você pode tornar esse local independente da seguinte maneira.

Encontre o dispositivo 'UUID'

blkid /dev/sda5
/dev/sda5: UUID="13d368bf-6dbf-4751-8ba1-88bed06bef77" TYPE="ext4"

ou crie um novo

tune2fs -U random /dev/sda5

e obtenha o novo nome atribuído

blkid /dev/sda5
/dev/sda5: UUID="25b6aa72-ddc4-485e-8044-900ac24d662b" TYPE="ext4"

edite o cmdline.txt modificado anteriormente, alterando o local raiz para:

root=UUID=25b6aa72-ddc4-485e-8044-900ac24d662b

Após inicializar a nova configuração, edite o fstab, remova o / mmcblk0p2 antigo Nota: Este é um arquivo no dispositivo 'novo' / raiz
Substitua / dev / mmcblk0p% (% é a partição linux)

nano /etc/fstab
UUID=25b6aa72-ddc4-485e-8044-900ac24d662b ...
fcm
fonte
1

Em vez disso, usei o Windows para 100% da criação.

Usei (o grátis) 'gerenciador de partições MiniTool' e transferi a inicialização para o meu menor cartão SD, que pode ser automaticamente expandido com o gerenciador de partições. Abra o cmdline.txte mude para root=/dev/sda5.

O mesmo gerenciador de partições permite copiar o ext4 para o meu 1 TB portátil (FYI remova todas as partições das unidades primeiro, para que você tenha espaço não particionado antes da transferência). Vala - inicializado. Percebo com o HDD padrão que os tempos de acesso estão um pouco ausentes, apesar de terem velocidades R / W muito rápidas em comparação com a maioria dos cartões SD.

O único problema que estou tendo agora é expandir a partição ext4 (root) dos 32 GB originais (do meu cartão SD original). Então, eu tenho apenas 32 GB do 1TB atualmente. Hmm. Eu sou apenas um novato com o terminal e seus comandos, portanto, particionar no linux é um pouco perturbador, mas este guia ajudou MUITO bem.

Dave
fonte
Desculpe, qual guia?
Bex 23/05
Desculpe, este fórum.
Dave