Automatizált folyamat során egy iso fájl jön létre a mkisofs címmel. Még ha az eredeti adatok is pontosan megegyeznek, a keletkező iso fájlok nem ugyanazok (md5sum változások). Mivel rsync --checksum az eredmény, nem szeretem, hogy az “ugyanazt az iso” -ot természetesen minden alkalommal újra átadják. Arra számítok, hogy főleg az időbélyegek lesznek a fő különbségek.

Van valami libfaketime buildin kapcsoló, amely iso létrehozására szolgál a mkisofs ez valóban ugyanaz lenne.

Nem tudom, hogy csak az időbélyegek számítanak? Összehasonlítottam a kapott iso fájlokat a következő xxd isofile kimenettel:

diff --side-by-side --suppress-common-lines <(xxd a.iso) <(xxd b.iso ) 

és úgy tűnik, hogy csak 51 sor, amelyek 16 bájtot jelentenek (tehát nagyjából 800 bájt különbséget) a másikban pontosan ugyanabban a fájlban.

A szóban forgó iso létrehozásához használt parancs nagyjából ez:

genisoimage -o "file.iso" -b isolinux/isolinux.bin \ -c isolinux/boot.cat -no-emul-boot \ -boot-load-size 4 -boot-info-table \ -J -R -v -T -V "CDLABEL" "datadir/" 

BS: Hiányzik egy rsync parancssori parameer kapcsoló, amely ellenőrző összegez ~ 1 MB nagyságú nagy fájldarabokat, hogy megakadályozza az újraátvitelt, amikor az én esetemben csak körülbelül 800 bájt különbözik egymástól?

Megjegyzések

  • Az rsync általában ellenőrzi a fájlok egyes részeit a frissítések optimalizálása érdekében, de nem, ha mindkettő látszólag lokális (pl. nfs-en). A --no-W hozzáadásával kényszerítheti. Van egy libfaketime és faketime segédprogram a rendszeróra emulálására a LD_PRELOAD (ha nem setuid).
  • Szia, most tettem közzé a schilytools új verzióját. A mellékelt továbbfejlesztett mkisofs tartalmazza a megismételhető időbélyegek támogatását. Lásd a frissített választ.

Válasz

Először fontos megjegyzés: Ne használjon genisoimage mivel ez egy mkisofs hibás változata 2004 májusától.

2007 májusáig rengeteg Debian-specifikus hiba hozzá lettek adva, és azóta halott.

A fontos tudnivaló itt az, hogy a genisoimage hibás fájlrendszeri képeket hoz létre, amelyeket egy időben már nem lehet elfogadni az Ön operációs rendszere által.

A hivatalos mkisofs szolgáltatást azonban továbbra is aktívan karbantartják, és rengeteg nem Debian-specifikus hibát kijavítanak 2006 augusztusában. Jelenleg nincsenek ismertek hibák.

Most a problémádhoz: Használod az -R (Rock Rigde) parancsot, és ez hozzáadja a UNIX -t, mint az időbélyegek a fájlok metaadataihoz. Ez az 1. számú probléma.

A másik probléma az, hogy az ISO-9660 fájlrendszer szuperblokkja (hivatalos nevén primer_leíró) tartalmazza a létrehozás és a módosítás dátumát. Ez utóbbi a -modification-date opcióval vezérelhető.

Ha úgy gondolja, hogy ez valóban szükséges funkció, akkor hozzáadhatok egy hasonló lehetőséget a létrehozás dátumához. Akkor azonban még mindig szükséged lenne egy lehetőségre, hogy a Rock Ridge formázási rész megmondja, hogy a fájlok módosítási dátumát használja az utolsó olvasási hozzáférés ideje helyett.

Az eredeti forrás gyakran frissített verziói a a schilytools tarball, amelyet a következő helyről lehet letölteni: http://sourceforge.net/projects/schilytools/files/

A jelenleg legfrissebb schilytools tarball bevezette az újratermelhető ISO-9660 fájlrendszer képek támogatását. Kérjük, töltse le / fordítsa / telepítse a schily-2020-03-27.tar.bz2 fájlt.

Van néhány új lehetőség:

  • -noatime azt mondja a mkisofs számára, hogy a módosítás idejét archiválja mint atime.

  • -creation-date beállítja a létrehozási dátumot a PVD-ben

  • iv -expiration-date beállítja a lejárati dátumot a PVD-ben

  • -effective-date beállítja a PVD hatálybalépésének dátumát

  • -reproducible-date minden idõt beállít, kivéve a -effective-date és -noatime elemeket.

Ez működik a vanília ISO-9660 fájlrendszer képek, valamint a Rock Ridge és UDF. Lásd a legutóbbi man oldalt itt: http://schilytools.sourceforge.net/man/man8/mkisofs.8.html

A frissített parancssor így nézne ki :

mkisofs -b isolinux/isolinux.bin \ -c isolinux/boot.cat -no-emul-boot \ -boot-load-size 4 -boot-info-table \ -J -R -v -T -V "CDLABEL" \ -reproducible-date=20200327 "datadir/" > file.iso 

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük