Tak, o ile mi wiadomo, jest to całkowicie możliwe!
To, co chcesz zrobić, to skopiować partycję główną na pamięć USB, a następnie zmienić /etc/fstab
i /boot/cmdline.txt
uruchomić ją z dysku zewnętrznego zamiast z drugiej partycji na karcie SD.
Jeśli znalazłem samouczek, ale niestety nie jest on w języku angielskim, więc postaram się wyjaśnić procedurę własnymi słowami.
Zrestartuj Pi, gdy jedynym dyskiem zewnętrznym jest pamięć USB (w ten sposób unikamy posiadania różnych numerów dysków przy każdym uruchomieniu, ponieważ unikalne identyfikatory dysków nie są możliwe, jeśli chcesz zamienić pamięć USB później).
Uzyskaj numer napędu przez sudo blkid
. Nie powinno być tylko jeden, który wygląda tak: /dev/sda1
.
Za pomocą polecenia mount
możemy sprawdzić, czy został on automatycznie zamontowany. Jeśli nie ma go na liście, przejdź do następnego kroku. Jeśli tak, uruchom sudo umount /dev/sda1
(popraw różne numery, jeśli nie są takie same), aby odmontować pamięć USB.
Następnie chcemy sformatować pamięć USB, aby mieć odpowiedni system plików dla partycji głównej Debiana, co jest preferowane ext4
. Można to zrobić za pomocą komendy: sudo mkfs.ext4 /dev/sda1
.
Następnie musimy (ponownie) zamontować pamięć USB w tymczasowej lokalizacji, aby skopiować partycję root z karty SD. Robimy to za pomocą polecenia: sudo mount /dev/sda1 /mnt
. (Jeśli polecenie narzeka, że /mnt
nie istnieje, utwórz folder o tej nazwie, uruchamiając: sudo mkdir /mnt
i spróbuj ponownie.
Teraz nadszedł czas, aby skopiować wszystkie dane z partycji root przez pierwsze przełączenie na górę katalogu z: cd /
a następnie uruchomić ten Tar-polecenia: sudo tar cf - * --exclude /mnt/* | ( cd /mnt; sudo tar xfp -)
. To chyba nie jest najbardziej kompaktowe rozwiązanie, ale działało dla mnie. Pamiętaj, że może to chwilę potrwać, w zależności od szybkości karty SD i napędu USB.
Następnie musimy zmienić, /etc/fstab
który zawiera dyski, które mają zostać zamontowane podczas uruchamiania poprzez uruchomienie sudo nano /mnt/etc/fstab
. ( Zauważ, że jest to na pamięci USB, ponieważ dodaliśmy /mnt
. ) Musisz zmienić odpowiednie linie, aby wyglądały tak:
/dev/mmcblk0p1 /boot vfat defaults 0 0
/dev/sda1 / ext4 defaults,noatime 0 0
Na koniec musimy powiedzieć partycji rozruchowej na karcie SD, aby uruchomiła się z dysku USB. Ale po pierwsze to chyba dobry pomysł, aby zrobić kopię zapasową pliku, który mamy zamiar zmienić teraz, zanim popełnić na uczynienie przełącznik, uruchamiając: sudo cp /boot/cmdline.txt /boot/cmdline.txt.save
.
Uruchom, sudo nano /boot/cmdline.txt
aby wejść w nano
celu zmiany parametrów rozruchowych na pierwszej partycji karty SD. Zasadniczo musimy zmienić wpis dla partycji root na dysk USB. W samouczku można to wprowadzić (1 linia):
dwc_otg.lpm_enable=0 root=/dev/sda1 rootfstype=ext4 noatime quiet rootwait loglevel=1 zram.num_devices=2
Możesz przeczytać, co oznaczają te parametry tutaj .
Teraz zapisz i wyjdź, nano
a przy następnym restarcie Raspberry Pi powinien uruchomić się z pamięci USB, ale oczywiście karta SD jest nadal wymagana, jak już wspomniałeś.
Tak długo, jak dysk USB jest jedynym dyskiem (oprócz karty SD) podczas uruchamiania, powinno to działać. Musisz mieć to trochę dynamiczne i nie widzę innego sposobu na odniesienie się do napędu niż używanie /dev/diskX
.
Edycja: Zapomniałem wspomnieć, że musisz zduplikować dysk USB po zakończeniu lub wykonać te same kroki z innymi instalacjami na innych dyskach. Jeśli wersja Raspian wraz z zainstalowanymi pakietami jest taka sama, nie widzę powodu, dla którego to nie powinno działać.
/boot
Partycja jest dość prosty, a linia wspominałem w 9. jest w zasadzie wszystko, co robi. Musi tylko przekazać go właściwej partycji z odpowiednim systemem plików i powinien działać.
Mam nadzieję, że ci to pomogło.
Dla osób niemieckojęzycznych link źródłowy zostawiam tutaj: Źródło .