Megoldva: Solaris 10 password reset, raid partición

 ( nagysa | 2013. szeptember 9., hétfő - 7:27 )

Sziasztok!
A feladatom, hogy egy rég nem használt gépről az adatokat lementsem. Sajnos nem ismert a root password.
Bootoltam az install cd-ről '6 single user shell'-be, de kiírja, hogy a /dev/dsk/c0d0s0 és s1 raid partíciók és nem csatolja.
Mivel nem vagyok solaris expert, kérnék tanácsot, hogyan mountoljam fel!

E szerint próbáltam:
http://docs.oracle.com/cd/E18752_01/html/817-0403/tsgeneral-18.html

u.i.: Közben én is tanulmányozom a raidctl parancsot

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

/etc/vfstab-ban is ez a root partició egyik lába? mi a hibaüzenet?

A cd single user módban:"/dev/dsk/c0d0s0 és s1 raid partíciók és nem csatolja."

A cd-n nézzem meg a vfstab-ot?

Gondolom a raid-et kéne elindítani és mountolni, ennek nézek most utána. A géphez holnap du. fogok hozzáférni.

de ne a cdt mountold. a /-t kéne ilyenkor. azért mondtam hogy vfstabból szedd ki mi a /, azt rw-ban mountolod és ott kell a root pwt átírni. a cd meg már boot során mountolva is lett ha jól sejtem.

"
Oracle Solaris 10: Boot the system from a boot server or an install server, or from a local CD-ROM.

Mount the root (/) file system.

Remove the root password from the /etc/shadow file.

Reboot the system.

Log in and set root's password.
"

Szerintem neki a masodik pont okoz problemat. Azt mondja van RAID(Z?), azt elobb lehet el kellene inditani...
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.

ez jogos,meg ha zfs a boot és nincs legacy mount point akkor nem is lesz benne vfstabban mi a root mert ebben az esetben a zfs "service" kezeli a mountolást.

Akkor egy "zpool import -R /a rpool" megoldja a problémát. De nem gondolom, hogy raidz.

Amennyiben mégis az és esetleg több boot environment van, akkor ki kellene választani azt, amelyiken resetelni kell a jelszót. Ehhez a "beadm list" adhat segítséget. Ha megvan a BE amit használni kell akkor pedig a "zfs mount rpool/ROOT/ide_ird_a_BE_nevet" paranccsal kell csatolni.

A pontos hibaüzenet kellene első körben és egy uname -r kimenet. Addig is:
Ha a kimeneted 5.10, valóban 10-es, és van a metastat parancsodnak -c kapcsolója, tehát egy metastat -c kimenetben szépen láthatod jó eséllyel, milyen "RAID" struktúrád van. Esetleg egy prtvtoc kimenet a /dev/rdsk/cNdNs2-ről szintén hasznos lehet. Az fstyp kimenete a metastat kimenetében látható eszközökről ugyanott szintén. (Értsd: /dev/rdsk/dN) Fontos, hogy mount-oláskor az egyező nevű eszközt a /dev/dsk és NE a /dev/rdsk alól akard befűzni! (Pl. mount -F ufs (ha az) /dev/dsk/d1 /mnt)

UPDATE: belegondoltam, az eszköznév alapján x86, akkor pedig 5.10 :)

Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn

Köszönöm mindenkinek a segítséget.
Az érintett parancsok használatából felkészülök és
holnap du. megyek a géphez.

Én inkább azt tanácsolnám, hogy csatold fel egyenként a tükör lábait.

#mount /dev/dsk/c0d0s0 /a
#vi /a/etc/shadow
itt kitörlöd a jelszó hasht a root-tól

#umount /a
#mount /dev/dsk/c0d0s1 /a
#vi /a/etc/shadow
itt kitörlöd a jelszó hasht a root-tól

Jó esélyed van rá, hogy a /a csatolása után egy "chroot /a", valamint egy "passwd" paranccsal átírhatod a jelszót Ekkor elegendő csak az egyik lábon megcsinálni, mert a másikról induláskor leszinkronizálja (amennyiben egy tükörről (raid1) beszélünk és nem egy összefűzésről (raid0)).

Nem tudom, hogy ez Solarison mennyire gaz dolog. Linuxon sikerult mar elboknom igy RAID-et, egy komplett resync lett a vege. Minel nagyobb a disk, annal nagyobb gaz ez. En mindenesetre ezt csak akkor csinalnam, ha mar _nagyon_ nincs mas lehetoseg.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.

Volt már sajnos többször ilyenre szükségem. Nem volt semmi gond.

"Ophcrack is a Windows password cracker"

Akkor rosszul emlékeztem, de valahol láttam ilyesmi programot Solarisra.

John the Ripper-re gondolsz esetleg? De ahhoz be kell tudni butulni, belépni, stb. stb.

Megoldás:
Athes javaslatát kellet használnom. A raidctl paranccsal sehogyan sem sikerült a raid-et összerakni a telepítő dvd-ről indított shellben.

