Temos Archyvai: IT

Operacinės sistemos paleistis iš klonuoto NVMe M.2 disko sename kompiuteryje su AMI UEFI

Turimas kompiuteris

  • ASRock Z77 Pro3 motininė plokštė
  • Intel Xeon E3-1270 v2 procesorius
  • 16 GB DDR3 atminties
  • Adata SU800 256 GB SATA SSD sisteminis diskas
  • Windows 10 Home 64 bitų operacinė sistema

Problema

Nors turimai kompiuterio platformai jau beveik 10 metų, kompiuteris dar yra pakankamai galingas daugumai užduočių atlikti. Didžiausią problemą kelia mažos talpos sisteminis diskas, kuris yra pastoviai perpildytas.

Susikuriam papildomą problemą

Kadangi kompiuterį per artimiausius kelis metus tikriausiai jau reikės keisti, išsirenku šiuolaikinį NVMe M.2 1 TB talpos diską ADATA XPG SX8200 PRO (130 €). Turimas kompiuteris neturi tinkamos vietos M.2 diskui įstatyti – tam išspręsti perku AXAGON PCEM2-D M.2 į PCI-E adapterį (12 €).

Šito ir užtektų, jei diską naudotume ne kaip sisteminį (į jį nebūtų įrašyta kompiuterio paleidimo metu įkraunama operacinė sistema), bet mano tikslas yra šį itin greitą diską naudoti kaip sisteminį ir, esant poreikiui, po kelių metų jį perkelti į naują kompiuterį. Jau prieš viską pirkdamas žinau, kad tai nebus taip paprasta, nes, nors turima ASRock Z77 Pro3 motininė ir turi UEFI BIOS (buvo viena iš pirmosios UEFI motininių kartos), bet jos turimas UEFI BIOS nemoka pradėti pirminės operacinės sistemos paleisties iš PCI-E įrenginių. Tačiau, kaip paaiškėjo perskaičius šį Win-Raid forumo įrašą, žinau, kad tai yra išsprendžiama.

Susikurtos problemos sprendimas

Problemos sprendimą sudaro trys etapai:

  1. BIOS modifikavimas ir perrašymas.
  2. Seno disko klonavimas į naują.
  3. Operacinės sistemos iš naujo disko klono paleidimas.

Atsargiai – pavojinga!

Aklai sekant toliau nurodytais žingsniais galima a) prarasti visus duomenis ir/ar b) sugadinti motininę plokštę. Tad pasidarom atsargines kopijas ir viskas savo rizika.

BIOS modifikavimas ir perrašymas

Šis žingsnis detaliai aprašytas anksčiau minėtame Win-Raid forumo įraše, tad labai nesiplėsiu. Paminėsiu tik pastebėjimus: atrodo, kad naujos UEFITool versijos visai nepalaiko UEFI BIOS atvaizdo redagavimo, tad teko naudoti MMTool įrankį, ir, norint įkelti NVMe paleisties modulį, reikėjo ištrinti Dhcp6Dxe ir Udp6Dxe modulius, nes atvaizde trūko vietos (minėti moduliai naudojami operacinės sistemos paleisčiai iš tinklo – ko aš nenaudoju).

Jei patys BIOS modifikuoti nenorite, mano modifikuotą galite parsisiųsti iš čia (2.20 versija su Meltdown/Spectre pataisymais nuo kurių lėtėja sistemos darbas) arba čia (2.10a versija be Meltdown/Spectre pataisymų). Pateikti BIOS tinka TIK ASRock Z77 Pro3 motininėms. Išarchyvuotą atvaizdą padedame į FAT32 formatuotą USB raktą, perkrauname kompiuterį, užeiname į BIOS nustatymus ir pradedame atnaujinimą.

Seno disko klonavimas į naują

Šiame žingsnyje sugaišau daugiausia laiko, kol supratau kur slypi problema. Taigi įvykių seka:

Diską klonuoti bandžiau per turimą Paragon Migrate OS to SSD programą, kurią anksčiau sėkmingai naudojau sisteminiam diskui iš mažesnės talpos SATA SSD disko į dabartinį 256 GB diską perkelti. Dabar, nors, klonavimas ir pavykdavo sėkmingai, bet paleisti operacinės sistemos iš disko klono nepavykdavo. Galiausiai pastebėjau, kad sename sisteminiame diske particijos yra MBR tipo – po klonavimo disko klono particijų tipas tapdavo taip pat MBR. Norint operacinę sistemą pakrauti iš PCI-E disko – jos turi būti GPT tipo (1 pav.)

