ИСО слика

Упоређивање ИСО слика

Упоређивање ИСО слика
Да би поставили и одржавали рачунарске уређаје, дистрибутери Линука редовно пружају ИСО слике за своја издања. Ово поједностављује редовно ажурирање наших система уз помоћ комплетне компилације софтвера који се стварно уклапа, у идеалним околностима.

Замислите да имате неколико ових ИСО слика које се чувају локално. Како схватити да су преузете ИСО слике аутентичне? У овом чланку ћемо вам показати како да верификујете интегритет и аутентичност ИСО слике која је претходно преузета и како да утврдите које су разлике између стварног садржаја две ИСО слике. Ово вам помаже да верификујете поступак израде за ИСО слику и омогућава вам да видите шта се можда променило између две верзије или издања која су доступна.

Формати слика

Формат дисковних слика има своју историју [11]. Уобичајени стандард је ИСО 9660 [12] који описује садржај оптичког диска у целини. У употреби је екстензија датотеке .исо како би се идентификовала датотека слике (клонирана копија).

Оригинални формат ИСО 9660 има бројна ограничења, као што су 8 нивоа директоријума, као и дужина имена датотека. Ова ограничења смањена су увођењем бројних проширења као што су Роцк Ридге [13] (очување ПОСИКС дозвола и дужих имена), Јолиет [14] (чување Уницоде имена у УЦС-2) и Аппле ИСО 9660 Ектенсионс [15] која је увела ХФС подршку.

Да бисте добили више детаља у вези са сликовном датотеком, користите наредбу „датотека“, а затим име датотеке података, како следи:

.Списак 1: Приказивање детаља за ИСО датотеку

$ датотека *.исо
дебиан-10.1.0-амд64-нетинст.исо: ДОС / МБР боот сектор;
партиција 2: ИД = 0кеф, старт-ЦХС (0к3фф, 254,63), енд-ЦХС (0к3фф, 254,63),
стартсецтор 3808, 5664 сектора
кубунту-18.04.3-десктоп-амд64.исо: ДОС / МБР боот сектор;
партиција 2: ИД = 0кеф, старт-ЦХС (0к3фф, 254,63), енд-ЦХС (0к3фф, 254,63),
стартсецтор 11688, 4928 сектора $

Провера преузетих ИСО датотека

Поуздани добављачи софтвера увек вам нуде две ствари за преузимање - стварну ИСО слику као и одговарајућу контролну суму слике како би проверили интегритет преузете датотеке. Овај други вам омогућава да потврдите да је ваша локална датотека тачна копија датотеке која се налази на серверима за преузимање и да током преузимања ништа није пошло по злу. У случају грешке током преузимања, локална датотека је оштећена и може покренути случајне проблеме током инсталације [16].

Даље, у случају да је ИСО слика угрожена (као што се то догодило са Линук Минт почетком 2016. године [17]), две контролне суме се неће подударати. Контролне суме можете израчунати помоћу 'мд5сум' (застарело, више се не препоручује) и 'сха256сум' на следећи начин:

.Списак 2: Израчунавање контролне суме за ИСО датотеке

$ мд5сум *.исо
б931еф8736ц98704бцф519160б50фд83 дебиан-10.1.0-амд64-нетинст.исо
0ц268а465д5ф48а30е5б12676е9ф1б36 кубунту-18.04.3-десктоп-амд64.исо
$ сха256сум *.исо
7915фдб77а0ц2623б4481фц5ф0а8052330дефе1цде1е0834фф233818дц6ф301е дебиан-10.1.0-амд64-нетинст.исо
3ц9е537ее1цф64088251е56б4ца1694944ад59126ф298ф24а78цд43аф152б5б3 кубунту-18.04.3-десктоп-амд64.исо
$

Можете се позвати на поређење између пружене датотеке контролне суме и локално ускладиштене ИСО слике као што је приказано у листи 3. Излаз ОК на крају реда сигнализира да су обе контролне суме исте.

.Списак 3: Упоредите пружене контролне суме

$ сха256сум --провери сха256сум.ткт кубунту-18.04.3-десктоп-амд64.исо: ОК
$

