Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Vygenerovanie fake S.M.A.R.T dáta na virtuálnom disku

Dobrý deň,

potreboval by som poradiť akým spôsobom sa dajú vygenerovať fake S.M.A.R.T dáta na virtuálnom disku (mám vytvorený disk ".img" aj pričlenený do systému a nastavený vo fstab, ale ďalej sa pohnúť neviem), resp. simulovať disk poskytujúci S.M.A.R.T dáta. Potrebujem aby pri bežnom behu systém (Linux) a smartctl tento simulovaný disk a jeho S.M.A.R.T dáta detegoval.

Vopred ďakujem za rady.

Řešení:

Docela bych si tipnul, ze smartctl to bud cte primo prez volani nejake systemove funkce, a nebo ze to cte z nejakeho virtualniho filesystemu hluboko v /sys nebo tak nejak

Spis jde o to, jak to chces cist ty - pokud bys prote ve svem programu spustil "smartctl" s nejakyma parametrama a pak parsoval vystup, tak pro testovani proste staci napsat stejnojmenny skript, dat do do cesty driv, nez je binarka a nechat ho proste vypsat cokoliv (pomoci echo "Parametr: 1 0 255; neco cosi ...") a pak si to testovat v tom svem programu
Prvotni vypis udelas jednoduse tim skutecnym smartctl, ktery pomoci ">soubor" presmerujes do souboru a tam uz si to snadno v editoru obalis tema echama, pripadne zfalsujes po libosti.

Áno základy C viem. Síce už 4 roky som v ňom neprogramoval, ale pred 4 rokmi som v tom zvládal naprogramovať rôzne veci celkom v pohode.

Tak nahledni na SOC smartmontools - smartctl/smartd

a smartctl tento simulovaný disk a jeho S.M.A.R.T dáta detegoval.

Jestli virtualni HDD implantuji i FW S.M.A.R.T nevim IMHO ne, neni proc kontrolovat fyzicky stav neceho virtualniho nebo co je v nejakem kontejneru, ale take jsem mozna spatne pochopil podstatu otazky.

Předmět Autor Datum
Nulové alebo náhodné smart data by stačili?
Kilo.Viktor 25.04.2021 14:16
Kilo.Viktor
Náhodné dáta budú stačiť.
Ale 25.04.2021 14:28
Ale
Nad týmto som sa zamýšlal už pred 15 rokmi, ale opustil som tú myšlienku, pretože som nenašiel nič č…
Kilo.Viktor 25.04.2021 15:20
Kilo.Viktor
Dáta načitávam cez smartctl. Ono rozumiem že normálne to načitáva z registrov disku, ale potrebujem…
Ale 25.04.2021 15:28
Ale
To bude asi niečo nové. Môžeš uviesť konkrétne ako sa externé data načítajú do smart cez smartctl?
Kilo.Viktor 25.04.2021 15:34
Kilo.Viktor
Nerozumiem úplne otázke, mám virtuálny disk .img, ktorý mountujem v fstab, takže systém to vidí ako…
Ale 25.04.2021 16:15
Ale
Ved to ti Viktor pise cely cas, data nie su problem, problem je, ze ich nemas cim nacitat. Smartctl…
fleg 25.04.2021 16:24
fleg
Aha, hmm, nepoznáte nejaké hotové riešenie na simuláciu firmwaru disku,... ja keď hľadal našiel som…
Ale 25.04.2021 16:39
Ale
keďže môj disk tieto dáta neposkytuje asi jsem nechápavý, ale to je problém si obstarat disk, kter…
jirka44 25.04.2021 16:42
jirka44
On mysli jeho virtualny disk. Aspon myslim;o).
fleg 25.04.2021 16:44
fleg
V mojom prípade to je problematickejšie, takže som sa tomuto chcel vyhnúť. Ak to ale inak nie je mož…
Ale 25.04.2021 17:10
Ale
btw. vedeli by ste mi povedať na akom princípe funguje smartctl? Od čítania dát z registrov, ako to…
Ale 25.04.2021 19:09
Ale
Docela bych si tipnul, ze smartctl to bud cte primo prez volani nejake systemove funkce, a nebo ze t…
gilhad 26.04.2021 03:29
gilhad
áno, vo svojom procese len volám príkaz v bash/terminály, ktorý spawnem ako child process a následne…
Ale 26.04.2021 08:29
Ale
Ok, skúsil som to a podarilo sa,... troška bol problém napasovať aby ten výpis bol úplne presne rovn… poslední
Ale 26.04.2021 14:47
Ale
Od čítania dát z registrov, ako to prejde jednotlivými vrstvami aplikácie Stejne tak jako u SCSI .…
HPET 26.04.2021 10:56
HPET
Áno základy C viem. Síce už 4 roky som v ňom neprogramoval, ale pred 4 rokmi som v tom zvládal napro…
Ale 26.04.2021 11:10
Ale
Áno základy C viem. Síce už 4 roky som v ňom neprogramoval, ale pred 4 rokmi som v tom zvládal napro…
HPET 26.04.2021 11:11
HPET

