Week 13 FAT32 Utility Operations Guide: rmand rmdir · Week 13 FAT32 Utility Operations Guide:...

37
Week 13 FAT32 Utility Operations Guide: rm and rmdir 1 Classes COP4610 / CGS5765 Florida State University

Transcript of Week 13 FAT32 Utility Operations Guide: rmand rmdir · Week 13 FAT32 Utility Operations Guide:...

Page 1: Week 13 FAT32 Utility Operations Guide: rmand rmdir · Week 13 FAT32 Utility Operations Guide: rmand rmdir 1 Classes COP4610 / CGS5765 Florida State University. Outline Problem of

Week 13

FAT32 Utility Operations

Guide: rm and rmdir

1

Classes COP4610 / CGS5765

Florida State University

Page 2: Week 13 FAT32 Utility Operations Guide: rmand rmdir · Week 13 FAT32 Utility Operations Guide: rmand rmdir 1 Classes COP4610 / CGS5765 Florida State University. Outline Problem of

Outline

� Problem of orphaned data

� File removal walkthrough

� Directory removal walkthrough

2

Page 3: Week 13 FAT32 Utility Operations Guide: rmand rmdir · Week 13 FAT32 Utility Operations Guide: rmand rmdir 1 Classes COP4610 / CGS5765 Florida State University. Outline Problem of

Orphans

3

Page 4: Week 13 FAT32 Utility Operations Guide: rmand rmdir · Week 13 FAT32 Utility Operations Guide: rmand rmdir 1 Classes COP4610 / CGS5765 Florida State University. Outline Problem of

What is orphaned data?

� Orphaned data – data marked as valid in the

file system that cannot be reached through

the file system mechanisms

� How could this ever happen?� How could this ever happen?

4

Page 5: Week 13 FAT32 Utility Operations Guide: rmand rmdir · Week 13 FAT32 Utility Operations Guide: rmand rmdir 1 Classes COP4610 / CGS5765 Florida State University. Outline Problem of

Orphan Example

� Suppose we want to delete a file

� It has

� A directory entry with a first cluster number

� Data clusters� Data clusters

� Entries in the FAT

5

Page 6: Week 13 FAT32 Utility Operations Guide: rmand rmdir · Week 13 FAT32 Utility Operations Guide: rmand rmdir 1 Classes COP4610 / CGS5765 Florida State University. Outline Problem of

Orphan Example

FAT

1 2 3 4 5 6 7

4 EoC

Index

Next Cluster

Our sample file

starts at cluster 3

DATA

DATA

6

Dir Entry: First Cluster # 3

3

4

Cluster

numbers

and continues to

cluster 4.

Page 7: Week 13 FAT32 Utility Operations Guide: rmand rmdir · Week 13 FAT32 Utility Operations Guide: rmand rmdir 1 Classes COP4610 / CGS5765 Florida State University. Outline Problem of

Orphan Example

� Normally when we want to find a file’s

contents, we start by reading its directory

entry contents

� What if we start deleting there?� What if we start deleting there?

7

Page 8: Week 13 FAT32 Utility Operations Guide: rmand rmdir · Week 13 FAT32 Utility Operations Guide: rmand rmdir 1 Classes COP4610 / CGS5765 Florida State University. Outline Problem of

Orphan Example

FAT

1 2 3 4 5 6 7

4 EoC

Index

Next Cluster

Step 1: Read the

file’s first cluster

DATA

DATA

8

Dir Entry: First Cluster # 3

3

4

Cluster

numbers

number into

memory.

Page 9: Week 13 FAT32 Utility Operations Guide: rmand rmdir · Week 13 FAT32 Utility Operations Guide: rmand rmdir 1 Classes COP4610 / CGS5765 Florida State University. Outline Problem of

Orphan Example

FAT

1 2 3 4 5 6 7

4 EoC

Index

Next Cluster

Step 2: Delete the

file’s directory

DATA

DATA

9

3

4

Cluster

numbers

entry.