Поређење две локално ускладиштене ИСО датотеке

Може се догодити да сте преузели две ИСО датотеке и желели бисте да утврдите да ли су потпуно исте. Поново је корисна наредба 'сха256сум' и препоручујемо вам да ову проверу уврстите у скрипту љуске. На листи 4 видите одговарајућу басх скрипту која комбинује четири наредбе 'сха256сум', 'цут', 'уник' и 'вц' како би се одвојила прва колона за све излазне линије и спојиле их у случају да су идентичне , и пребројите број преосталих линија. Ако су двије (или више) ИСО датотека исте, онда су њихове контролне суме идентичне, остаће само један ред, а басх скрипта ће на крају послати поруку „датотеке су исте“:

.Унос 4: Аутоматско упоређивање контролних сума ИСО датотека помоћу 'сха256сум'

#!/ бин / басх
 
иф ['сха256сум *.исо | цут -д "-ф1 | уник | вц -л 'ек 1]
онда
ецхо "датотеке су исте"
иначе
ецхо "датотеке нису идентичне"
фи

У случају да се скрипта врати да се две датотеке разликују, можда ће вас занимати тачан положај неједнакости. Поређење редоследа бајтова може се извршити помоћу наредбе 'цмп' која даје први бајт који се разликује између датотека:

.Списак 5: Погледајте разлике између две или више датотека користећи 'цмп'

$ цмп *.исо
дебиан-10.1.0-амд64-нетинст.исо кубунту-18.04.3-десктоп-амд64.исо се разликују: бајт 433, ред 4
$

Упоређивање стварног садржаја

До сада смо извршили поређење бајт-редоследа, а сада ћемо погледати изблиза - стварни садржај ИСО датотека које треба међусобно упоређивати. У овом тренутку у игру улазе бројни алати који помажу у поређењу појединачних датотека, целокупних структура директоријума као и компримованих архива и ИСО слика.
Команда 'дифф' помаже у упоређивању директоријума помоћу два прекидача '-р' (скраћеница од '-рецурсиве') и '-к' (скраћеница од '-бриеф') након чега следе два директорија која се међусобно упоређују. Као што се види у

На списку 6, 'дифф' извештава које су датотеке јединствене за било који директоријум и да ли се датотека са истим именом променила.

.Списак 6: Упоређивање два директоријума коришћењем 'дифф'

$ разлика -кр т1 / т2 /
Само у т1 /: блабла.цонф.
Датотеке т1 / нссвитцх.цонф и т2 / нссвитцх.цонф су различити.
Само у т2 /: пвд.цонф.
$

Да бисте упоредили две ИСО слике, једноставно монтирајте две датотеке слика у одвојене директоријуме и пређите одатле.
Шароликији излаз на командној линији пружају алати 'цолордифф' [1,2] и 'ицдифф' [18,19]. Слика 1 приказује излаз 'ицдифф' у којем су разлике између две датотеке 'нссвитцх-а.цонф 'су означени зеленом или црвеном бојом.

Слика 1: Упоређивање два директоријума помоћу 'ицдифф'

Графички алати за упоређивање директоријума укључују 'флдифф' [5], 'ккдифф' [6] и 'дирдифф' [7]. „ккдифф“ је инспирисан „флдиффом“ и зато изгледају прилично слично. Уноси који имају сличан садржај долазе са белом или сивом позадином, а уноси који се разликују долазе са светло-жутом позадином. Уноси са светло-жутом или зеленом позадином јединствени су за директоријум.

Слика 2: Упоређивање два директоријума помоћу 'флдифф'

'ккдифф' приказује разлике у датотекама у посебном прозору кликом на унос (види слику 3).

Слика 3: Упоређивање два директоријума помоћу 'ккдифф'

Следећи кандидат је „дирдифф“. Надограђује функционалност 'ккдифф' и може упоредити до пет директорија. Датотеке које постоје у било ком директоријуму означене су са Кс. Занимљиво је да је шема боја која се користи за излазни прозор иста она коју користи „ицдифф“ (види слику 4).

Слика 4: Упоређивање два директоријума помоћу 'дирдифф'