Az látszódott, hogy raid1, így aztán mindkét partíciót montoltam és mindkét helyen töröltem a shadow file-ból a jelszót.
A raid nem dőlt össze. (Ettől féltem nagyon)
Tehát az oracle-nél leírt dokumentáció http://docs.oracle.com/cd/E18752_01/html/817-0403/tsgeneral-18.html használható, ha nem raid a root partició.

Mindenkinek köszönöm a segítséget!!

így aztán mindkét partíciót montoltam és mindkét helyen töröltem a shadow file-ból a jelszót.

Megsúgom, hogy ez a megoldás életveszélyes - silent data corruption tud belőle lenni (azaz még észre sem veszed, hogy elbaszódott valami), mivel semmi nem garantálja, hogy a művelet után a két tükörfél tartalma meg fog egyezni - míg a rendszer ebben a hiszemben lesz.

Ha nem tudod raid-ben mountolni, akkor két értelmes megoldás van:
- az egyik felét megcsinálod, majd dd-vel az egész partíciót átmásolod a másik tükörfélre,
- az egyik felét megcsinálod, majd gondoskodsz róla, hogy a raid ne működjön (letiltod/kikonfigurálod vagy kiveszed a másik diszket), beindítod a géped, és újra építed a tükröt.

Nem lehet siman force resyncet kerni? Linux alatt ez siman megteheto ugy, hogy elfailedezteted a diskpar egyik tagjat (nyilvan azt, ahol nem modositottal), kinullazod, majd ujra felveszed.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.

Az alapvető probléma az, hogy a boot diszkről beszélünk. Mire a gép bebootol, hogy parancsokat kiadhass, addigra a root fs fel van mountolva, az alatta levő md device el van indítva (addigra simán megvan a silent data corruption, ha a diszkek nincsenek tükörben, de az oprendszer ezt hiszi).

Linux alatt is csak akkor működik a dolog, ha beindítod az md device-t a boot cd-dről, és normál md parancsokkal megváltoztatod a státuszát az egyik tükörfélnek (vagy a bootolás idejére eltünteted a második diszket).

A lényeges különbség, hogy egy sima Solaris 10 Install DVD-ről bootolva nem látod a diszken levő md device-okat. Ahhoz ugyanis az md device drivernek meg kellene mondani, hogy melyik diszk partíciókban van az md adatbázisa, ezt pedig a drivernek a konfig fájljában lehet megmondani, mégpedig a modul betöltődése előtt. Az Install DVD-n az a könyvtár, amiben a konfig van, az egyúttal az a könyvtár, amiben a device driver kernel modul is van, azaz bizony az az Install DVD-ről jön, tehát alapból erőteljesen read-only. Hacsak nem hekkelsz magadnak egyedi Install DVD-t, vagy nem másolod fel egy szerverre, és nem bootolsz róla hálózaton keresztül, nem tudod módosítani ezt a fájlt. Ezért a Solaris Install DVD-ről bootolva nem tudod módosítani az md adatbázisát, mivel ahhoz kellene az md device driver (Linuxon ugye ehhez elegek a user-space programok). Az egyedüli dolog, amit tudsz csinálni, hogy az első tükörfelet felmountolod, és átírod benne, hogy ne legyen egyáltalán md device támogatás (nem tölti be a modult, nem indítja el az md device-okat, nem is fognak létezni), a /etc/vfstab szerint pedig ne az md device legyen a root fs, hanem az első tükörfél fizikai diszkje. Így a következő bootolásnál már tükrözés nélkül bootol fel az oprendszer, és szépen nulláról megcsinálhatod az összes md device-t. Ez adatvesztéssel nem jár, ha tudod, hogy milyen partíciókból milyen md device-ok voltak összeállítva (mondjuk mert egy metastat -p -t sikerült nyomni a telepítés végén anno).

Soha tobbe nem fogok panaszkodni arra, hogy tul van bonyolitva Linuxon az MD.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.

Minden nap tanul az ember. Ahogy az ősi dakota közmondás is tartja. Visszavonom az " elegendő az egyik lábon módosítani" kijelentésemet, mert nem általános érvényű a boot során történő metasync. Az update 11-es solaris 10 X86-on nem szinkronizál.

Úgy tűnik, hogy létezik egy biztonságosabb módja is annak, hogy raidben lévő diszkeken ne kelljen lábanként módosítani és ne kelljen a tükröt sem megtörni. Ha az install DVD-ről Single userbe bootolunk, akkor a / nem lesz read-only, ugyanis az egy ramdisk. Ha az egyik lábat felcsatoljuk (hogy ne legyek megszólva, ezért ro-ban) a /a-ba, majd a meglévő md configot a /a/kernel/drv/md.conf helyről a /kernel/drv/ helyre másoljuk, majd kiadunk egy update_drv -f md parancsot, akkor a single módban is használhatjuk a metadevice-okat. Így fel is csatolhatjuk a /a-ba (miután lecsatoltuk a felcsatolt lábat): mount /dev/md/dsk/d0 /a

Ezek után a raidben szerkeszthetjük a fájlokat.

Na én ezt felvésem a "Best Practices" falamra.

mert nem általános érvényű a boot során történő metasync.

Annyira nem, hogy én még életemben nem láttam ilyet. (És ez nagy szó.)

A következő esetben én is ezt a megoldást fogom alkalmazni.