1 pav. Prieš klonuojant diską reikia įsitikinti, kad disko particijos yra GPT tipo.

Disko particijų tipą iš MBR į GPT neprarasdamas duomenų pakeičiau su AOMEI Partition Assistant programa. Galiausiai su ta pačia programa diską ir klonavau.

Operacinės sistemos iš naujo disko klono paleidimas

Perkrovus kompiuterį, užeiname į BIOS nustatymus ir pagrindiniu paleisties disku nustatome „Windows boot manager” (modifikuotas BIOS disko gamintojo ir modelio nerodo). Paleidus Windows, įsitikiname, kad sistema buvo pakrauta iš naujo disko – jis turi tapti sisteminiu C: disku. Naujo disko greičiai pateikti 2 pav.

2 pav. Adata SX8200 PRO, prijungto per Axagon PCI-E adapterį PCI-E 2.0 x4 lizde Asrock Z77 Pro3 motininėje, greičiai.

Greičiai būtų didesni diską įdėjus į PCI-E 3.0 lizdą, bet mano lizdas yra užimtas vaizdo plokštės.

Pigios kinietiškos IP kameros (ne)saugumas

Per AliExpress įsigijau pigią kinietišką IP kamerą. Daug maž tuo pat metu užsienio spaudoje plačiai nuskambėjo naujienos apie DDoS atakas rengiamas per piktadarių užvaldytas IP kameras ir kitus „įrenginių interneto” prietaisus.

Gavęs savo užsakymą nusprendžiau išbandyti kiek saugi yra ši kamera. Nmap pagalba greitai aptikau atvirus prievadus:

80 prievadas naudojamas kameros web interfeisui, 554 – RTSP protokolo vaizdo srautui perduoti, o vat atidarytas telnet prievadas yra negražu ir yra plačiai išnaudojamas blogiukų įrenginiui užvaldyti.

Taigi bandau prie kameros jungtis per telnet – pirma išbandau kameros web interfeiso prisijungimo duomenis (kuriuos, beje, iš karto pakeičiau) – netinka, tada sekė keletas spėliojimų (su vartotojo root ir paprasčiausių slaptažodžių kombinacijomis) – nepavyko. Galiausiai po trumpo googlinimo radau 2014 (!) metų įrašą, po kuriuo komentatorius pasidalino panašios kameros root slaptažodžiu, kuris yra cat1029. Išbandžiau ir sėkmingai prisijungiau:

Taigi kameros kūrėjai dėl vienokių ar kitokių priežasčių paliko backdoor’ą su paprastai internete randamu slaptažodžiu, kamerai, kuri kaipgi turėtų užtikrinti Jūsų saugumą.

Pradžioje pabandykime užtikrinti KAMEROS saugumą: prisijungę per telnet vykdom komandą passwd ir pakeičiame slaptažodį. Perkrovus kamerą ir net atstačius gamintojo nustatymus per web interfeisą, slaptažodžio pakeitimas išsilaikė. Prieš kabindamas kamerą telnet servisą išjungsiu visai.

Taigi patarimai, įsigijusiems IP kameras:

  • Jokiu būdu neleiskite joms prieigos prie interneto! Laikykite jas tik už gerai sukonfigūruotos ugniasienės.
  • Jei įmanoma išjunkite nereikalingus servisus ir pakeiskite kameros root slaptažodį.

OpenBSD ugniasienė

Šiame įraše aprašinėsiu patirtį įrengiant sistemą namų tinklui apsaugoti. Kompiuteryje veiks OpenBSD operacinė sistema ir PF ugniasienė.

2016 11 10

Aparatinė įranga

  • Asus N3050I-C motininė plokštė su integruotu Intel Celeron N3050 dviejų branduolių 1.6 GHz dažnio procesoriumi – 67,39 €
  • Adata 2 GB DDR3 1600 MHz atmintis (AD3U1600C2G11-R) – 13,39 €
  • Adata SATA3 16 GB SSD modulis (DOM – Disk On Module) – 24,89 €
  • Intel Gigabit CT Desktop tinklo plokštė (PCI-E jungtis) – 31,39 €
  • Corsair VS350 350 W maitinimo blokas – 36,99 €
  • Eurocase MC X201 MicroATX korpusas – 18,29 €

