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)?
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)?
Respostas:
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.
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/
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.
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 fdisk
partiçã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 ...
No raspbian, basta alterar o root
sinalizador /boot/cmdline.txt
para root=/dev/sdaX
onde X
está o número da partição apropriada.
Para obter detalhes sobre como obter raspbian no seu usb, etc, você pode conferir aqui http://blog.krastanov.org/2014/01/30/booting-pi-reliably-from-usb/
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.txt
e 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.