Uruchamianie Raspberry Pi z taniego adaptera IDE/SATA na USB

Kategoria: Informatyka | 27/06/2022 | Komentarzy: 0
Kupując na popularnych sklepach internetowych adaptery IDE/SATA na USB można się natknąć na tanie adaptery „ADAPTER DYSK ATA IDE 2.5 3.5 SATA USB”. Z komputerami działają bez problemów (nawet napędy CD), czy nawet z Androidem przy użyciu kabla OTG. Tylko nie polecam zasilaczy w zestawie, ponieważ są wybuchowe.
Czasami zdarza się, że nie mam się wolnej karty Micro SD lub jest zbyt mała by pomieścić jakieś dane, lecz mam sporo dysków twardych, których nie używam. Problemem takich adapterów może być dłuższy czas inicjalizacji dysku. Także oryginalne Raspberry Pi 1 nie obsługuje uruchamianie z USB. Rozwiązaniem może być użycie małej karty Micro SD aby załadować tylko kernela z niej i poczekać na inicjalizację o to takiego adapteru.
W moim przypadku użyje większej karty Micro SD aby zademonstrować metodę użytą przeze mnie. Karta Micro SD nie musi być duża, nawet 128 MB (jeżeli taką znajdziesz) powinna wystarczyć.
Wgrałem na podłączony dysk twardy Raspberry Pi OS jakbym na kartę wgrywał za pomocą Raspberry Pi Imager
Próba odpalenia Raspberry Pi 3B+ z samego dysku się nie udała. Czas na analizę.
Najprawdopodobniej jest to spowodowane wyżej wymienionym problemem z czasem inicjalizacji takich adapterów. Moim pomysłem jest przeniesienie partycji /boot na małą kartę pamięci. Trzeba pozmieniać trochę partycje. Raspberry Pi Imager zrobił nam 2 partycje: „boot” i „rootfs”. Musimy przenieść partycje „boot” na kartę Micro SD, rozszerzyć „rootfs” i pozmieniać parę plików konfiguracyjnych.
Najpierw zajmiemy się stworzeniem karty Micro SD. Kartę należy sformatować do FAT32 i skopiować na nią pliki partycji „boot” z naszego dysku twardego z Raspberry Pi OS.
Teraz możemy rozszerzyć partycję „rootfs” na głównym dysku. Polecam z przypadku problemów jeszcze zostawić „boot” na dysku. Po modyfikowaniu partycji możemy się zająć modyfikowaniem plików konfiguracyjnych.
Potrzebujemy PARTUUID nowej partycji „boot” i „rootfs”. Można łatwo to zdobyć komendą „blkid”.
W poleceniach należy podmienić /dev/sdf1 odpowiednią partycją „boot” i /dev/sde2 partycją „rootfs” w Twoim systemie.
Partycja „boot” karty Micro SD:
$ sudo blkid /dev/sdf1
/dev/sdf1: UUID="5FD6-73EA" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="7d5a2870-01"
Partycja „rootfs” dysku twardego:
$ sudo blkid /dev/sde2
/dev/sde2: LABEL="rootfs" UUID="a755e991-ee07-4251-9a93-ddbb10695d94" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="33497a23-02"
Otwieramy „cmdline.txt” z karty Micro SD. Plik powinien wyglądać tak:
console=serial0,115200 console=tty1 root=PARTUUID=33497a23-02 rootfstype=ext4 fsck.repair=yes rootwait quiet init=/usr/lib/raspi-config/init_resize.sh splash plymouth.ignore-serial-consoles
Pozbywamy się części quiet init=/usr/lib/raspi-config/init_resize.sh splash plymouth.ignore-serial-consoles i dodajemy przed rootwait: rootdelay=10.
Jeżeli PARTUUID partycji „rootfs” z poprzedniej sekcji inny w cmdline.txt – zamieniamy go tym z komendy. Gotowy plik w przypadku mojej konfiguracji powinien wyglądać tak:
console=serial0,115200 console=tty1 root=PARTUUID=33497a23-02 rootfstype=ext4 fsck.repair=yes rootdelay=10 rootwait
Teraz otwieramy „rootfs” na dysku twardym i otwieramy plik „fstab” w folderze „/etc”. Plik u mnie wygląda tak:
proc /proc proc defaults 0 0 PARTUUID=33497a23-01 /boot vfat defaults,flush 0 2 PARTUUID=33497a23-02 / ext4 defaults,noatime 0 1
Podmieniamy PARTUUID „/boot” na PARTUUID partycji „boot” z wcześniejszej sekcji i to samo z „/” na PARTUUID „rootfs”.
Gotowy plik u mnie wygląda tak:
proc /proc proc defaults 0 0 PARTUUID=7d5a2870-01 /boot vfat defaults,flush 0 2 PARTUUID=33497a23-02 / ext4 defaults,noatime 0 1
Po tych wszystkich zmianach odłączamy dysk i kartę. Wpinamy w Raspberry Pi i próbujemy odpalić.
Bingo! Nasze Raspberry Pi wystartowało z dysku twardego z którym miało problemy wcześniej. Tą metodą można także użyć do oryginalnego Raspberry Pi 1, które nie obsługuje uruchamianie z USB tak jak Raspbery Pi 3. Prędkości mogą się wahać z zależności od dysku czy adaptera. W taki sposób można łatwo oszczędzić na kartach Micro SD. Co prawda zrobiłem to na dysku 20 GB (dla przykładu), który nie jest zbytnio duży ale można to wykonać także na innych większych dyskach. Można się także pobawić z partycjami aby mieć oddzielnie „/home” itp. ale to już nie temat na ten artykuł.
Komentarze
Brak komentarzy.Dodaj komentarz