File system lab

Keskkond: Virtual Box, installitud ubuntu server/desktop lisatud virtuaalse kõvakettaga suusrusega 2GB

Ülesanne:

Labori jooksul loome uue partatsiooni tabeli ja jaotame lisatud ketta /dev/sdb mitmeks osaks formattides need jaotused erinevate failsüsteemidega:

Lahendus:

Enne virtual masina startimist tuleb kontrollida kas on lisatud ubuntule lisa kõvakettas suurusega 2GB.

Uue ketta lisamine virtual masinale:

Vali VirtualBox-is vajalik virtual masin -> Settings -> Storage -> Sata Controller -> + Add Hard Disk(ikoon: kettad üksteise peal)
Create New Disk -> VDI -> Dynamically allocated -> Location: Ketas2, Size: 2GB -> Create

Storage -> Sata Controller-i alla peaks tekkima lisatud ketas määrangutes antud nime, tüübi ja suurusega


Peale virtual linuxi startimist kontrollime kas uus ketas on Linuxi poolt nähtav:

$ fdisk -l


Disk /dev/sda: 7516 MB, 7516192768 bytes
255 heads, 63 sectors/track, 913 cylinders, total 14680064 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0004ea67

Device Boot Start End Blocks Id System
/dev/sda1 * 2048 13213695 6605824 83 Linux
/dev/sda2 13215742 14678015 731137 5 Extended
/dev/sda5 13215744 14678015 731136 82 Linux swap / Solaris

Disk /dev/sdb: 536 MB, 536870912 bytes
255 heads, 63 sectors/track, 65 cylinders, total 1048576 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sdb doesn't contain a valid partition table

Siit on näha et uus kõvakettas /dev/sdb on süsteemis kuid puudub partatsiooni tabel ja me võime teda hakkata partitsioneerida
Käivitame diski partitsioneerimis programmi:

$ fdisk /dev/sdb

Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0xe1e6b8be.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

NB! Järgnevad käsud modifitseerivad mälus partatsiooni tabeli seisu ja ei muuda kettal informatsiooni.
Loome uue DOS partatsioonide tabeli (Ainult siis kui diskil pole vajalikku infot):

Command (m for help): o
Building a new DOS disklabel with disk identifier 0x292de4f9.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Kontrollime mis on diskil, prindime partatsioonide nimistu:

Command (m for help): p

Disk /dev/sdb: 536 MB, 536870912 bytes
255 heads, 63 sectors/track, 65 cylinders, total 1048576 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x292de4f9

Device Boot Start End Blocks Id System

Loome kaks linux tüüpi peapartitsiooni() suurustega 400MB ja 600MB järgmiselt (rohelise värviga on näidatud käsud fdisk programmis)

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4, default 1):1
First sector (2048-1048575, default 2048): vajuta Enter
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-1048575, default 1048575): +400M
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4, default 2): 2
First sector (206848-1048575, default 206848): vajuta Enter
Using default value 206848
Last sector, +sectors or +size{K,M,G} (206848-1048575, default 1048575): +600M

Lisame extended partatsiooni kolmandasse peapartatsiooni:

Command (m for help): n
Command action
e extended
p primary partition (1-4)
e
Partition number (1-4, default 2): 3
First sector (206848-1048575, default 206848): vajuta Enter
Using default value 206848
Last sector, +sectors or +size{K,M,G} (206848-1048575, default 1048575): vajuta Enter
Using default value 1048575

Lisame loogilise partatsiooni suurusega 500MB extended partatsiooni sisse:

Command (m for help): n
Command action
l logical
p primary partition (1-4)
l
Partition number (1-4, default 5): vajuta Enter
First sector (206848-1048575, default 206848): vajuta Enter
Using default value 206848
Last sector, +sectors or +size{K,M,G} (206848-1048575, default 1048575):
+500M

Ülejäänud pinna kasutame loogilise partatsiooni jaoks extended partatsioonis:

Command (m for help): n
Command action
l logical
p primary partition (1-4)
l
Partition number (1-4, default 6): vajuta Enter
First sector (206848-1048575, default 206848): vajuta Enter
Using default value 206848
Last sector, +sectors or +size{K,M,G} (206848-1048575, default 1048575): vajuta Enter

Käsuga "p" kontrollime kas kõik on korras. Peaks olema midagi sellist:

Command (m for help): p

Disk /dev/sdb: 536 MB, 536870912 bytes
255 heads, 63 sectors/track, 65 cylinders, total 1048576 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x292de4f9

Device Boot Start End Blocks Id System
/dev/sdb1 2048 206847 102400 83 Linux
/dev/sdb2 206848 1048575 420864 83 Linux
/dev/sdb3 206848 1048575 420864 83 Extended
/dev/sdb5 2048 206847 102400 83 Linux
/dev/sdb6 206848 1048575 420864 83 Linux

Partatsiooni tüübi muutmiseks kasutame käsku "t"
Näiteks muudame 6 partatsiooni tüübi HPFS/NTFS-iks

Command (m for help): t

Partition number (1-6): 6

Hex Code (type L to list codes): 7

Näiteks muudame 3 partatsiooni tüübi SWAP-iks

Command (m for help): t

Partition number (1-6):5

Hex Code (type L to list codes):82

Käsuga "p" kontrollime uuesti kas kõik on korras. Peaks olema:

Command (m for help): p

Disk /dev/sdb: 536 MB, 536870912 bytes
255 heads, 63 sectors/track, 65 cylinders, total 1048576 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x292de4f9

Device Boot Start End Blocks Id System
/dev/sdb1 2048 206847 102400 83 Linux
/dev/sdb2 206848 1048575 420864 83 Linux
/dev/sdb3 206848 1048575 420864 83 Extended
/dev/sdb5 2048 206847 102400 82 Linux swap / Solaris
/dev/sdb6 206848 1048575 420864 7 HPFS/NTFS/exFAT

NB! Kui soovid muudatused salvestada kõvakettale kindlasti vajuta "w"
Kirjutame muudatused mälust diskile ja väljume programmist:

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

Loome failsüsteemid kettal /dev/sdb.
$ mkfs.ext3 /dev/sdb1
$ mkfs.ext4 /dev/sdb2
$ mkfs.ntfs /dev/sdb6

Loome swap partatsiooni:
$ mkswap /dev/sdb5

Kontrollime vajadusel failisüsteeme, PS! failisüsteemid peavad olema lahti monteeritud kontrollimisel:
$ fsck.ext3 /dev/sdb1
$ fsck.ext4 /dev/sdb2
$ ntfsfix /dev/sdb6

Loome monteerimis katalogid katalogis /mnt:
$ cd /mnt; mkdir ext3 ext4 ntfs

Loome katalogid failisüsteemi monteerimiseks:
$ mount -t ext3 /dev/sdb1 /mnt/ext3
$ mount -t ext4 /dev/sdb2 /mnt/ext4
$ mount -t ntfs /dev/sdb6 /mnt/ntfs

Lähme monteeritud kataloogi, loome seal uue faili ja katalogi ning kopeerimime mingi faili.

$ cd /mnt/ext3; mkdir uus; touch uus.txt
$ cp /var/log/syslog* /mnt/ext3
$ ls -l

Käsuga df (device free) saame vaadata monteeritud partatsioone:

$ df -h

Ühendame swap partatsiooni

$ swapon /dev/sdb5

Kontrollime swap partatsioone

$ cat /proc/swaps

Vaatame palju ruumi võtavad failid antud katalogis ja alamkatalogides.
# du /mnt/ext3

Vaatame palju ruumi võtab kõik mis katalogis ja alamkatalogides
# du -s /mnt/ext3

Kontrollime monteeritud failisüsteemi käitumist demonteerimisel.
Kui vastav katalog on hõivatud kellegi või mingisuguse protsessi poolt siis lahti monteerida seda kataloogi ei saa

$ cd /mnt/ext3
$ umount /mnt/ext3
Peaks ilmuma veateade et failisüsteem on hõivatud.

Nüüd väljume katalogist ja proovime uusesti:
$ cd /mnt
$ umount /mnt/ext3

Lisaks

Kui süsteemis on CD/DVD seade, saab monteerida CDROM seadme readonly õigustega ja vaadata katalogi siisu.
Pane seadmesse mõni disk infoga ja kontrolli kas suudad külge monteerida ja näed ka diski sisu:
$ mount -o ro /dev/sr0 /mnt/cdrom
$ ls -l /mnt/cdrom