Automatisoidussa prosessissa iso tiedosto luodaan tiedostolla mkisofs
. Vaikka alkuperäiset tiedot ovat täsmälleen samat, syntyneet iso-tiedostot eivät ole samat (niiden md5sum
muutokset). Koska tulen rsync --checksum
, en pidä siitä, että ”sama iso” siirretään tietysti joka kerta. Odotan enimmäkseen aikaleimojen olevan pääero.
Onko libfaketime
buildin -kytkintä iso tuottamaan iso kautta mkisofs
se olisi todellakin sama.
En tiedä, onko vain aikaleimoilla merkitystä? Olen verrannut saatuja iso-tiedostoja niiden xxd isofile
-lähtöön näin:
diff --side-by-side --suppress-common-lines <(xxd a.iso) <(xxd b.iso )
ja niitä näyttää olevan vain 51 riviä, jotka edustavat 16 tavua (eli noin 800 tavua eroa) toisessa täsmälleen samassa tiedostossa.
Komennon, jota käytettiin kyseisen iso muodostamiseen, on suunnilleen tämä:
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: Puuttuuko komentorivin parametrikytkin, jossa on rsync
, joka tarkistaa summan ~ 1 Mt isojen tiedostojen paloilta, jotta estetään uudelleensiirto, kun minun tapauksessani vain noin 800 tavua eroavat toisistaan?
Kommentit
Vastaa
Ensimmäinen tärkeä huomautus: Älä käytä genisoimage
koska se on viallinen muunnelma mkisofs
toukokuusta 2004.
Toukokuuhun 2007 asti runsaasti Debianin erityisvikoja on lisätty ja siitä lähtien se on kuollut.
Tärkeää tietää tässä on, että genisoimage
luo viallisia tiedostojärjestelmäkuvia, joita ei joskus enää voida hyväksyä käyttöjärjestelmän kautta …
Virallista mkisofs
ylläpidetään kuitenkin edelleen aktiivisesti ja korjattiin runsaasti muita kuin Debianin erityisiä vikoja elokuussa 2006. Tällä hetkellä ei tiedetä virheitä.
Nyt ongelmasi: Käytät -R (Rock Rigde) -toimintoa, ja tämä lisää tiedostojen metatietoihin UNIX
-aikaleimat. Tämä on ongelma numero ….
Toinen ongelma on, että ISO-9660-tiedostojärjestelmän superlohko (virallisesti kutsuttu ensisijaiseksi_kuvaajaksi) sisältää luomispäivämäärän ja muokkauspäivän. Jälkimmäistä voidaan ohjata vaihtoehdolla -modification-date
.
Jos uskot, että tämä on todella tarvittava ominaisuus, voisin lisätä samanlaisen vaihtoehdon luomispäivämäärään. Sitten tarvitset silti vaihtoehdon, joka kertoo Rock Ridgen muotoiluosalle käyttämään tiedostojen muokkauspäivämäärää viimeisen lukuoikeuden ajan sijasta.
Alkuperäisen lähteen usein päivitetyt versiot ovat osa schilytools
tarball, jonka voi noutaa osoitteesta: http://sourceforge.net/projects/schilytools/files/
Tällä hetkellä uusin schilytools tarball otti käyttöön toistettavien ISO-9660-tiedostojärjestelmän kuvien tuen. Hae / käännä / asenna schily-2020-03-27.tar.bz2.
On olemassa muutamia uusia vaihtoehtoja:
-
-noatime
käskeemkisofs
: n arkistoimaan muokkausaika ajankohtana. -
-creation-date
asettaa PVD: ssä luontipäivämäärän. -
-expiration-date
asettaa PVD: n viimeisen käyttöpäivämäärän. -
-effective-date
asettaa PVD: n voimaantulopäivä -
-reproducible-date
asettaa kaikki ajat paitsi-effective-date
ja-noatime
.
Tämä toimii vanilja-ISO-9660-tiedostojärjestelmän kuvissa sekä kuvissa, jotka sisältävät Rock Ridge
ja UDF
. Katso viimeinen man-sivu osoitteesta: http://schilytools.sourceforge.net/man/man8/mkisofs.8.html
Päivitetty komentorivisi näyttäisi tältä :
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
--no-W
. Järjestelmän kellon jäljittelemiseksi onlibfaketime
jafaketime
-apuohjelma käyttämälläLD_PRELOAD
(jos ei setuid).schilytools
. Mukana toimitettu parannettumkisofs
sisältää toistettavien aikaleimojen tuen. Katso päivitetty vastaus.