Следећи корак је упоређивање компримованих архива и целокупних ИСО слика. Иако вам је команда 'адифф' из пакета 'атоол' [10] можда већ позната, уместо тога, погледаћемо команду 'диффосцопе' [8,9]. Себе описује као „алатку за долажење до дна онога што датотеке или директоријуме чини различитим. Рекурзивно распакује архиве многих врста и трансформише разне бинарне формате у човеку читљивије форме да би их упоредио “. Порекло алата је Тхе Репродуцибле Буилдс Пројецт [19,20] који је „скуп пракси развоја софтвера који креирају независно провериву путању од извора до бинарног кода“. Између осталих, подржава следеће формате датотека:

* Андроид АПК датотеке и слике за покретање
* Датотеке базе података Беркелеи ДБ
* Слике Цоребоот ЦБФС датотечног система
* Дебиан .буилдинфо и .мења датотеке
* Дебиан изворни пакети (.дсц)
* ЕЛФ бинарне датотеке
* Гит спремишта
* ИСО 9660 ЦД слике
* МацОС бинарни фајлови
* ОпенССХ јавни кључеви
* Архива пакета ОпенВРТ (.ипк)
* ПГП потписане / шифроване поруке
* ПДФ и ПостСцрипт документи
* РПМ архивира власац

Слика 5 приказује излаз 'дифоскопа' када се упоређују две различите верзије Дебиан пакета - тачно ћете видети промене које су направљене. То укључује и имена датотека и садржај.

Слика 5: Упоређивање два Дебиан пакета помоћу 'дифоскопа' (одломак)

Списак 7 приказује излаз „дифоскопа“ када се упоређују две ИСО слике величине 1.9Г сваки. У овом случају две ИСО слике припадају Линук Минт верзији 19.2 док је једна датотека слике преузета са француског сервера, а друга са аустријског сервера (отуда слова „фр“ и „ат“). У року од неколико секунди „дифоскоп“ наводи да су две датотеке потпуно идентичне.

.Списак 7: Упоређивање две ИСО слике помоћу „дифоскопа“

$ дифоскоп линукминт-19.2-кфце-64бит.фр.исо линукминт-19.2-кфце-64бит.у.исо
| ################################################### ### | 100% Време: 0:00:00
$

Да би се погледало иза кулиса, помаже позивање „дифоскопа“ са две опције „-дебуг“ и „-тект -“ за оба детаљнија излаза на терминал. То вам омогућава да научите шта алат ради. Списак 8 приказује одговарајући излаз.

.Унос 8: Иза кулиса „дифоскопа“

$ диффосцопе --дебуг --тект - линукминт-19.2-кфце-64бит.фр.исо
линукминт-19.2-кфце-64бит.у.исо
2019-10-03 13:45:51 Д: дифоскоп.главни: Стартни дифоскоп 78
2019-10-03 13:45:51 Д: дифоскоп.локализација: нормализација локализације, временске зоне итд.
2019-10-03 11:45:51 Д: дифоскоп.главни: Почетно поређење
2019-10-03 11:45:51 Д: дифоскоп.напредак: Регистровање < diffoscope.progress.ProgressBar object at 0x7f4b26310588> као посматрач напретка
2019-10-03 11:45:52 Д: дифоскоп.упоређивачи: учитаних 50 класа упоређивача64бит.фр.исо ЕТА: -: -:--
2019-10-03 11:45:52 Д: дифоскоп.упоредници.утилс.ужа специјалност: Неидентификована датотека. Магиц каже: ДОС / МБР боот сектор; партиција 2: ИД = 0кеф, старт-ЦХС (0к3фф, 254,63), крај-ЦХС (0к3фф, 254,63), стартсецтор 652, 4672 сектора
2019-10-03 11:45:52 Д: дифоскоп.упоредници.утилс.ужа специјалност: Неидентификована датотека. Магиц каже: ДОС / МБР боот сектор; партиција 2: ИД = 0кеф, старт-ЦХС (0к3фф, 254,63), енд-ЦХС (0к3фф, 254,63), стартсецтор 652, 4672 сектора
2019-10-03 11:45:52 Д: дифоскоп.упоредници.утилс.упореди: Упоређивање линукминт-19.2-кфце-64бит.фр.исо (ФилесистемФиле) и линукминт-19.2-кфце-64бит.у.исо (ФилесистемФиле)
2019-10-03 11:45:52 Д: дифоскоп.упоредници.утилс.датотека: Бинарна.хас_саме_цонтент: < линукминт-19.2-кфце-64бит.фр.исо> < линукминт-19.2-кфце-64бит.у.исо>
2019-10-03 11:45:53 Д: дифоскоп.упоредници.утилс.упоредити: хас_саме_цонтент_ас вратио Труе; прескачући даља поређења
| ################################################### ### | 100% Време: 0:00:01
2019-10-03 11:45:53 Д: дифоскоп.темпфилес: Чишћење 0 привремених датотека
2019-10-03 11:45:53 Д: дифоскоп.темпфилес: Чишћење 0 привремених директоријума
$

