Iso-kat (CD, DVD image-eket) toltottem le, aztan checksum-ot neztem rajtuk, nemelyiket fel is mountoltam ahogy szokas mount -o loop-pal (semmi egyeb opcio). Az egyik ilyen iso-nal -veletlenul- mount elott meg utan is csinaltam checksum ellenorzest, amikor az a meglepetes ert, hogy a checksum megvaltozott! Letezik az, hogy a mount ir valamit az iso-ba? Ez nekem nagyon furan hangzik, de minimum kellemetlen amikor az ember iso-kat tarol valahol checksummal es azokat idonkent felmountolna, igy meg lehetetlen ellenorizni, hogy az iso serult-e. Azt ertem ha a mount beleir egy ext3/4 filerendszerbe, mert pl a last mount time stamp-et modositani kell, na de egy iso-ba ami read only-ba mountolodik?!?
Kb igy nezett ki nalam:
$ sha1sum file.iso
123456
$ sudo mount -o loop file.iso /mnt
$ sha1sum file.iso
654321
$sudo umount /mnt
$ sha1sum file.iso
654321
-------------------------------------------------------------------
update (2014.01.31 21:50)
Lent tobb kerdest meg jo tippet is kaptam, inkabb itt egyben valaszolok.
Szoval az iso-k az MS-tol vannak letoltve, a file szerint "ISO 9660 CD-ROM filesystem", de a mount valamiert udf-kent mountolja. Nemtom, az UDF-nek ugyanaz lenne a header-je...?
A mount ugyan eddig is kiirta, hogy read-only-ra mountol, de az "ro" opcio valoban segitett. Igy nem valtozik a checksum (vagyis nem irodik egy bit sem a file-ba):
mount -o loop,ro file.iso /mnt
Szoval megoldas van, de a dolog azert eleg kellemetlen tud lenni, mert konnyen tonkre lehet vele tenni checksum-okat...
-------------------------------------------------------------------
update (2014.02.06 17:25)
Kicsit elfoglalt voltam az elmult par napban, de ma vegre lejelentettem a bugot. Aki gondolja kommentelheti, vagy megnyomhatja a "This bug affects you" gombot.
https://bugs.launchpad.net/ubuntu/+source/kernel-package/+bug/1277146
Hozzászólások
Az publikus, hogy milyen CD image volt?
Szerk.: kétszer írtam alá, de akkor ha már itt vagyok a két checksum:
BlackY
tényleg, mi van ha az a .iso nem cdfs
~~~~~~~~
Linux 3.2.0-4-486
Debian 7.1
Semmi különös. A mount szarik arra, hogy mi a file kiterjesztése. Ha ext4 van rajta, akkor úgy fogja mountolni, ha xfs, akkor meg úgy. Már persze, ha ki tudja találni magától, de ki tudja.
én is erre akartam utalni, csak úgy tũnik, rossz eszközzel fejeztem ki magam.
tehát ettõl lehet hogy változik a fájl tartalma.
~~~~~~~~
Linux 3.2.0-4-486
Debian 7.1
Bocs, azt hittem kérdés.
Ezzel együtt, ha szerinte ro mountolta, akkor bazira nem kellene neki bármit megpiszkálnia a block deviceon (ami esetünkben ugye végeredményben a file maga)
UDF image-el sikerült előhoznom. K3b-ben csináltam egy image-t, mount után változott a sha1sum.
BlackY
Az ext4 speciel azért változik, mert a filerendszer mindenféle statisztikákat is tárol magáról, amiket mountoláskor és umountoláskor frissít. Hint: dumpe2fs /root/ext4.iso
Az oké, csak arra próbáltam célozni, hogy tényleg tudni kéne, hogy mi az az image :)
BlackY
esetleg ntfs-3g csomaggal?
# mount -o loop -t ntfs-3g file.iso /mnt
aztatat nem hiszem
(subscribe)
~~~~~~~~
Linux 3.2.0-4-486
Debian 7.1
Így..?
Az általad vázolt parancsokkal megnéztem egy iso-t. Nálam nem változott.
A file parancs mit mond erre az iso-ra neked?
ill mikor épp be van mountolva, akkor egy mount kimenet.
UDF formátumút?
(nem tudom, a kérdező előtted vagy utánad javította a leírást)
Az biztos, hogy saját gyártású, UDF formátumú, üres image-be beleszemetel a linux annak ellenére, hogy "... write-protected, mounting read-only" üzenettel mountolja.
Mondjuk valahol érthető, hiszen DVD-RAM is létezik, ami szintén UDF formátumot használ(hat).
Amit kevéssé értek: ha opciók nélkül mountolom, akkor is (ro) van mellette, ha -o ro opcióval, akkor is.
Előbbi esetben beleír, utóbbiban nem.
ez így első bliccre elég rusnyán hangzik...
+1
Pontosan ez a tapasztalat. Az hogy ertheto vagy sem nem tudom, mindenesetre engem jol megszivatott, ujra le kellett toltenem az image-eket, egy read only mount miatt...
Egyebkent E-Medve meg az update elott irt, pont emiatt is kerult bele a file kimenete az updatebe. (Direkt irtam idopontot az updatehez.)
Még annyi, hogy én Debian Wheezy alatt próbáltam, ro opció nélkül.
Valóban, wheezy-n jól működik.
Es biztosan UDF image-dzsel probaltatok?
Eredetileg nem (a file parancs ISO9660-nak látta), de most k3b-vel gyorsan csináltam UDF-es lemezt (file parancs UDF 1.5-nek látta).
Előtte, közben és utána ugyanaz volt az sha1sum értéke úgy, hogy nem adtam meg az ro opciót.
Hmm. Ezek szerint nem teljesen altalanos a dolog, hanem csak egy Ubuntu bug? Lejelentem...
Alaposabban utána kellene nézni.
Ubi egy fokkal újabb, mint a wheezy, a Mintről nem beszélve.
Fentebb én openSUSE-n hoztam össze, úgyhogy nem Ubuntu-specifikus, csak gondolom a Wheezy-ben levő csomagok után jött be.
BlackY
Én igen: mkudffs -b512 --media-type=dvd ./xx.iso 1000
Ennek az eredményét mountoltam.
Ha mint linuxon csináltam, akkor beleírt, bár állítása szerint read-only mountolta.
Ha wheezy-n, akkor működött normálisan.
koszi a tesztet. Le fogom jelenteni...
sub
Ha a visszafelé kompatibilis bridge formatot használod (http://msdn.microsoft.com/en-us/library/windows/desktop/aa364836%28v=vs…).
BlackY
Sikerult mostanra teljesen osszezavarodnom: akinek sikerul az adott hibat reprodukalnia (es akinek nem), azok milyen rendszeren sikeresek (vagy sikertelnek)?
openSUSE 13.1 64-bit, sikerült
BlackY
Mint 32 bit következetesen "sikeres" (módosult az UDF formátumú ISO)
Wheezy 64 bit következetesen read only maradt.
Es nem mindegy, hogy milyen image. Eddig ugy tunik, csak az udf-fel van gond.
Móriczkáztam egy kicsit hirtelen. (azért dd, mert valami elejtett megjegyzés az mkudffst azzal vádolta, hogy sparse fileokat csinál, ami majd úgy nő, ahogy igény van rá)
CentOS 6.4
Ubuntu saucy vagy mi a szösz
Nem értem, hogy a centos miért mondja, hogy rw mountolt, miközben nem, de legalább konzekvensen tényleg nem nyúl hozzá. Az ubuntu láthatóan rw próbál mountolni, és úgy fest, hogy miközben a mount megszüli, hogy ez ro, aközben valamit csinál, amit nem kéne.
Oh, a centos i686 a bubuntu 64bites volt.
99,999%, hogy fenti dd is sparse fájlokat csinál. Akkor már inkább mkisofs kéne:
mkisofs -o valami.iso -udf tokmindegy.egy.0.meretu.fajl (Az mondjuk kissé kellemetlen, hogy ha jól olvastam, sem a genisoimage a cdrkit-ből, sem az xorrisofs a libburniaból nem tud udf-et.)
Kicseréltem mkisofsre (meg a .udfet .isora), az eredmény ugyanúgy fest:
centos:
ubi:
SLED11-teszt nem hozza a hibát. Cserébe két érdekesség derült ki: az ebben levő cdrkit - illetve az ebben levő genisoimage mégis tud UDF-et (-udf opció ugyanúgy, mint az eredeti mkisofs-nél), cserébe nem is tudok udftools-t telepíteni, mert látszólag ehhez már nem csinálták meg a csomagot.
Hát, ez erősen bug szagú imho. Centosnál is, de az ubi mindenképp ejnyebejnye.
Talan inkabb kernel verzio lesz ez, nem annyira disztro fuggo, nem hiszem, hogy az Ubuntunal igy megpatch-eltek volna a kernelt... persze barmi megtortenhet.
Én inkább a mountra gyanakodnék. Lehet, hogy lenne értelme megnézni, hogy pontosan mit is csinál az izé, de gyanús, hogy az ubuntu maintanere jobban ismeri ezeket az izéket belülről, mint én, és tekintve, hogy a többin úgy látom max non-destruktív hülyeség van (centos hazudni rw), én lehet őt dobnám meg először. Aztán max azt mondja, hogy upstream. De akkor legalább talán megmondja, hogy melyik :D
openSUSE-ban is ott van, úgyhogy upstream.
BlackY
--
"en is amikor bejovok dolgozni, nem egy pc-t [..] kapcsolok be, hanem a mainframe-et..." (sj)
bug lejelentve, update fent.