Page 10: Week 13 FAT32 Utility Operations Guide: rmand rmdir · Week 13 FAT32 Utility Operations Guide: rmand rmdir 1 Classes COP4610 / CGS5765 Florida State University. Outline Problem of

Orphan Example

FAT

1 2 3 4 5 6 7

4 EoC

Index

Next Cluster

Step 3: Look up

cluster 3 in the

DATA

DATA

10

3

4

Cluster

numbers

FAT.

Page 11: Week 13 FAT32 Utility Operations Guide: rmand rmdir · Week 13 FAT32 Utility Operations Guide: rmand rmdir 1 Classes COP4610 / CGS5765 Florida State University. Outline Problem of

Orphan Example

FAT

1 2 3 4 5 6 7

4 EoC

Index

Next Cluster

Step 4: Read the

file’s next cluster

DATA

DATA

11

3

4

Cluster

numbers

number into

memory (4).

Page 12: Week 13 FAT32 Utility Operations Guide: rmand rmdir · Week 13 FAT32 Utility Operations Guide: rmand rmdir 1 Classes COP4610 / CGS5765 Florida State University. Outline Problem of

Orphan Example

FAT

1 2 3 4 5 6 7

4 EoC

Index

Next Cluster

DATA

DATA

12

3

4

Cluster

numbers

Crash!

Page 13: Week 13 FAT32 Utility Operations Guide: rmand rmdir · Week 13 FAT32 Utility Operations Guide: rmand rmdir 1 Classes COP4610 / CGS5765 Florida State University. Outline Problem of

Orphan Example

� We just crashed and have to reboot the

system

� Can the file system get to the data we were

deleting?deleting?

13

Page 14: Week 13 FAT32 Utility Operations Guide: rmand rmdir · Week 13 FAT32 Utility Operations Guide: rmand rmdir 1 Classes COP4610 / CGS5765 Florida State University. Outline Problem of

Orphan Example

FAT

1 2 3 4 5 6 7

4 EoC

Index

Next ClusterWe are now in

trouble. Since

we deleted the

DATA

DATA

14

3

4

Cluster

numbers

we deleted the

file’s directory

entry, we don’t

know where the

file started…

Page 15: Week 13 FAT32 Utility Operations Guide: rmand rmdir · Week 13 FAT32 Utility Operations Guide: rmand rmdir 1 Classes COP4610 / CGS5765 Florida State University. Outline Problem of

Orphan Example

FAT

1 2 3 4 5 6 7

4 EoC

Index

Next Cluster

Leftover entries

DATA

DATA

15

3

4

Cluster

numbers

Leftover entries

in the FAT that

we can never

reclaim…

Allocated disk

space we can

never clean

up…

Page 16: Week 13 FAT32 Utility Operations Guide: rmand rmdir · Week 13 FAT32 Utility Operations Guide: rmand rmdir 1 Classes COP4610 / CGS5765 Florida State University. Outline Problem of

Preventing Orphans

� How can we avoid the chance of orphans

while we delete?

� Answer: delete backwards!

16

Page 17: Week 13 FAT32 Utility Operations Guide: rmand rmdir · Week 13 FAT32 Utility Operations Guide: rmand rmdir 1 Classes COP4610 / CGS5765 Florida State University. Outline Problem of

Preventing Orphans

FAT

1 2 3 4 5 6 7

4 EoC

Index

Next Cluster

Step 1: Read through

entire file until we

DATA

DATA

17

Dir Entry: First Cluster # 3

3

4

Cluster

numbers

find the last cluster

entry for the file in

the FAT

Page 18: Week 13 FAT32 Utility Operations Guide: rmand rmdir · Week 13 FAT32 Utility Operations Guide: rmand rmdir 1 Classes COP4610 / CGS5765 Florida State University. Outline Problem of

Preventing Orphans

FAT

1 2 3 4 5 6 7

4

Index

Next Cluster

Step 2: Mark the last

cluster as free. What

DATA

DATA

18

Dir Entry: First Cluster # 3

3

4

Cluster

numbers

happens if we crash

here?

