.. _09-zadanie:

===============
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ń.