» »

Mount read-only JE ali NI read only?

Mount read-only JE ali NI read only?

poweroff ::

Torej, v eni novici (Linux bo morda pospešil delo računalniških forenzikov) je bilo govora o tem, da če skušamo priklopiti nek datotečni sistem kot read-only, ga Linux v resnici ne bo priklopil kot read-only. Menda naj bi bilo treba mountu podati parameter -noatime.

Zato sem se odločil za par testov. Vzel sem USB ključek in ga formatiral z FAT32, NTFS in ext3. Uporabljam Ubuntu 7.10.

Potem sem na napravi naredil eno datoteko test.txt, napravo odklopil in potem:
1. izračunal MD5 hash (md5sum /dev/sdc1)
2. napravo priklopil kot read-only (sudo mount -o ro /dev/sdc1 /mnt/)
3. izpisal vsebino datoteke test.txt (cat /mnt/test.txt)
4. napravo odklopil (sudo umount /mnt)
5. izračunal MD5 hash (md5sum /dev/sdc1)

6. napravo priklopil kot read-write (sudo mount -o rw /dev/sdc1 /mnt/)
7. izpisal vsebino datoteke test.txt (cat /mnt/test.txt)
8. napravo odklopil (sudo umount /mnt)
9. izračunal MD5 hash (md5sum /dev/sdc1)

Rezultati:

FAT32 razdelek
==============
Prvi hash:
e884126d99d90527ebd07c0c80673650 /dev/sdc1

Hash po read-only:
e884126d99d90527ebd07c0c80673650 /dev/sdc1

Hash po read-write:
e884126d99d90527ebd07c0c80673650 /dev/sdc1


NTFS razdelek
=============
Prvi hash:
bd6dfbf145d69c84d104cee01d360f7f /dev/sdc1

Hash po read-only:
bd6dfbf145d69c84d104cee01d360f7f /dev/sdc1

Hash po read-write (sprememba!):
3dea940f203ffdd963551ecc095094f4 /dev/sdc1


ext3 razdelek
=============
Prvi hash:
b24d67cd130cea58964047a31d7e87ba /dev/sdc1

Hash po read-only:
b24d67cd130cea58964047a31d7e87ba /dev/sdc1

Hash po read-write (sprememba!):
7a8c6fc9f0ba7960be3c892408e0f859 /dev/sdc1


Skratka. Moji testi kažejo, da če datotečni sistem priklopim kot read-only, se le-ta NE SPREMENI. Se pa spremeni NTFS in ext3, če ju priklopim kot read-write (pa čeprav gor nič ne pišem).

Zdaj mi pa ni povsem jasno, od kje ideja, da bi bilo treba podati parameter -noatime, oziroma, da Linux pri read-only sistemu spreminja file access time. Nekdo je omenil, da lahko kljub -ro pride do replaya journala. Lahko kdo bolj razloži kaj je to?
sudo poweroff
  • spremenilo: poweroff ()

BigWhale ::

Mnja, nekaj taksnega sem tudi jaz trdil...

Mountaj kot rw in -noatime pa dostopaj do datoteke in potem naredi hash.

Zgodovina sprememb…

  • spremenil: BigWhale ()

poweroff ::

Pa dajmo:
md5sum /dev/sdc1
7a8c6fc9f0ba7960be3c892408e0f859 /dev/sdc1

sudo mount -o rw -noatime /dev/sdc1 /mnt/
cat /mnt/test.txt
sudo umount /mnt/
md5sum /dev/sdc1
c8431cc04b402e90f98acab5b8174407 /dev/sdc1

Zanimivo: se NE ujema.
sudo poweroff

poweroff ::

Hmm... pazite tole, namesti sdc1, računam hash od sdc:

md5sum /dev/sdc
fd7526802a98ca5f203ec55b49c26e61 /dev/sdc

sudo mount -o ro /dev/sdc1 /mnt/
cat /mnt/test.txt
sudo umount /mnt

md5sum /dev/sdc1
7c6190d6a4f83dee1c5c4e21912c7203 /dev/sdc1

OKIE, kako priklopit particijo, da se sdc ne spremeni sploh?
sudo poweroff

poweroff ::

Pa še tole:

Disk /dev/sdc: 31 stez, 255 glav, 63 sektorjev/stezo
Enote = steze po 8225280 bajtov, bloki po 1024 bajtov, štejem od 0

Naprava Zagon Začetek Konec #steze #bloki Id Sistem
/dev/sdc1 0+ 30 31- 248976 83 Linux
/dev/sdc2 0 - 0 0 0 Prazno
/dev/sdc3 0 - 0 0 0 Prazno
/dev/sdc4 0 - 0 0 0 Prazno
sudo poweroff

poweroff ::

OK, ZDAJ mi pa sploh ni nič več jasno:

md5sum /dev/sdc
447c76cec0b8779f9946d7536a7eb2b3 /dev/sdc

sudo mount -r -noatime -nodiratime /dev/sdc1 /mnt
cat /mnt/test.txt
sudo umount /mnt/

md5sum /dev/sdc
447c76cec0b8779f9946d7536a7eb2b3 /dev/sdc