Page 19: Week 13 FAT32 Utility Operations Guide: rmand rmdir · Week 13 FAT32 Utility Operations Guide: rmand rmdir 1 Classes COP4610 / CGS5765 Florida State University. Outline Problem of

Preventing Orphans

FAT

1 2 3 4 5 6 7

4

Index

Next Cluster

Step 3: Find the new

last file cluster in the

DATA

DATA

19

Dir Entry: First Cluster # 3

3

4

Cluster

numbers

FAT.

Page 20: Week 13 FAT32 Utility Operations Guide: rmand rmdir · Week 13 FAT32 Utility Operations Guide: rmand rmdir 1 Classes COP4610 / CGS5765 Florida State University. Outline Problem of

Preventing Orphans

FAT

1 2 3 4 5 6 7Index

Next Cluster

Step 4: Mark the last

cluster as free.

DATA

DATA

20

Dir Entry: First Cluster # 3

3

4

Cluster

numbers

Page 21: Week 13 FAT32 Utility Operations Guide: rmand rmdir · Week 13 FAT32 Utility Operations Guide: rmand rmdir 1 Classes COP4610 / CGS5765 Florida State University. Outline Problem of

Preventing Orphans

FAT

1 2 3 4 5 6 7Index

Next Cluster

Step 5: Finally, if all

the FAT entries for

DATA

DATA

21

3

4

Cluster

numbers

the file are marked

free, delete the

directory entry.

Page 22: Week 13 FAT32 Utility Operations Guide: rmand rmdir · Week 13 FAT32 Utility Operations Guide: rmand rmdir 1 Classes COP4610 / CGS5765 Florida State University. Outline Problem of

Preventing Orphans

FAT

1 2 3 4 5 6 7Index

Next Cluster

DATA

DATA

22

3

4

Cluster

numbers

Why don’t we zero

out the file’s data?

Page 23: Week 13 FAT32 Utility Operations Guide: rmand rmdir · Week 13 FAT32 Utility Operations Guide: rmand rmdir 1 Classes COP4610 / CGS5765 Florida State University. Outline Problem of

File Data Leftovers

� Most file systems only update metadata upon

deletion and leave old data as it was. Why?

� Old data will just be overwritten later anyway by new, valid data

� File system will never display old data to the user because it is no longer part of a file

� It can take a significant amount of time to zero over large amounts of file data

� Zeroing the data can cause extra wear on the device

23

Page 24: Week 13 FAT32 Utility Operations Guide: rmand rmdir · Week 13 FAT32 Utility Operations Guide: rmand rmdir 1 Classes COP4610 / CGS5765 Florida State University. Outline Problem of

File Data Leftovers

� File recovery utilities leverage this situation

� Scans the file system for data clusters that are not currently allocated

24

Page 25: Week 13 FAT32 Utility Operations Guide: rmand rmdir · Week 13 FAT32 Utility Operations Guide: rmand rmdir 1 Classes COP4610 / CGS5765 Florida State University. Outline Problem of

File Deletion

rm operation

25

Page 26: Week 13 FAT32 Utility Operations Guide: rmand rmdir · Week 13 FAT32 Utility Operations Guide: rmand rmdir 1 Classes COP4610 / CGS5765 Florida State University. Outline Problem of

File Deletion : rm

1. Check that the file to removed is a file and does

exist

� Cannot use this utility command to delete a directory

2. Seek to the last cluster entry in the FATSeek to the last cluster entry in the FAT

3. Mark the last cluster entry in the FAT with the

free mark of 0x00000000

4. Repeat 2 and 3 until there are no more cluster

entries in the FAT

5. Delete the file’s directory entry

26

Page 27: Week 13 FAT32 Utility Operations Guide: rmand rmdir · Week 13 FAT32 Utility Operations Guide: rmand rmdir 1 Classes COP4610 / CGS5765 Florida State University. Outline Problem of

Deleting a Directory Entry

� Can just mark the first byte in the directory

entry to symbolize deletion

� If DIR_Name[0] == 0xE5, then the directory entry is free (no file or directory name in this entry)