Kaina viso: 192,34 €.

Surinktas kompiuteris. Laidai nesutvarkyti.

Viską surinkęs, pradėjau nuo RAM skanavimo MemTest86 4.3.7 versija pateikiama Ultimate Boot CD V5.3.6 ir… po 7 min ties 7 testu kompiuteris pakibo. Tada išbandžiau MemTest86+ 5.01 ir ties septintu testu gavau krūvą klaidų. Biškeli pasigooglinęs, RAM’ų nurašyti dar neskubėjau. Pradėjau nuo motininės plokštės BIOS atnaujinimo nuo buvusios priešpaskutinės 0507 versijos iki paskutinės 0601. Asus savo tinklapyje ties paskutinės versijos aprašymu nedaugžodžiavo: Improve system stability.

Po šio atnaujinimo MemTest86 jau nenulūždavo, bet ties 6 testu metė klaidas. Pasiskaitęs šią temą PassMark forume, bandyti ten aprašomų veiksmų nesiėmiau, bet pabandžiau iš MemTest86 puslapio atsisiųsti naujausią programos versiją, kuri yra 7.1. Laimei, klaidų testas daugiau neberado. Nekvaršindamas daugiau sau galvos, ankstesnes klaidas nurašiau ant senos MemTest versijos ir naujos aparatinės įrangos nesuderinamumo (aišku, jei bus stabilumo problemų prie šio klausimo reikės grįžti).

Įsitikinus šiokiu tokiu surinktos sistemos stabilumu, atėjo laikas įrašyti OpenBSD 6.0 operacinę sistemą. Įrašinėsiu iš USB rakto – tam parsisiunčiu instaliacinį disko atvaizdą – (install60.fs) failą. Iš Windows operacinės sistemos šio failo duomenis surašau į USB raktą Win32 Disk Imager pagalba.

2016 12 05

Įsigijau Absolute OpenBSD knygą.

[Bus tęsiama]

Kompiuteriniai pirkiniai

Atėjo tas metų laikas, kai susiruošiau atnaujinti esamą ir įsigyti naujos kompiuterinės įrangos. Taigi šios dienos pirkiniai:

2016-11-08-16-07-05

Turimą 120 GB Samsung 840 SSD keisiu šiuo Adata SU800 256 GB. Priežastis: nors SSD diską naudoju tik kaip sisteminį + pagrindinėms programoms, bet vietos pastoviai trūksta, tad nusprendžiau įsigyti talpesnį. Norėjosi 512 GB, bet pagailėjau eurų.

2016-11-08-16-05-43

Turimą Gigabyte Geforce GTX 650 Ti 1 GB vaizdo plokšte keisiu šia Palit GTX 1050 Ti 4 GB. Priežastis: norisi pažaisti Witcher 3. Plokštė ne iš galingųjų ir rimtesniam žaidėjui pridėjus ne tiek ir daug reiktų rinktis Geforce GTX 1060 arba ATI Radeon RX 470, tačiau visi dabartiniai žaidimai su 1050 Ti 1080p rezoliucijoje su gana aukštais nustatymais demonstruos gerą greitaveiką, o pati vaizdo plokštė piko metu naudos tik 75 W galios (plokštei taip pat nereikia papildomo 6 pin maitinimo).

2016-11-08-16-08-37

Tiesiog greitas ir pakankamai talpus atmintukas.

2016-11-08-16-08-26

Greitam duomenų perkėlimui iš (Micro)SD kortelių.

Toliau seka komponentai naujam kompiuteriui, kurio paskirtį aprašysiu sekančiame įraše.

2016-11-08-16-09-09

Asus N3050I-C motininė plokštė su integruotu Intel Celeron N3050 1.6 GHz procesoriumi. Procesoriaus TDP yra tik 6 W.

2016-11-08-16-06-40

Intel Gigabit Pro Desktop tinklo plokštė.

2016-11-08-16-06-24

