Małe zadanie #6

Proszę pobawić się gołym obrazem systemu plików, czyli:

  • stworzyć plik na system plików (wypełniony zerami)

  • stworzyć w nim system plików (dla uproszczenia revision 0, bez żadnych dodatkowych usprawnień (argumenty do mke2fs: -r 0 -O "")

  • zrobić kopię obrazu

  • zamontować go i utworzyć plik z rozpoznawalnymi danymi, np literami ‘a’

  • odmontować

  • porównać obraz sprzed utworzenia pliku i po i zidentyfikować odpowiednie obszary:

    • superblok

    • deskryptor grupy

    • i-węzeł

    • dane katalogu

    • dane pliku

  • zmodyfikować datę utworzenia pliku

  • dopisać do pliku trochę danych, nie zmieniając liczby bloków:

    • zmienić rozmiar pliku w i-węźle

    • dopisać rozpoznawalne dane

  • dopisać do pliku trochę danych dodając nowy blok, czyli:

    • zmienić bitmapę bloków

    • dopisać do i-węzła numer nowego bloku

    • zmienić rozmiar w i-węźle

    • ustawić dane w bloku

  • dopisać nowy plik do katalogu, czyli:

    • zaalokować nowy inode, uwzględniając go w bitmapie i licznikach wolnych inodów

    • wypełnić odpowiednio inode

    • stworzyć wpis katalogowy wskazujący na ten inode

    • podpiąć jakieś bloki z danymi pod inode (jak wyżej)

Aby zaliczyć zadanie, należy przesłać (skompresowane) wersje tego samego obrazu przed i po stworzeniu nowego pliku (system plików nie powinien być w międzyczasie montowany do zapisu - proszę testować montując z -o ro). Obrazy powinny przechodzić przez fsck bez żadnych ostrzeżeń.