Nadszedł czas na napisanie kolejnego nikomu niepotrzebnego tutoriala. Ah - jak to dobrze że mam takie odruchy - coraz trudniej bowiem o filantropów. Słuchając suity Tangerine Dream - RUBYCON - dzielę się więc kolejnymi przemyśleniami o amatorszczyźnie i egzystencji na tym łez padole :->
Od kiedy zajmuję się amatorsko platformą
BeagleBone Black, od zawsze zastanawiał mnie temat - jak i gdzie pomieścić wszystkie
aplikacje które mogą mi być przydatne podczas tworzenia projektów robotycznych, komputerowych i innych na tę
platformę albo i też kompletnie nieprzydatne - przecież nie mam o tym zielonego pojęcia i w ogóle porywam się z motyką na Księżyc!!!
Ludzie ja nawet prostego Arduino nie potrafię "ZACZAIĆ", skonstruować prostego obwodu elektronicznego też nie jetem w stanie - "bo Pan potrafi tylko bateryjkę podłączyć" - z sarkazmem i niekłamaną pogardą ciamkał w roku 1998 na zajęciach mój wykładowca od elektroniki - więc z czym do cholery do ludzi - poważnego Linuxa odpalać!!!. Takich jak ja powinni utylizować za brak odpowiedniej ilości IQ!!!
W każdym razie kiedyś, gdzieś zacząłem drążyć temat i poczytałem jak rozszerzyć istniejącą partycję Linux'a
ze standardowego rozmiaru na cały dysk lub urządzenie blokowe na którym jest on
zainstalowany.
W przypadku BBB standardowo producent zaleca
pierwsze uruchamianie i konfigurację z wbudowanego w ten system eMMC o
pojemności 4GB lub 2GB (zależy od wersji). Niemniej każdy użytkownik szybko
stwierdzi że to jednak trochę mało na np. biblioteki openCV i inne rzeczy.
Jako, że BBB posiada slot karty SD oraz
możliwość uruchomienia z niej systemu uprzednio tam "wpreparowanego"
z obrazu dostępnego TUTAJ, Ja osobiście zakupiłem do tego celu kartę o pojemności SanDisk ExtremePRO16GB.
Po zaimplementowaniu na niej bootowalnego
obrazu Debian Wheezy ciągle reszta tej karty (~12GB) pozostawała nieużywana.
Zdecydowałem się posiedzieć nad tym problemem i poszukać rozwiązania a
następnie w miarę możliwości podzielić się tym co udało się zrobić.
Wszystkie poniższe polecenia wykonałem na
systemie Debian Wheezy ale powinny one działać też na instalowanym wcześniej na
tych platformach Angstrom a nawet Ubuntu.
Doradzam jednak aby każdy we własnym zakresie
wykonał sobie kopię tego co już ma na swojej karcie SD, żeby potem uniknąć
niepotrzebnych problemów i konfiguracji Beagle na nowo.
Oto dodatkowo jeszcze w rozwiązaniu tego problemu
wydatnie pomógł kolega Jakub K. z miasta "Karakowa", PER - FE - KCYJ - NIE biegły w temacie, "Linuksów"
któremu dziękuję za naprowadzenie na ideę działania urządzeń blokowych w
Linuksach.
No dobrze po pierwsze przyjrzyjmy się z czym
mamy do czynienie i na jakim urządzeniu będziemy pracowali:
Będąc zalogowani jako root, wpisujemy:
fdisk -l
Polecenia pokaże nam partycje naszego systemu
uruchomionego na BBB. Ta którą będziemy zmieniać - powiększać ma oznaczenie mmcblk0 (tak będzie widziana nasza karta SD po uruchomieniu z niej
systemu).
Teraz używając programu fdisk - bo w
istocie jest to program, możemy zmienić rozmiar naszej istniejącej partycji -
warunek musi być "niezalokowane" miejsce na naszym dysku (karcie
SD). Wykonamy usunięcie istniejącej
partycji, a potem stworzymy nową, rozszerzając jej pojemność na całą kartę SD.
Wpisujemy polecenie:
fdisk /dev/mmcblk0
Polecenie powinno otworzyć dostęp programowi
fdisk do urządzenia blokowego mmcblk0 - naszej karty SD.
Otrzymamy komunikat:
Command (m for help):
Komenda 'm' uruchomi nam pomoc
programu - dla początkujących. Jak do tej pory nasza karta jest bezpieczna - a
bezpieczna jest dopóki nie wprowadzimy komendy 'w' zatwierdzającej
zmiany!
Jeśli nie jesteśmy pewni naszych poczynań, w
każdej chwili możemy poniechać naszych zmian naciskając 'q' -
zakończenie bez żadnych zmian.
No dobrze - poniżej zamieszczam właściwy -
przykładowy scenariusz - jak powiększyć partycję na karcie dla platformy BBB:
fdisk
/dev/mmcblk0
Command (m for
help): d
Partition number
(1-4): 2
Command (m for
help): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default
p): p
Partition number
(1-4, default 2): 2
First sector (numer początkowego sektora
karty SD, default 4096): <enter>
Using default
value na przykład 4096
Last sector,
+sectors or +size{K,M,G} (numer ostatniego sektora karty SD, default
15523839): <enter>
Using default value Użyj domyślnych wartości zaproponowanych przez program dla Twojej karty SD
Command (m for help): w - zapisanie
wszystkiego
Po tym pokażą się nam jeszcze następujące
komunikaty:
The partition
table has been altered!
Calling ioctl()
to re-read partition table.
WARNING:
Re-reading the partition table failed with error 16:
Device or
resource busy. The kernel still uses the old table.
The new table
will be used at the next reboot or after you run
partprobe(8) or
kpartx(8)
Syncing disks.
Po czym otrzymamy standardowy znak zachęty:
Partycja jest w użyciu i powiększona, nie
zobaczymy jednak żadnych zmian dokąd nie zrestartujemy Beagle. Do dzieła:
shutdown -r now
Kiedy BBB się zrestartuje, mamy nadal 4GB do
dyspozycji pomimo, że system widzi 16GB, nie wiem jak dokładnie to wyjaśnić ale
opiszę sposób uzyskania dostępu do pełnej powiększonej 16GB partycji.
Poniżej polecenie. Jako root wpisujemy
komendę:
resize2fs
/dev/mmcblk0p2
Kiedy komenda się wykona, resetujemy BBB
jeszcze raz i po zalogowaniu wydajemy polecenie ‘df -h‘.
Po jego zastosowaniu powinniśmy dostać
następująca informację tak było w przypadku mojej karty (U Was może być inaczej):
Uważam to rozwiązanie za lepsze niż męczenie
się z zewnętrznymi nośnikami na dane np pendrive, inna sprawa, że jeśli mamy
dobrej jakości kartę SD (ja użyłem SanDisk Extreme PRO 90MB/s - zapis; 95MB/s
odczyt) to tym bardziej jest to korzystne rozwiązanie.
Do następnego razu i następnych zmagań z Motyką. Bedzie ich chyba jeszcze trochę. W międzyczasie Posłuchajcie tego: https://www.youtube.com/watch?v=pCri6lFSJAQ