Už maitinimo bloką stengiausi nepermokėti, bet tuo pačiu norėjosi ir kuo didesnio patikimumo (oksimoronas?), nes būsimai sistemai jo reikės.

2016-11-08-16-11-56

„Kietas diskas”.

2016-11-08-16-08-54

2 GB RAM – ne kas, bet planuojamai sistemai turėtų būti per akis.

Raspberry Pi NFS serveris ir Windows klientas

Įžanga

Microsoft pateikiamas NFS klientas yra prieinamas tik Enterprise ir Ultimate Windows versijose, tad šiame straipsnyje aprašysiu kaip paleisti NFS serverį Raspberry Pi 3 kompiuteryje ir prie jo prisijungti iš Windows 10 Home kliento (viskas turėtų veikti ir su kitomis Windows versijomis).

Raspberry Pi serveris

titulinis

Disko prijungimas

Prijungiam diską prie Raspberry Pi ir vykdom komandą fdisk -l. Sužinome kokį žymėjimą gavo prijungtas diskas:

fdisk

Sukuriame prijungimo vietą:

sudo mkdir /media/transcend

Kadangi prijungtas diskas yra NTFS failų sistemos, įsitikiname, kad įdiegtas NTFS skaitymo – rašymo draiveris:

sudo apt-get update

sudo apt-get install ntfs-3g

/etc/fstab faile sukuriame tokį įrašą:

Perkrauname Raspberry ir naujai prijungtame diske sukuriame katalogą, kuriame saugosime NFS share:

mkdir /media/transcend/NFS

NFS serverio nustatymas

sudo apt-get install nfs-common nfs-server

Pridedame tokią eilutę į /etc/exports failą:

exports

192.168.8.0/255.255.255.0 reiškia, kad bus priimti prisijungimai iš vietinio tinklo adresų diapazono 192.168.8.1 – 192.168.8.254. Opcija insecure pridėta, nes kitaip Windows klientas neprisijungia.

Windows klientas

Parsisiunčiame sukompiliuotus NFS Windows kliento failus iš čia.

išarchyvuojame ir sekame šiais žingsniais:

  1. (Jei neįdiegta) įdiegiame vcredist*.exe bibliotekas.
  2. Du kartus spaudžiame ant nfs41_driver.cer failo, pasirenkame Install Certificate ir įkeliame jį į Trusted Root Certification Authorities saugyklą.
  3. Atidarome komandinę eilutę kaip administratorius.
  4. Vykdome install.bat failą.
  5. Kopijuojame konfigūracinius failus:
    1. mkdir C:\etc
    2. copy etc_netconfig C:\etc\netconfig
    3. copy ms-nfs41-idmap.conf C:\etc\
  6. Leidžiame Windows užkrauti bandomaisiais sertifikatais pasirašytus failus:
    bcdedit /set testsigning on
  7. Perkrauname kompiuterį.
  8. Išjungiame DFS klientą:
    1. Paleidžiame regedit ir keliaujame į HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Mup
    2. Pridedame DWORD reikšme pavadinimu DisableDfs ir reikšme 1.
    1. Pridedame DNS priesagą, jei jos nėra:dns_suffix
    2. Perkrauname kompiuterį.
  9. Išbandome NFS klientą vykdydami komandą:
    nfsd_debug.exe --noldap --uid 1000 --gid 1000 -d 3
  10. Jei klientas nenulūžo ir veikia, atsidarome kitą komandinės eilutės langą ir prijungiame NFS share kaip Z diską:
    nfs_mount.exe Z: 192.168.8.103:\media\transcend\NFS

    kur 192.168.8.103 yra Raspberry Pi adresas.

Veikia:

veikia

Jei prijungiant NFS share meta panašią klaidą:

failed_mount

o NFS serveris paleistas, bet jį perkrovus:

sudo /etc/init.d/nfs-kernel-server restart

viskas sėkmingai prijungiama, vadinasi tikėtina, kad kraunantis Raspberry Pi nfs-kernel-server yra paleidžiamas anksčiau negu prijungiamas išorinis diskas. Tam pataisyti, galima uždelsti nfs-kernel-server paleidimą, tarkim 10 sekundžių, redaguojant /etc/init.d/nfs-kernel-server failą – po start sekcijos pridėjus sleep 10 eilutę:

sleep_nfs_kernel

Automatinis paleidimas ir prijungimas

Įsitikinus, kad viskas veikia, paleidžiame cmd.exe kaip administratorius, grįžtame į išarchyvuotą NFS kliento katalogą ir įrašome NFS klientą kaip servisą:

nfsd.exe -install

Tada per Run paleidžiame services.msc, susirandame pnfs client įrašą ir jo paleidimo tipą pakeičiame į automatinį:

servicesmsc

Automatiniam NFS share prijungimui, paleidžiam Task Scheduler, kairėje pusėje pasirenkam Task Scheduler Library ir sukuriame naują užduotį, dešinėje panėleje spausdami Create Task. Užduočiai suteikiame pavadinimą, Triggers kortelėje sukuriam trigerį, kuris suveiktų sistemos paleidimo metu su kokių 30 sekundžių uždelsimu, Actions kortelėje sukuriame Start a program veiksmą, kuris paleistų skriptą su panašiu turiniu:

C:\Users\User\Desktop\ms-nfs41-client-x64\nfs_mount.exe Z: 192.168.8.103:\media\transcend\NFS

Conditions kortelėje nuimame paukštuką nuo start the task only if computer is on AC power.

taskscheduler

Spaudžiam OK.

Kitą kartą paleidus kompiuterį, NFS klientas bus paleistas ir share prijungtas automatiškai.

Šaltiniai

  1. Raspberry Pi: How to Create an NFS Server
  2. NFSv4.1 Client for Windows
  3. NFSv4.1 Client for Windows (Mailing list)
  4. nfs-kernel-server starts too early

Boscam HD19 ir Raspberry Pi

Atrodo, kad yra tik vienas būdas teikti vaizdą realiu laiku iš Boscam HD19 vaizdo kameros į Raspberry Pi kompiuterį. Tam reikės AV to USB capture card įrenginio. Šiam reikalui nusprendžiau išbandyti KWorld VS-USB2800D, kuris kažkada buvo naudotas miniDV įrašams skaitmeninti ir jau ilgus metus dūlėjo stalčiuje (1-2 Pav.)

KWorld VS-USB2800D

1 Pav. KWorld VS-USB2800D priekis

KWorld VS-USB2800D

2 Pav. KWorld VS-USB2800D galas

Prijungiam Boscam kamerą prie capture card su pateiktu mini USB į kompozitinį AV laidu. Sujungiam pateiktą su Boscam multifunkcinio prievado maitinimo laidą su 12 V baterija (pagal Boscam specifikaciją). Aš naudojau Turnigy 3S 11.1 V bateriją, įtampos atrodo pakanka. Žr. nuotraukas žemiau.

Pic 3. Boscam HD19 with composite and power cables connected

3 Pav. Boscam HD19 su prijungtu kompozitiniu ir maitinimo laidais

Pic 4. Turingy 3S 11.1 V battery

4 Pav. Turnigy 3S 11.1 V baterija

Pic 5. Everything's connected

5 Pav. Viskas sujungta

Prijungiam capture card prie Raspberry Pi USB prievado (6 Pav.)

Pic 6. And... It's a mess

6 Pav. Laidų šiukšlynas

Įjungiam Boscam kamerą laikydami įjungimo mygtuką ir paleidžiam Raspberry. Jei tau sekasi, tai Raspberry Pi aptiks tavo capture card automatiškai ir pasikrovus operacinei sistemai galėsi ja naudotis. Dalinį palaikomos įrangos sąrašą galima rasti LinuxTV tinklapyje. Greitas būdas išbandyti ar viskas veikia yra naudojant guvcview programinę įrangą.

Mano atveju, nors viskas buvo aptikta, bet guvcview rodė tik juodą ekraną. Problema yra tame, kad KWorld capture card turi du įėjimus: S-Video ir kompozitinį ir pagal nutylėjimą laukia vaizdo signalo iš S-Video įėjimo.

Problemai išspręsti peržiūrėjau aptiktus įėjimus:

enum_channels

7 Pav. Prieinamų kanalų peržiūra

ir pasirinkau kompozitinį:

select_channel

8 Pav. Kanalo pasirinkimas

Veikia!

Pic 7. guvcview works

9 Pav. guvcview veikia