Па, засад је добро. Следећи тестови су урађени на сликама из различитих издања и са различитим величинама датотека. Сви они резултирали су унутрашњом грешком која сеже до наредбе 'дифф' која остаје без интерне меморије. Изгледа да постоји ограничење величине датотеке од око 50М. Због тога сам направио две мање слике од по 10 милиона и предао их „дифоскопу“ ради поређења. Слика 6 приказује резултат. Излаз је структура стабла која садржи датотеку 'нссвитцх.конф 'са истакнутим разликама.

Слика 6: Упоређивање две ИСО слике помоћу „дифоскопа“

Такође, може се обезбедити ХТМЛ верзија резултата. Слика 7 приказује излаз као ХТМЛ датотеку у веб прегледачу. То је могуће постићи преко прекидача

'--хтмл излаз.хтмл '.

Слика 7: Упоређивање две ИСО слике помоћу „дифоскопа“ (ХТМЛ излаз)

У случају да вам се не свиђа стил излаза или бисте желели да га упоредите са корпоративним идентитетом ваше компаније, можете прилагодити излаз сопственом ЦСС датотеком користећи прекидач '-цсс стил.цсс 'који учитава стил из референциране ЦСС датотеке.

Закључак

Проналажење разлика између два директоријума или чак целокупних ИСО слика је помало незгодно. Алати приказани горе помажу вам у савладавању овог задатка. Дакле, срећно хаковање!

Хвала вам
Аутор се захваљује Акселу Бекерту на помоћи током припреме чланка.

Везе и референце

* [1] цолордифф
* [2] цолордифф, пакет Дебиан,
* [3] дифутил
* [4] диффутилс, Дебиан пакет,
* [5] флдифф
* [6] ккдифф
* [7] дирдиф
* [8] дифоскоп
* [9] дифоскоп, Дебиан пакет
* [10] атоол, пакет Дебиан
* [11] Кратко представљање неких уобичајених формата датотека слика
* [12] ИСО 9660, Википедиа
* [13] Роцк Ридге, Википедиа
* [14] Јолиет, Википедиа
* [15] Проширења за Аппле ИСО 9660, Википедиа
* [16] Како се верификују ИСО слике, Линук Минт
* [17] Пазите се хакованих ИСО-а ако сте 20. фебруара преузели Линук Минт!
* [18] ицдифф
* [19] ицдифф, пакет Дебиан
* [20] Пројекат Репродуцибле Буилдс
* [21] Пројекат Репродуцибле Буилдс, Дебиан Вики

Како да промените леви и десни тастер миша на рачунару са Виндовс 10
Сасвим је нормално да су сви уређаји рачунарског миша ергономски дизајнирани за дешњаке. Али постоје доступни уређаји за миш који су посебно дизајнира...
Емулирајте кликове мишем лебдењем помоћу миша без клика у оперативном систему Виндовс 10
Коришћење миша или тастатуре у погрешном положају прекомерне употребе може резултирати многим здравственим проблемима, укључујући напрезање, синдром к...
Додајте покрете миша у Виндовс 10 помоћу ових бесплатних алата
Последњих година рачунари и оперативни системи су се увелико развили. Било је време када су корисници морали да користе команде за навигацију кроз мен...