sudo mount -r /dev/sdc1 /mnt (BREZ -noatime -nodiratime!!!)
cat /mnt/test.txt

sudo umount /mnt/

md5sum /dev/sdc
447c76cec0b8779f9946d7536a7eb2b3 /dev/sdc


WTF??
sudo poweroff

poweroff ::

sudo mount -o ro /dev/sdc1 /mnt/
cat /mnt/test.txt
sudo umount /mnt

md5sum /dev/sdc1
4a0ee06e98d1180d3eeb50b2b1349936 /dev/sdc1


SE PRAVI: mount -o ro NI ENAKO mount -r??

Zakaj pa man page pravi, da je?
sudo poweroff

jype ::

Odvisno od samega datotečnega sistema se zapišejo različne reči - pri tistih, ki vodijo dnevnik zapisov, se recimo ponovijo zapisi, kar lahko preprečimo z ustreznimi parametri (man mount), vendar to datotečni sistem lahko pusti v stanju, ki ne ustreza specifikaciji zapisa (in se morda lahko gonilnik za ta datotečni sistem spotakne ob kakšen zgolj na pol zapisan blok podatkov).

Pogosto se zapišejo tudi metapodatki - ext2/3 pri odklopu (unmount) poveča število priklopov (mount), da lahko sistem požene fsck, ko je datotečni sistem bil toliko-in-tolikokrat priključen.

Pa verjetno je še kaj drugega - sem pa prepričan, da se file access time ne zapisuje, če je datotečni sistem priključen samo za branje.

Zgodovina sprememb…

  • spremenilo: jype ()

poweroff ::

OKIE, obstaja torek nek splošen ukaz, ki FS vedno priklopi kot read only?
sudo poweroff

jype ::

Bolj ne kot ja.

hdparm -r naprava

Onemogoči pisanje na to napravo. Na celo napravo, ki mora biti neke vrste disk (ATA, SATA, SCSI, SAS).

Nekatera orodja (dumpe2fs, na primer) omogočajo brskanje po datotečnem sistemu, ne da bi se dotikala česarkoli na disku.

poweroff ::

Hmm, zdajle sem ugotovil, da sem nekoliko zmeden. Prej zgoraj sem se namreč grdo zmotil - najprej sem računal hash od sdc, nato pa hash od sdc1. Seveda sta se razlikovala.

No, zdaj sem skripto napisal na novo in pognal in dejansko je hash od sdc vedno enak:

-r -noatime -nodiratime

447c76cec0b8779f9946d7536a7eb2b3 /dev/sdc

-r
447c76cec0b8779f9946d7536a7eb2b3 /dev/sdc

-o ro
447c76cec0b8779f9946d7536a7eb2b3 /dev/sdc

Primož mi je sicer rekel, da journal vedno replaya , vendar pa to naredi v RAM-u. Če je to res, me ne moti - naj dela v RAMu, kar pač mora, dokler mi ne packa po disku.

Jype: se lahko seda zanesem na to, da mi diska ne bo spreminjal ali bi moral vseeno uporabiti hdparm -r (just in case)? Zanima me seveda za katerikoli FS, ne samo ext3...
sudo poweroff

poweroff ::

No, sem pa našel še eno zanimivo zadevo, kot kaže namreč livecdji uporabljajo swap od "gostujočega" sistema.

Pri Knoppixu pri remasteringu je treba spremeniti tole:

vi /mnt/hda1/knx/source/KNOPPIX/etc/init.d/knoppix-autoconfig

NOSWAP=""
checkbootparam "noswap" && NOSWAP="yes"

spremenimo v:

# Disable swap
NOSWAP="yes"
#checkbootparam "noswap" && NOSWAP="yes"

Morda kdo ve kaj bi bilo treba spremeniti pri Ubuntu CDju?
sudo poweroff

poweroff ::

Če zaženel Ubuntu livecd in rečem cat /proc/swaps, mi ne napiše nobene swap particije.

In to če dam boot parameter live noswap ali če ne dam nobenega parametra.

Je pa res, da imam swap sicer kriptiran... Kako lahko vidim, če je livecd priklopil swap gostujočega sistema?
sudo poweroff

BigWhale ::

cat /proc/swaps bi moral zadostovati.

poweroff ::

Hja, potem je Ubuntu livecd flawed by design. :-)

Zdajle sem sprobal na nekriptirani mašini. In če namreč dam boot parameter nowsap, mi zadeva vseeno swapne na disk...
sudo poweroff


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

USB ključ po namestitvi OS nanj

Oddelek: Pomoč in nasveti
8873 (635) Redorange
»

Software raid 1 (strani: 1 2 )

Oddelek: Pomoč in nasveti
5710526 (9668) uporabniik
»

Synology NAS DS413J pocasni prenosi

Oddelek: Strojna oprema
8782 (655) MK99
»

File server in router

Oddelek: Pomoč in nasveti
211467 (942) ABX
»

MyBook STUDIO pod Ubuntu

Oddelek: Operacijski sistemi
9987 (891) Zero0ne

Več podobnih tem