Skocz do zawartości

Rozszerzenie partcji na karcie SD


Pomocna odpowiedź

Od kiedy zajmuję się amatorsko platformą BeagleBone Black, od zawsze frapował mnie temat jak i gdzie pomieścić wszystkie aplikacje które mogą mi być przydatne podczas tworzenia projektów na tę platformę. Kiedyś gdzieś 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, Ja osobiście zakupiłem do tego celu kartę o pojemności 16GB.

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.

Dodatkowo w rozwiązaniu tego problemu wydatnie pomógł kolega Jakub, biegły w temacie, "Linuksów wszelakich" 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):

Using default value na przykład 4096

Last sector, +sectors or +size{K,M,G} (numer ostatniego sektora karty SD, default 15523839):

Using default value numer określający ostatni sektor naszej 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ę:

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.

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.