Małe zadanie #7

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