• Opret dig
  • Glemt adgangskode

User account menu

  • Artikler
  • Forside
  • Forum
  • Nyheder
  • Log ind
Hjem
LinuxIN.dk

Snak med

Opret dig!

Af peque | 17.10.2018 14:38

Spørgsmål omkring MD5sum som ikke lige stemmer

Hjælp generelt
Hej Gruppe.
Jeg har lavet et script der også skal validere en MD5 sum på et image inden der skrives.
Jeg har mine checksum liggende i et txt fil *.md5
Der er godt nok noget der driller.
Jeg har et image som jeg via Ubuntuhar fået en checksum og lagt i et fil:
ser således ud:

image=940e6aab25666b7e1dcf3b1415e01c52
partition1=3c63b4bb916c720df53d7079505728bd
partition2=f3ea85a13d894bbbfaa21c01b708988f

Disse linjer indlæses i Script via:
IMG=`awk -F" *= *" '{if ($1=="image") print $2}' $CFG`
P1=`awk -F" *= *" '{if ($1=="partition1") print $2}' $CFG`
P2=`awk -F" *= *" '{if ($1=="partition2") print $2}' $CFG`


Jeg tjekker dette image nden jeg skriver dette, med kommandoerne:

pv /mnt/firmware/$FILENAME/$FILENAME.img | md5sum > ./im.txt
sed -i 's/ .*//' im.txt
IM1="`cat ./im.txt`"
if [ $IMG != $IM1 ];

min IMG variabel er=940e6aab25666b7e1dcf3b1415e01c52
min IM1 variabel er=940e6aab25666b7e1dcf3b1415e01c52

Selvom mine 2 checksum er ens udfra hvad jeg kan se - så forstår jeg ikke lige hvorfor min If statement
if [ $IMG != $IM1 ];
Fortæller at de ikke er ens ?
Gør jeg dette på en total forkert måde - eller er der noget helt andet galt!
  • Log ind eller opret dig for at tilføje kommentarer

Kommentarer5

# 1

6 år 8 måneder siden

Permalink

Indsendt af osjensen den 17. oktober 2018 kl. 15:40

Permalink

Hvis du kørerpv

Hvis du kører

pv /mnt/firmware/$FILENAME/$FILENAME.img | md5sum > ./im.txt
sed -i 's/ .*//' im.txt
IM1="`cat ./im.txt`"
echo $IM1
echo $IMG
if [ $IMG != $IM1 ];


er værdierne så virkelig ens?
mangler du evt
IMG="`cat ./*.md5`"

Jeg er bare en amatør, ud i bash, hvis det lyder dumt.

EDIT

Med en test.md5 fil, jeg har ændret i, virker

pv 2018-10-09-raspbian-stretch-lite.img | md5sum > ./im.txt
sed -i 's/ .*//' im.txt
IM1="`cat ./im.txt`"
IMG="`cat ./*.md5`"
echo $IM1
echo $IMG
if [ "$IMG" == "$IM1" ]; then

echo "md5 match"
else
echo "ALARM - don't match"
fi


./test
1,74GiB 0:00:04 [ 377MiB/s] [================================>] 100%
71b68891464fd3aa97cb651f8f0c1244
81b68891464fd3aa97cb651f8f0c1244
ALARM - don't match


if [ $IMG != $IM1 ] fejler og giver "md5 match", selv om værdierne er forskeldige.






  • Log ind eller opret dig for at tilføje kommentarer

# 2

6 år 8 måneder siden

Permalink

Indsendt af frogmaster den 17. oktober 2018 kl. 20:09

Permalink

Jeg ved ikke om det er helt

Jeg ved ikke om det er helt aktuelt, men du er nødt til først at genere en korrekt formateret md5sum fil (eller bedre - sha256sum etc.) af den originale fil, før du tjekker fra terminalen eller et bash.

Det handler om i alt fire filer der bør ligge i samme mappe. Hvis du ønsker at tjekke metoden, så opret en tekst fil, skriv 1234 i filen og gem den som file.txt. Brug den til at kontrollere om det virker ved at ændre indholdet:

1- Den fil du vil tjekke.
2- md5sum.txt der indeholder md5 hash værdien - eksempel:

e7df7cd2ca07f4f1ab415d457a6e1c13 *file.txt

3- md5sum.txt.gpg, der indeholder den "korrekt formaterede hash":
-----BEGIN GPG SIGNATURE-----
Version: GnuPG v1

e7df7cd2ca07f4f1ab415d457a6e1c13
=tvuX
-----END GPG SIGNATURE-----


4. Dit bash script med indholdet:
#!/bin/bash
md5sum -b file.txt
md5sum --ignore-missing -c md5sum.txt
$SHELL


Du kan have mange filer liggende i mappen du vil tjekke hash værdien på. I det tilfælde skal du skrive hash værdierne i md5sum.txt på samme vis som vist i eksemplet.

Hvis de alle har samme extension (her txt), skal du rette i bash scriptet således md5sum -b file.txt bliver til md5sum -b *.txt
  • Log ind eller opret dig for at tilføje kommentarer

# 3

6 år 8 måneder siden

Permalink

Indsendt af peque den 18. oktober 2018 kl. 06:57

Permalink

puha - tak for svarende.
Fik

