Próbuję utworzyć skrypt bash, który utworzy nową partycję z systemem plików na dysku z istniejącymi partycjami.
Wygląda na to, że tworzenie partycji jest łatwe programowo, ale wymaga wiedzy, od czego zacząć i zatrzymać nową partycję, i tutaj mam problemy.
Nie chcę polegać na tym, że dysk ma partycje w określonej pozycji / rozmiarze. Oznacza to, że chcę utworzyć nową partycję, rozpoczynającą się natychmiast po ostatniej istniejącej. Chcę mieć możliwość utworzenia partycji o stałym rozmiarze lub wypełnienia pozostałej przestrzeni.
W Bash istnieje wiarygodny sposób określania
a) pozycja końcowa ostatniej partycji, i
b) pozostała przestrzeń niepodzielona na partycje po ostatniej partycji?
Odpowiedzi:
parted
można wydrukować wolne miejsce. Przykład (celowo wybrałem skomplikowany):Jak widać, daje to bezpośrednio pozycję i rozmiar partycji, którą możesz być w stanie utworzyć, tj. Ostatni wiersz, który mówi
Free Space
. Możesz utworzyć partycję, która zaczyna się od 31115264s, a kończy na 31116287s.Gdyby nie pułapka, rozszerzona partycja nie jest wystarczająco duża!
Ale może już używasz GPT, gdy nie cierpisz z powodu takich komplikacji.
Chwytanie liczb powinno być dość łatwe.
Lub coś podobnego. (Oczywiście chciałbyś tutaj zrobić więcej kontroli zdrowia).
@swisscheese zrobił dobry komentarz w drugiej odpowiedzi, nie wiedziałem, że
parted
oferuje przyjazny wynik analizy. Możesz zamiast tego użyć tego. Przykład wykorzystania ostatniej największej darmowej:To, czy ma to zastosowanie do twojej sytuacji (w moim przykładzie nie można tam utworzyć partycji, jest już naprawdę pełna), jest czymś, co musisz samemu wymyślić. :)
źródło
parted -m $disk unit s print free | grep "free;" | tail -n 1 | awk -F':' '{print $2 " " $3}'
To proste,
mkparted
ma--list
opcję, musisz użyćawk
i--list
pobrać ostatnią partycję, a następnie użyćmkpart part-type [fs-type] start end
,Ale twoja odpowiedź:
Najpierw powinieneś uzyskać wszystkie partycje oraz:
Uwagi:
GB
naMG
.variable
-s
w swoimparted command
ostatecznym skrypcie.Jeśli mam czas, proszę ukończyć ten skrypt przepraszam, że nie mam czasu.
źródło