Nad týmto som sa zamýšlal už pred 15 rokmi, ale opustil som tú myšlienku, pretože som nenašiel nič čím by sa tie data dali do smart programu načítať. Vygenerovať náhodné data nieje problém. Zaujímalo by ma čím tie data načítaš aby to smart zobrazil, pretože smart to čita priamo z registrov disku.

Dáta načitávam cez smartctl. Ono rozumiem že normálne to načitáva z registrov disku, ale potrebujem pre testovacie účely virtuálny disk so S.M.A.R.T dátami, keďže môj disk tieto dáta neposkytuje a teda neviem vôbec otestovať svoju aplikáciu v ktorej práve smartctl využívam.

Nerozumiem úplne otázke, mám virtuálny disk .img, ktorý mountujem v fstab, takže systém to vidí ako disk, nie? Prípadne ak to tak nefunguje, potom netuším ako inak dostať fake dáta do smartctl, ale myslím že nejaký spôsob musí byť. Inak netuším ako by som otestoval svoju aplikáciu.

Aha, hmm, nepoznáte nejaké hotové riešenie na simuláciu firmwaru disku,... ja keď hľadal našiel som len nejaký hardware-in-the-loop simulation system ale to asi nie je to. Nič iné sa mi nepodarilo nájsť na simuláciu firmwaru disku.

V mojom prípade to je problematickejšie, takže som sa tomuto chcel vyhnúť. Ak to ale inak nie je možné, tak si "vypožičiam" disk z NASu :-/.

Btw. mám notebook s len jedným slotom, takže ak tam dám tento disk, pôvodný budem musieť dať preč, a teda budem musieť na ten z NASu nainštalovať systém, a to sa mi fakt neche.

btw. vedeli by ste mi povedať na akom princípe funguje smartctl? Od čítania dát z registrov, ako to prejde jednotlivými vrstvami aplikácie, až po výsledné dáta ktoré poskytuje cez API?

Trocha som hľadal na Internete, ale čo som našiel, som z toho trocha zmätený a nerozumiem tomu.

Docela bych si tipnul, ze smartctl to bud cte primo prez volani nejake systemove funkce, a nebo ze to cte z nejakeho virtualniho filesystemu hluboko v /sys nebo tak nejak

Spis jde o to, jak to chces cist ty - pokud bys prote ve svem programu spustil "smartctl" s nejakyma parametrama a pak parsoval vystup, tak pro testovani proste staci napsat stejnojmenny skript, dat do do cesty driv, nez je binarka a nechat ho proste vypsat cokoliv (pomoci echo "Parametr: 1 0 255; neco cosi ...") a pak si to testovat v tom svem programu
Prvotni vypis udelas jednoduse tim skutecnym smartctl, ktery pomoci ">soubor" presmerujes do souboru a tam uz si to snadno v editoru obalis tema echama, pripadne zfalsujes po libosti.

Od čítania dát z registrov, ako to prejde jednotlivými vrstvami aplikácie

Stejne tak jako u SCSI . Pres sbernici cte hodnoty (reg.firmwarereg,atd) S.M.A.R.T. primo z HDD.
K cemu ti regularni vyrazi a operatory budou, uz jsi nekdy programoval firmware ? Znas alespon zaklad C, jinak nevim k cemu ti by princip bez znalosti s nim byl.
Kod na nahodne hodnoty udelat jde, ale k cemu ti budou kdyz je nebudes moct pouzit ?
Radeji bych te navedl na cestu pouzit nejaky jiz hotovy "fuck_firmware" nebo nejaky "SATA/IO emulatror" na generaci S.M.A.R.T. (to je jak delat nahodny symetricky-klic pro zadny text, ktery je urcen nikomu a ktery chces poslat nikam).

Áno základy C viem. Síce už 4 roky som v ňom neprogramoval, ale pred 4 rokmi som v tom zvládal naprogramovať rôzne veci celkom v pohode. Viem pracovať aj s pointermi, spojkovými zoznamami a signálmi a podobne (resp. s tým čo sme sa v škole učili).

Nakoniec myslím že možno to spravím ako navrhol gilhad, že spravím vlastný bash script, kde vypíšem cez echo falošné hodnoty, a nastavím alias aby sa tento script zavolal keď zadám príkaz smartctl, teda sa nebude volať skutočný smartctl.

Áno základy C viem. Síce už 4 roky som v ňom neprogramoval, ale pred 4 rokmi som v tom zvládal naprogramovať rôzne veci celkom v pohode.

Tak nahledni na SOC smartmontools - smartctl/smartd

a smartctl tento simulovaný disk a jeho S.M.A.R.T dáta detegoval.

Jestli virtualni HDD implantuji i FW S.M.A.R.T nevim IMHO ne, neni proc kontrolovat fyzicky stav neceho virtualniho nebo co je v nejakem kontejneru, ale take jsem mozna spatne pochopil podstatu otazky.

Zpět do poradny Odpovědět na původní otázku Nahoru