puha - tak for svarende.
Fik løst mit problem - som jeg skrev om til at bruge md5sum -c kommandoen med de filer md5sum selv har genereret.

Mit store problem ellers var pludselig ved at bruge md5sum -c *.md5 --> så mistede jeg lidt min progressbar - som for os er ret vigtig da vi sidder og opdaterer PLC via VPN på skibe. derfor vigtigt at se hvor langt man er nået i tingene.
Jeg opretter så selv denne *.md5 med kommandoen: md5sum $/MNT/$FILENAME/$FILENAME.img > $MNT/$FILENAME/image.md5
Men reelt set kunne jeg skrotte 5 linjer og erstatte den med:

if pv $MNT/$FILENAME/$FILENAME.img | md5sum | md5sum -c $MNT/$FILENAME/image.md5;
then
blaaaa

som løste det problem - så er jeg efterhånden ved at have alle mine ønsker på plads.
Så er det eneste jeg ikke lige kan komme videre med pt
at liste filerne i $MNT/*/*.img - som skal listes i en menu - med et tal foran således det er et nummer der vælges for et image :
1) FW04
2) FW05
3) FW11
Men jeg kan ikke få den syntaks til at køre ! --> https://www.linuxin.dk/node/22454
Men på en PLC er det ikke alting der er med i busybox
  • Log ind eller opret dig for at tilføje kommentarer

# 4

6 år 8 måneder siden

Permalink

Indsendt af frogmaster den 18. oktober 2018 kl. 08:34

Permalink

Så er det eneste jeg

#3: Så er det eneste jeg ikke lige kan komme videre med pt
at liste filerne i $MNT/*/*.img - som skal listes i en menu - med et tal foran således det er et nummer der vælges for et image


Jeg kan ikke give dig en endelig løsning, men kun en mulig menu, der tillader en handling ved at vælge et nummer:

#!/bin/bash
# A menu driven shell script sample template
## ----------------------------------
# Step #1: Define variables
# ----------------------------------
EDITOR=nano
PASSWD=/etc/passwd
RED='\033[0;41;30m'
STD='\033[0;0;39m'

# ----------------------------------
# Step #2: User defined function
# ----------------------------------
pause(){
read -p "Press [Enter] key to continue..." fackEnterKey
}

# do something in one()
one(){
echo "one() called"
pause
}

# do something in two()
two(){
echo "two() called"
pause
}

# do something in tree()
tree(){
echo "tree() called"
pause
}

# function to display menus
show_menus() {
clear
echo "~~~~~~~~~~~~~~~~~~~~~"
echo " M A I N - M E N U"
echo "~~~~~~~~~~~~~~~~~~~~~"
echo "1. Set Terminal"
echo "2. Reset Terminal"
echo "3. Exit"
}
# read input from the keyboard and take a action
# invoke the one() when the user select 1 from the menu option.
# invoke the two() when the user select 2 from the menu option.
# Exit when user the user select 3 form the menu option.
read_options(){
local choice
read -p "Enter choice [ 1 - 3] " choice
case $choice in
1) one ;;
2) two ;;
3) exit 0;;
*) echo -e "${RED}Error...${STD}" && sleep 2
esac
}

# ----------------------------------------------
# Step #3: Trap CTRL+C, CTRL+Z and quit singles
# ----------------------------------------------
trap '' SIGINT SIGQUIT SIGTSTP

# -----------------------------------
# Step #4: Main logic - infinite loop
# ------------------------------------
while true
do
show_menus
read_options
  • Log ind eller opret dig for at tilføje kommentarer

# 5

6 år 8 måneder siden

Permalink

Indsendt af peque den 18. oktober 2018 kl. 08:49

In reply to Så er det eneste jeg by frogmaster

Permalink

Hey Frogmaster.
Nok min fejl

Hey Frogmaster.
Nok min fejl at det ikke er tydeligt forklaret.
Jeg har styr på Selve Menu'en og vælg af nummer mm

MEN jeg mangler det step hvor mine img mappes med et nummer
ls -lah $MNT/*/*.img
lister mine img filer - men det skal mappes sammen i et array - og det er selve tricket der lister mine img sammen med et menu Nummer!
  • Log ind eller opret dig for at tilføje kommentarer

Svar søges

llumos Unix-operativsystem, 0
Den er go 0
14. februar = I Love Free Software Day 0
Lokal fil-deling - for de dovne. 0
Linux fra begynder til professionel af O'Reilly 0

Seneste aktivitet

En snak om Linux-kompatibel software 6
Nulstilling af adgangskode 6
Virtuel maskine? 2
PCLinuxOS 27
Gode anmeldelser Zorin OS 17.3 3
Open Source-eksperimentet 3
"Intet realistisk alternativ" - mig i r*ven 15
Ingen Mint 5
Linux App Store Flathub når 3 milliarder downloads 2
Digitaliseringsministeriet sætter gang i pilotprojekt om digital suverænitet 3
Mest sikker webbrowser 5
Firefox 2
Privatbeskeder 7
Backup/synkronisering? 3
BigLinux 5
Chatgpt satire 1
Læsning af databasefil i Firefox 2
Vanilla OS 15
Pepsi Challenge 4
Linuxin er nu migreret til Drupal 11 13

© 2025 Linuxin og de respektive skribenter

Oprettet og drevet af nørder siden 2004 !