� If DIR_Name[0] == 0x00, then the directory entry is free (same as for 0xE5), and there are no allocated directory entries after this one

27

Page 28: Week 13 FAT32 Utility Operations Guide: rmand rmdir · Week 13 FAT32 Utility Operations Guide: rmand rmdir 1 Classes COP4610 / CGS5765 Florida State University. Outline Problem of

Deleting a Directory Entry

28

Deleted directory entry

staring with 0xE5

Page 29: Week 13 FAT32 Utility Operations Guide: rmand rmdir · Week 13 FAT32 Utility Operations Guide: rmand rmdir 1 Classes COP4610 / CGS5765 Florida State University. Outline Problem of

Deleting a Directory Entry

Starts with 0x00, so no more

29

Starts with 0x00, so no more

directory entries in this cluster

Page 30: Week 13 FAT32 Utility Operations Guide: rmand rmdir · Week 13 FAT32 Utility Operations Guide: rmand rmdir 1 Classes COP4610 / CGS5765 Florida State University. Outline Problem of

rm Use Cases

� Successful rm/FILES/] ls

. .. CONST.TXT EMPTY.TXT HELLO.TXT

/FILES/] rm HELLO.TXT

/FILES/]/FILES/]

� Unsuccessful rm/FILES/] rm NOTHERE.TXT

Error: does not exist

/FILES/]

30

Page 31: Week 13 FAT32 Utility Operations Guide: rmand rmdir · Week 13 FAT32 Utility Operations Guide: rmand rmdir 1 Classes COP4610 / CGS5765 Florida State University. Outline Problem of

Directory Deletion

rmdir

31

Page 32: Week 13 FAT32 Utility Operations Guide: rmand rmdir · Week 13 FAT32 Utility Operations Guide: rmand rmdir 1 Classes COP4610 / CGS5765 Florida State University. Outline Problem of

Directory Deletion: rmdir

1. Check that directory to be removed is empty

and is actually a directory

2. Go to step #2 for rm

� Rest of directions just like deleting a file!� Rest of directions just like deleting a file!

32

Page 33: Week 13 FAT32 Utility Operations Guide: rmand rmdir · Week 13 FAT32 Utility Operations Guide: rmand rmdir 1 Classes COP4610 / CGS5765 Florida State University. Outline Problem of

rmdir Use Cases

� Successful rmdir

/DIRS/] rmdir A

/DIRS/]

� Unsuccessful rmdir

/DIRS/] rmdir B

Error: directory not empty

/DIRS/]

33

Page 34: Week 13 FAT32 Utility Operations Guide: rmand rmdir · Week 13 FAT32 Utility Operations Guide: rmand rmdir 1 Classes COP4610 / CGS5765 Florida State University. Outline Problem of

rmdir Use Cases

� Unsuccessful rmdir

/DIRS/] cd ..

/] rmdir FATINFO.TXT

Error: not a directoryError: not a directory

/]

34

Page 35: Week 13 FAT32 Utility Operations Guide: rmand rmdir · Week 13 FAT32 Utility Operations Guide: rmand rmdir 1 Classes COP4610 / CGS5765 Florida State University. Outline Problem of

Next Time

� Today’s lecture is last recitation lecture

� Next recitation will be office hours

35

Page 36: Week 13 FAT32 Utility Operations Guide: rmand rmdir · Week 13 FAT32 Utility Operations Guide: rmand rmdir 1 Classes COP4610 / CGS5765 Florida State University. Outline Problem of

Project 3 Submission Hints

� Make sure everything is included!

� Points will be taken off if things are missing

� Make sure the project at least compiles

� If it doesn’t, it will get a 0.� If it doesn’t, it will get a 0.

� Please remove all executables and *.o files

before emailing submissions

� Please email submission to TA address

[email protected]

36

Page 37: Week 13 FAT32 Utility Operations Guide: rmand rmdir · Week 13 FAT32 Utility Operations Guide: rmand rmdir 1 Classes COP4610 / CGS5765 Florida State University. Outline Problem of

Questions?

� Good luck with project 3 and finals!

37