ü1ÀŽÀŽØŽÐ¼|¾|¿¹æó¤éŠ1ö»¾±8/tu…öuq‰Þ€Ãâï…öuÍ€ú€r Š6u€Æ€8òrЉçŠt‹L»|ö½€t-QS»ªU´AÍr ûUªuöÁt[fjfÿtSjj‰æ¸Bë[Y¸Í‰ür¿þUªu ÿã¾¹ë¾Ñë ¾ð뻴ͬ„ÀuôëþInvalid partition tableError loading operating systemMissing operating system€>>€¥>›Uªë€)çpÑNO_NAME FAT12 ú1ÀŽÐ¼|ûŽØè^ƒÆ»ü¬„Àt´Íëõ0äÍÍ Non-system disk Press any key to reboot Uªðÿÿÿÿÿ`ÿÿÿÿÿÿÿÿÿ ðÿÿÿ/ðÿÿoÿÿÿÿ¯ÿÿÿÿïÿÿÿÿÿÿ#@ÿÿÿÿðÿÿÿÿÿ`ÿÿÿÿÿÿÿÿÿ ðÿÿÿ/ðÿÿoÿÿÿÿ¯ÿÿÿÿïÿÿÿÿÿÿ#@ÿÿÿÿWIPE-OUT œ'™BDBD'™BDAversion.txtÿÿVERSION TXT '™BDBD'™BDAreadmse.txtÿÿÿÿREADME TXT '™BDBD'™BD" Ainfo.ØtxtÿÿÿÿÿÿÿÿINFO TXT '™BDBD'™BD]Ahelp.½txtÿÿÿÿÿÿÿÿHELP TXT '™BDBD'™BD@ SJIS ž'™BDBD'™BD . œ'™BDBD'™BD.. œ'™BDBD'™BDWIPE-OUT-13T_993 (2014-02-02) ƒn[ƒhƒfƒBƒXƒNÁ‹Žƒc[ƒ‹uwipe-outv version 1.3 ` ŠÈ’P‘€ì‚Ńn[ƒhƒfƒBƒXƒN‚̃f[ƒ^‚ðÁ‹Ž‚·‚é ` Copyright (C) 2013 by Dai ISHIJIMA œ‚Í‚¶‚ß‚É ƒpƒ\ƒRƒ“‚Ì÷“nŽž‚∕ªŽž‚ÉAƒn[ƒhƒfƒBƒXƒN‚̃f[ƒ^‚ªÁ‚³‚ꂸ‚É Žc‚Á‚Ä‚¢‚邱‚Æ‚ªŒ´ˆö‚ÅAŒÂlî•ñ‚âŠé‹Æî•ñ‚Ȃǂª˜R‰k‚·‚邱‚Æ‚ª–â ‘è‚Æ‚È‚Á‚Ä‚¢‚Ü‚·B ‚±‚Ìuƒn[ƒhƒfƒBƒXƒNÁ‹Žƒc[ƒ‹wwipe-outxv‚ðŽg‚¤‚ÆAŠÈ’P‚ÉA ‚©‚ˆÀ‘S‚ÉAƒn[ƒhƒfƒBƒXƒN‚É‹L˜^‚³‚ê‚Ä‚¢‚éƒf[ƒ^‚ðÁ‹Ž‚·‚邱‚Æ‚ª ‚Å‚«‚Ü‚·B‚±‚̃c[ƒ‹‚ÍAƒn[ƒhƒfƒBƒXƒN‚Ƀf[ƒ^‚ðã‘‚«‚·‚邱‚Æ‚É ‚æ‚Á‚ÄA‹L˜^‚³‚ê‚Ä‚¢‚½ƒf[ƒ^‚ðÁ‹Ž‚µ‚Ü‚·B œ‚±‚ÌCD‚Ì’†g ‚±‚ÌCD‚̓u[ƒ^ƒuƒ‹CD‚Å‚·Bƒpƒ\ƒRƒ“‚ðCD‚âDVDƒhƒ‰ƒCƒu‚©‚ç‹N“®‚Å ‚«‚邿‚¤‚Éݒ肵A‚±‚ÌCD‚©‚ç‹N“®‚·‚邯Auwipe-outv‚ª“®‚«‚Ü‚·B œƒfƒBƒXƒN‚̃f[ƒ^‚ðÁ‚· ‚±‚ÌCD‚©‚çƒu[ƒg‚·‚邯AŽŸ‚̂悤‚ȃƒjƒ…[‰æ–Ê‚ª•\ަ‚³‚ê‚Ü‚·B ƒn[ƒhƒfƒBƒXƒN‚Ì–¼‘O‚â—e—Ê (‚±‚Ì—á‚Å‚Íu/dev/ad0 vu4,294,967,296 ƒoƒCƒg (4.0G)v) ‚ÍAŽÀÛ‚É‚¨Žg‚¢‚̃n[ƒh ƒfƒBƒXƒN‚Ìî•ñ‚ª•\ަ‚³‚ê‚Ü‚·B +---------------- ƒn[ƒhƒfƒBƒXƒNÁ‹Žƒc[ƒ‹wwipe-outx ----------------+ | šƒƒCƒ“ƒƒjƒ…[š | | Œ»Ý‘I‘𒆂̃fƒBƒXƒN‚Í /dev/ad0 ‚Å‚·B | | ƒfƒBƒXƒN‚Ì—e—Ê‚Í 4,294,967,296 ƒoƒCƒg (4.0G) ‚Å‚·B | | ˆÈ‰º‚̃ƒjƒ…[‚©‚爗‚ð‘I‘ð‚µ‚Ä‚­‚¾‚³‚¢B | | | | +------------------------------------------------------------------+ | | | z 0‚ðã‘‚«‚µ‚ÄA‚±‚̃fƒBƒXƒN‚̃f[ƒ^‚ðÁ‚· | | | | h ‘€ì•û–@‚ÌŠT—v‚ð•\ަ‚·‚é | | | | n •¡”‰ñã‘‚«‚µ‚ÄA‚±‚̃fƒBƒXƒN‚̃f[ƒ^‚ð”O“ü‚è‚ÉÁ‚· | | | | m ”O“ü‚èÁ‹Ž‚Ìã‘‚«•û–@‚ð‘I‘ð‚·‚é | | | | v ƒf[ƒ^‚ªÁ‹Ž‚³‚ꂽ‚©Šm”F‚·‚é (‚‘¬^ˆê•”‚ðƒ`ƒFƒbƒN) | | | | V ƒf[ƒ^‚ªÁ‹Ž‚³‚ꂽ‚©Šm”F‚·‚é (’Êí^‘S•”‚ðƒ`ƒFƒbƒN) | | | | w Á‹ŽƒƒO‚ðƒfƒBƒXƒN‚É‘‚«ž‚Þ | | | | L “®ì‹L˜^‚ðƒtƒƒbƒs[‚É‘‚«o‚· | | | +-----v(+)---------------------------------------------------------+ | | | +----------------------------------------------------------------------+ | [ OK ] Cancel | +----------------------------------------------------------------------+ ‚±‚±‚ÅAƒn[ƒhƒfƒBƒXƒN‚Ì–¼‘O‚â—e—Ê‚ªAƒf[ƒ^‚ðÁ‹Ž‚µ‚½‚¢ƒn[ƒh ƒfƒBƒXƒN‚Ì‚à‚̂ł ‚é‚©‚Ç‚¤‚©‚ðŠm”F‚µ‚Ä‚­‚¾‚³‚¢B‚»‚̃n[ƒhƒfƒBƒX ƒN‚̃f[ƒ^‚ðÁ‹Ž‚·‚éꇂÍAu0‚ðã‘‚«‚µ‚ÄA‚±‚̃fƒBƒXƒN‚̃f[ ƒ^‚ðÁ‚·v‚ªƒnƒCƒ‰ƒCƒg‚³‚ê‚Ä‚¢‚éó‘ԂŃGƒ“ƒ^[ƒL[‚ð‰Ÿ‚µ‚Ä‚­‚¾‚³ ‚¢ (ˆÈ‰ºA‚±‚Ì‘€ì‚ðu‘I‘ð‚·‚év‚ÆÌ‚µ‚Ü‚·)B ã‚̃ƒjƒ…[‚Åu0‚ðã‘‚«‚µ‚ÄA‚±‚̃fƒBƒXƒN‚̃f[ƒ^‚ðÁ‚·v‚ð ‘I‘ð‚·‚é‚ÆAŽŸ‚̂悤‚ÉŠm”FƒƒbƒZ[ƒW‚ª•\ަ‚³‚ê‚Ü‚·B ƒfƒBƒXƒN ad0 ‚Ì ‘Sƒf[ƒ^ 4,294,967,296 ƒoƒCƒg‚ðA 0‚Åã‘‚«‚µ‚ÄÁ‹Ž‚µ‚Ü‚·B ‚æ‚낵‚¢‚Å‚·‚©? [ Yes ] No ƒf[ƒ^‚ðÁ‹Ž‚·‚éꇂÍA‚±‚±‚ÅuYesv‚ð‘I‘ð‚µ‚Ä‚­‚¾‚³‚¢BuYesv ‚ð‘I‘ð‚·‚é‚ÆA‚³‚ç‚É‚µ‚‚±‚­AˆÈ‰º‚ÌŠm”FƒƒbƒZ[ƒW‚ª•\ަ‚³‚ê‚Ü‚·B –{“–‚Éad0 (4.0G) ‚̃f[ƒ^‚ðÁ‹Ž‚µ‚Ä‚¢‚¢‚Å‚·‚©? [ Yes ] No ƒf[ƒ^‚ðÁ‹Ž‚·‚éꇂÍAÄ“xuYesv‚ð‘I‘ð‚µ‚Ä‚­‚¾‚³‚¢BuNov ‚ð‘I‘ð‚·‚é‚ÆÅ‰‚̃ƒjƒ…[‚É–ß‚è‚Ü‚·BuYesv‚ð‘I‘ð‚·‚é‚Æƒf[ƒ^ ‚ÌÁ‹Ž‚ªŽn‚Ü‚è‚Ü‚·B ƒf[ƒ^‚ÌÁ‹Ž’†‚ÍAŽŸ‚̂悤‚Éi’»ó‹µ‚ª•\ަ‚³‚ê‚Ü‚·B ƒfƒBƒXƒN ad1 ‚̃f[ƒ^‚ðÁ‹Ž‚µ‚Ä‚¢‚Ü‚·B 25% (1024/4096) I—¹ ^ 21•b Œo‰ß Žc‚è ‚¨‚æ‚»128•b 0%|############______________________________________|100% ‰æ–Ê‚Ìʼnºs‚É‚ÍAŽŸ‚̂悤‚É‘‚«ž‚Ý‘¬“x‚ª•\ަ‚³‚ê‚Ü‚·B 33554432 bytes transferred in 1.307584 secs (25661396 bytes/sec) ƒf[ƒ^‚ÌÁ‹Ž‚É—v‚·‚鎞ŠÔ‚ÍA‚¨Žg‚¢‚̃n[ƒhƒfƒBƒXƒN‚Ì—e—Ê‚âƒpƒ\ ƒRƒ“‚É‚æ‚Á‚ĈقȂè‚Ü‚·Bƒn[ƒhƒfƒBƒXƒN‚Ì—e—Ê‚ª¬‚³‚­Aƒpƒ\ƒRƒ“‚Ì ˆ—‘¬“x‚ª‘¬‚¯‚ê‚ÎAÁ‹Ž‚É—v‚·‚鎞ŠÔ‚Í’Z‚­‚È‚è‚Ü‚·B ƒf[ƒ^‚ÌÁ‹Ž‚ªI‚í‚邯A ƒfƒBƒXƒN‚̃f[ƒ^Á‹Ž‚ªI—¹‚µ‚Ü‚µ‚½ (2•ª30•b) [OK] ‚Æ‚¢‚¤ƒƒbƒZ[ƒW‚ª•\ަ‚³‚ê‚Ü‚·B‚±‚±‚ÅAƒGƒ“ƒ^[ƒL[‚ð‰Ÿ‚·‚ÆAÅ ‰‚̃ƒjƒ…[‚É–ß‚è‚Ü‚·B œ‘€ì•û–@‚ɂ‚¢‚Ä ƒƒCƒ“ƒƒjƒ…[‚©‚çu‘€ì•û–@‚ÌŠT—v‚ð•\ަ‚·‚év‚ð‘I‘ð‚·‚é‚ÆAŠÈ ’P‚È‘€ì•û–@‚Ìà–¾‚ª•\ަ‚³‚ê‚Ü‚·B œÁ‹ŽˆÈŠO‚Ì‘€ì‚ɂ‚¢‚Ä ƒƒCƒ“ƒƒjƒ…[‚Å㉺ƒJ[ƒ\ƒ‹ƒL[‚ð‰Ÿ‚·‚ÆA•ʂ̀–Ú‚ðƒnƒCƒ‰ƒCƒg ‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·BƒƒCƒ“ƒƒjƒ…[‚É‚Í8‚‚̑I‘ðŽˆ‚µ‚©•\ަ‚³‚ê‚Ä ‚¢‚Ü‚¹‚ñ‚ªA㉺ƒJ[ƒ\ƒ‹ƒL[‚ð‰Ÿ‚·‚ƃXƒNƒ[ƒ‹‚É‚æ‚èAŠeŽí‘€ìƒ ƒjƒ…[‚ª•\ަ‚³‚ê‚Ü‚·Buƒn[ƒhƒfƒBƒXƒNÁ‹Žƒc[ƒ‹wwipe-outxv‚Å ‚ÍAƒf[ƒ^Á‹ŽˆÈŠO‚É‚àAÁ‹Ž‚³‚ê‚Ä‚¢‚é‚©‚Ç‚¤‚©‚ÌŠm”FA“®ì‹L˜^‚Ì ‘‚«ž‚ÝAƒn[ƒhƒfƒBƒXƒN‚̃Rƒs[AƒVƒFƒ‹‚Ì‹N“®AÄ‹N“®AƒVƒƒƒbƒg ƒ_ƒEƒ“‚Ȃǂ̑€ìƒƒjƒ…[‚ª—pˆÓ‚³‚ê‚Ä‚¢‚Ü‚·BˆÈ‰º‚ɃƒCƒ“ƒƒjƒ…[ ‚©‚ç‘I‘ð‚Å‚«‚é‘€ì‚̈ꗗ‚ðŽ¦‚µ‚Ü‚·B E0‚ðã‘‚«‚µ‚ÄA‚±‚̃fƒBƒXƒN‚̃f[ƒ^‚ðÁ‚· E‘€ì•û–@‚ÌŠT—v‚ð•\ަ‚·‚é E•¡”‰ñã‘‚«‚µ‚ÄA‚±‚̃fƒBƒXƒN‚̃f[ƒ^‚ð”O“ü‚è‚ÉÁ‚· E”O“ü‚èÁ‹Ž‚Ìã‘‚«•û–@‚ð‘I‘ð‚·‚é Eƒf[ƒ^‚ªÁ‹Ž‚³‚ꂽ‚©Šm”F‚·‚éi‚‘¬^ˆê•”‚ðƒ`ƒFƒbƒNj Eƒf[ƒ^‚ªÁ‹Ž‚³‚ꂽ‚©Šm”F‚·‚éi’Êí^‘S•”‚ðƒ`ƒFƒbƒNj EÁ‹ŽƒƒO‚ðƒfƒBƒXƒN‚É‘‚«ž‚Þ E“®ì‹L˜^‚ðƒtƒƒbƒs[‚É‘‚«o‚· E•ʂ̃fƒBƒXƒN‚ð‘I‘ð‚·‚é EƒfƒBƒXƒN‚̃f[ƒ^‚ð•\ަ‚·‚é Eƒf[ƒ^‚ð•\ަ‚·‚éƒZƒNƒ^‚ÌŽw’è Euwwipe-outx‚ɂ‚¢‚Äv‚ðŒ©‚é E‹N“®Žž‚̃VƒXƒeƒ€ƒƒbƒZ[ƒW‚ðŠm”F‚·‚é EƒfƒBƒXƒN‚ðƒRƒs[‚·‚éi‚‘¬^ƒoƒbƒNƒAƒbƒvŒü‚¯j EƒfƒBƒXƒN‚ðƒRƒs[‚·‚éi’ᑬ^ƒf[ƒ^ƒTƒ‹ƒx[ƒWŒü‚¯j E1‚ðã‘‚«‚µ‚ÄA‚±‚̃fƒBƒXƒN‚̃f[ƒ^‚ðÁ‚· Eƒ‰ƒ“ƒ_ƒ€ƒpƒ^[ƒ“‚ðã‘‚«‚µ‚ÄA‚±‚̃fƒBƒXƒN‚̃f[ƒ^‚ðÁ‚· Eƒpƒ^[ƒ“‚̕│ðã‘‚«‚µ‚ÄA‚±‚̃fƒBƒXƒN‚̃f[ƒ^‚ðÁ‚· Eƒ‰ƒ“ƒ_ƒ€ƒf[ƒ^‚ðã‘‚«‚µ‚ÄA‚±‚̃fƒBƒXƒN‚̃f[ƒ^‚ðÁ‚· E“®ì‹L˜^‚ð•\ަ‚·‚é EƒfƒBƒXƒN‚ÌŽ©ŒÈf’fî•ñ (SMARTî•ñ) ‚ð•\ަ‚·‚é EƒVƒFƒ‹ishj‚ð‹N“®‚·‚é EƒVƒFƒ‹icshj‚ð‹N“®‚·‚é ECD-ROM‚ðmount‚·‚é ECD-ROM‚ðumount‚·‚é EMBR *‚Ì‚Ý* ‚ðÁ‹Ž‚·‚é EƒVƒƒƒbƒgƒ_ƒEƒ“‚·‚é EÄ‹N“®‚·‚é œ‘Ήž‹@Ží‚ɂ‚¢‚Ä E–{ƒc[ƒ‹‚ÍAFreeBSD/i386‚ª“®ì‚·‚éƒRƒ“ƒsƒ…[ƒ^‚Å—˜—p‚Å‚«‚Ü‚·B E–{ƒc[ƒ‹‚Ńf[ƒ^‚ðÁ‹Ž‚Å‚«‚éƒXƒgƒŒ[ƒWƒfƒoƒCƒX‚ÍŽŸ‚̂Ƃ¨‚è‚Å‚·B EFreeBSD‚̃J[ƒlƒ‹ (ƒCƒ“ƒXƒg[ƒ‹—pCD‚̃J[ƒlƒ‹) ‚ňµ‚¦‚é‚à ‚Ì‚Ì‚¤‚¿AˆÈ‰º‚ÌðŒ‚ð–ž‚½‚·‚à‚Ì EATAƒfƒBƒXƒNƒRƒ“ƒgƒ[ƒ‰ƒhƒ‰ƒCƒo (ata(4)) ‚ňµ‚¦‚é‚à‚Ì Eˆê”Ê“I‚ÈS-ATA/P-ATAƒCƒ“ƒ^[ƒtƒFƒCƒX‚̃n[ƒhƒfƒBƒXƒN E“¯ASSDƒhƒ‰ƒCƒu ESCSIƒ_ƒCƒŒƒNƒgƒAƒNƒZƒXƒfƒoƒCƒXƒhƒ‰ƒCƒo (da(4)) ‚ňµ‚¦ ‚é‚à‚Ì Eˆê”Ê“I‚ÈSCSIƒCƒ“ƒ^[ƒtƒFƒCƒX‚̃n[ƒhƒfƒBƒXƒN EFreeBSD‚ňµ‚¦‚éRAIDƒRƒ“ƒgƒ[ƒ‰ (asr(4)) ‚ȂǂÉÚ‘± ‚³‚ꂽƒn[ƒhƒfƒBƒXƒN EUSBƒƒ‚ƒŠƒJ[ƒhƒAƒ_ƒvƒ^‚ÉÚ‘±‚µ‚½ŠeŽíƒƒ‚ƒŠƒJ[ƒh‚âA USBƒtƒ‰ƒbƒVƒ…ƒƒ‚ƒŠ‚ȂǂÌUSB‘å—e—ʃXƒgƒŒ[ƒW ¦ad(4), da(4), asr(4) ‚ȂǂÌÚׂɂ‚¢‚Ä‚ÍAFreeBSD‚̃}ƒjƒ…ƒA ƒ‹ƒy[ƒW‚È‚Ç‚ð‚²——‚­‚¾‚³‚¢B œ“®ì‚Ì‹L˜^‚̕ۑ¶‚ɂ‚¢‚Ä uƒn[ƒhƒfƒBƒXƒNÁ‹Žƒc[ƒ‹wwipe-outxv‚Å‚ÍA“®ì‚Ì‹L˜^‚ð•Û‘¶ ‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B•Û‘¶‰Â”\‚ȃƒfƒBƒA‚̓tƒƒbƒs[ƒfƒBƒXƒN‚âUSB ƒƒ‚ƒŠ‚Ȃǂł·B“®ì‚Ì‹L˜^‚ð•Û‘¶‚·‚郃fƒBƒA (ƒtƒƒbƒs[‚âUSBƒ ƒ‚ƒŠ) ‚ÍA‚ ‚ç‚©‚¶‚ßFATƒtƒH[ƒ}ƒbƒg‚ðs‚¢AuWIPE-OUTv‚Æ‚¢‚¤–¼ ‘O‚̃tƒHƒ‹ƒ_‚ðƒ‹[ƒgƒfƒBƒŒƒNƒgƒŠ‚É쬂µ‚Ä‚¨‚¢‚Ä‚­‚¾‚³‚¢B œ‚¨‚±‚Æ‚í‚è E–{ƒc[ƒ‹‚ÍAOS‚Æ‚µ‚ÄFreeBSD‚ð—˜—p‚µ‚Ä‚¢‚Ü‚·B E–{ƒc[ƒ‹‚̓tƒŠ[ƒEƒFƒA‚Å‚·B’˜ìŒ ‚ÍAìŽÒ‚Å‚ ‚é ‚¢‚µ‚¶‚Ü™‚¾‚¢ ‚ª•Û—L‚µ‚Ä‚¢‚Ü‚·B E–{ƒc[ƒ‹‚ð—˜—p‚µ‚½A‚ ‚é‚¢‚Í—˜—p‚µ‚È‚©‚Á‚½‚±‚Ƃɂæ‚Á‚Ķ‚¶‚½ ‚¢‚©‚Ȃ錋‰Ê‚ɂ‚¢‚Ä‚àAìŽÒ‚ÍÓ”C‚ðˆêØ•‰‚¢‚Ü‚¹‚ñB œŽQl•¶Œ£ EŽÐ’c–@l “dŽqî•ñ‹ZpŽY‹Æ‹¦‰ï (http://www.jeita.or.jp/japanese/index.htm) uƒpƒ\ƒRƒ“‚Ì”pŠüE÷“nŽž‚É‚¨‚¯‚éƒn[ƒhƒfƒBƒXƒNã‚̃f[ƒ^Á‹Ž ‚ÉŠÖ‚·‚é—¯ˆÓŽ–€v(http://it.jeita.or.jp/perinfo/committee/ pc/JEITA_HDDdata100219F.pdf) œ–{ƒc[ƒ‹‚Ì“üŽè•û–@ –{ƒc[ƒ‹‚¨‚æ‚ÑŽo–…•i‚ÍAìŽÒ‚̃EƒFƒuƒTƒCƒg‚ÅŒöŠJ‚µ‚Ä‚¢‚Ü‚·BƒA ƒhƒŒƒX‚Í http://hp.vector.co.jp/authors/VA004814/ ‚Å‚·B•K—v‚ɉž ‚¶‚ă_ƒEƒ“ƒ[ƒh‚µ‚Ä‚­‚¾‚³‚¢B ƒn[ƒhƒfƒBƒXƒNÁ‹Žƒc[ƒ‹uwipe-outvv1.3 Copyright (C) 2013 by Dai ISHIJIMA ƒn[ƒhƒfƒBƒXƒNÁ‹Žƒc[ƒ‹uwipe-outvƒo[ƒWƒ‡ƒ“ 1.3 Copyright (C) 2013 by ‚¢‚µ‚¶‚Ü™‚¾‚¢ E‚±‚̃c[ƒ‹‚ÍAƒIƒyƒŒ[ƒeƒBƒ“ƒOƒVƒXƒeƒ€‚ÉuFreeBSDv‚ð—˜—p‚µ‚Ä‚¢‚Ü‚·B E‚±‚̃c[ƒ‹‚ÍA“ú–{ŒêƒRƒ“ƒ\[ƒ‹ukon2v‚ð—˜—p‚µ‚Ä‚¢‚Ü‚·B E‚±‚̃c[ƒ‹‚ÍA“ú–{ŒêƒtƒHƒ“ƒg‚Éu‚Ï‚¤ƒtƒHƒ“ƒgv‚ð—˜—p‚µ‚Ä‚¢‚Ü‚·B Eƒƒjƒ…[•\ަ‚É‚ÍAuFreeBSDv‚Ìudialog(1)vƒRƒ}ƒ“ƒh‚ð—˜—p‚µ‚Ä‚¢‚Ü‚·B ‚±‚êˆÈŠO‚É‚àuFreeBSDv‚É•t‚·‚éŠeŽíƒ\ƒtƒgƒEƒFƒA‚ð—˜—p‚µ‚Ä‚¢‚Ü‚·B E‚±‚̃c[ƒ‹‚ÍAFreeBSD/i386‚ª“®ì‚·‚éƒRƒ“ƒsƒ…[ƒ^‚Å—˜—p‚Å‚«‚Ü‚·B E‚±‚̃c[ƒ‹‚Ńf[ƒ^‚ðÁ‹Ž‚Å‚«‚éƒn[ƒhƒfƒBƒXƒNiƒXƒgƒŒ[ƒWƒfƒoƒCƒXj‚Í ŽŸ‚̂Ƃ¨‚è‚Å‚·B EFreeBSD 8.3R‚̃Cƒ“ƒXƒg[ƒ‹—pƒJ[ƒlƒ‹‚ňµ‚¦‚é‚à‚̂̂¤‚¿A ˆÈ‰º‚ÌðŒ‚ð–ž‚½‚·‚à‚Ì EƒJ[ƒlƒ‹‚ɃfƒoƒCƒXƒhƒ‰ƒCƒo‚ª‘g‚Ýž‚Ü‚ê‚Ä‚¢‚éƒCƒ“ƒ^[ƒtƒFƒCƒX ‚ÉÚ‘±‚³‚ꂽƒn[ƒhƒfƒBƒXƒNiƒXƒgƒŒ[ƒWƒfƒoƒCƒXj EATAƒfƒBƒXƒNƒRƒ“ƒgƒ[ƒ‰ƒhƒ‰ƒCƒo ata(4) ‚ňµ‚¦‚é‚à‚Ì Eˆê”Ê“I‚ÈATA/IDEƒCƒ“ƒ^[ƒtƒFƒCƒX‚̃n[ƒhƒfƒBƒXƒN ESCSIƒ_ƒCƒŒƒNƒgƒAƒNƒZƒXƒfƒoƒCƒXƒhƒ‰ƒCƒo da(4) ‚ňµ‚¦‚é‚à‚Ì Eˆê”Ê“I‚ÈSCSIƒCƒ“ƒ^[ƒtƒFƒCƒX‚̃n[ƒhƒfƒBƒXƒN ESCSIƒRƒ“ƒgƒ[ƒ‰‚ÉÚ‘±‚³‚ꂽMOiŒõŽ¥‹CƒfƒBƒXƒNj‚Å ƒZƒNƒ^ƒTƒCƒY‚ª512ƒoƒCƒg‚Ì‚à‚Ì EFreeBSD‚ňµ‚¦‚éRAIDƒRƒ“ƒgƒ[ƒ‰iasr(4) ‚È‚Çj‚É Ú‘±‚³‚ꂽƒn[ƒhƒfƒBƒXƒN EUSBƒƒ‚ƒŠƒJ[ƒhƒAƒ_ƒvƒ^‚ÉÚ‘±‚µ‚½ ŠeŽíƒtƒ‰ƒbƒVƒ…ƒƒ‚ƒŠƒJ[ƒh‚âAUSBƒtƒ‰ƒbƒVƒ…ƒƒ‚ƒŠ‚È‚Ç‚Ì USB‘å—e—ʃXƒgƒŒ[ƒW EŽŸ‚̂悤‚ȃXƒgƒŒ[ƒWƒfƒoƒCƒX‚ɂ͑Ήž‚µ‚Ä‚¢‚Ü‚¹‚ñ EFreeBSD 8.3R‚̃Cƒ“ƒXƒg[ƒ‹—pƒJ[ƒlƒ‹‚ňµ‚¦‚È‚¢‚à‚̂⠃u[ƒgŽž‚ɳ‚µ‚­”Fޝ‚Å‚«‚È‚¢ƒXƒgƒŒ[ƒWƒfƒoƒCƒX EFreeBSD‚ňµ‚¦‚È‚¢ƒCƒ“ƒ^[ƒtƒFƒCƒX‚ÉÚ‘±‚³‚ꂽƒfƒBƒXƒN Eata(4) ‚¨‚æ‚Ñ da(4) ƒfƒoƒCƒXƒhƒ‰ƒCƒo‚ňµ‚¦‚È‚¢‚à‚Ì E‚±‚̃c[ƒ‹‚ð—˜—p‚µ‚½A‚ ‚é‚¢‚Í—˜—p‚µ‚È‚©‚Á‚½‚±‚Ƃɂæ‚Á‚Ķ‚¶‚½ ‚¢‚©‚Ȃ錋‰Ê‚ɂ‚¢‚Ä‚àAìŽÒ‚ÍÓ”C‚ðˆêØ•‰‚¢‚Ü‚¹‚ñB ‚à‚µA‚ ‚È‚½‚ª‚±‚̃tƒ@ƒCƒ‹‚ðuwipe-outv‚ð‹N“®‚µ‚½ƒ}ƒVƒ“‚Å ƒƒCƒ“ƒƒjƒ…[‚©‚猩‚邱‚Æ‚ª‚Å‚«‚½‚Æ‚·‚ê‚ÎA—]Œv‚Èà–¾‚Í•s—v ‚©‚à‚µ‚ê‚Ü‚¹‚ñB yƒƒCƒ“ƒƒjƒ…[‚ł̑€ìz ƒƒCƒ“ƒƒjƒ…[‰æ–ʂ̑€ì‚ÌŠî–{‚ÍA E㉺ƒJ[ƒ\ƒ‹ƒL[‚É‚æ‚ès‚¢‚½‚¢€–Ú‚ð‘I‘ð EƒGƒ“ƒ^[ƒL[‚É‚æ‚è‘I‘ð‚µ‚½€–Ú‚ðŽÀs ‚Å‚·B‘I‘ð‚³‚ê‚Ä‚¢‚逖ڂ̓nƒCƒ‰ƒCƒg•\ަ‚³‚ê‚Ä‚¢‚Ü‚·Buwipe- outv‹N“®Žž‚ÍAu0‚ðã‘‚«‚µ‚Äcv‚ªƒnƒCƒ‰ƒCƒg•\ަ‚³‚ê‚Ä‚¢‚é ‚Í‚¸‚Å‚·B ƒƒCƒ“ƒƒjƒ…[‚©‚炱‚̉æ–Ê‚ð•\ަ‚³‚¹‚é‚É‚ÍA‰ºƒJ[ƒ\ƒ‹ƒL[ ‚ðˆê‰ñ‚¾‚¯‰Ÿ‚µAƒGƒ“ƒ^[ƒL[‚ð‰Ÿ‚µ‚Ü‚·B‰æ–ʂɕ\ަ‚µ‚«‚ê‚È‚¢ •”•ª‚ÍA㉺ƒJ[ƒ\ƒ‹ƒL[‚ð‰½“x‚©‰Ÿ‚·‚ÆAƒXƒNƒ[ƒ‹‚µ‚óë ‚Ü‚·B ‚½‚Æ‚¦‚ÎAƒƒCƒ“ƒƒjƒ…[‚É‚ÍuÄ‹N“®‚·‚év‚Æ‚¢‚¤€–Ú‚ª‚ ‚è ‚Ü‚·‚ªA‚±‚ê‚͈ê”Ô‰º‚ɉB‚ê‚Ä‚¢‚Ü‚·B‚±‚ê‚ð•\ަ‚·‚é‚É‚ÍA‰½“x ‚à‰ºƒJ[ƒ\ƒ‹ƒL[‚ð‰Ÿ‚µ‚Ă݂Ă­‚¾‚³‚¢B ƒXƒNƒ[ƒ‹‚µ‚Äã‚ÉÁ‚¦‚Ä‚¢‚Á‚½€–Ú‚ð•\ަ‚³‚¹‚é‚É‚ÍAãƒJ[ ƒ\ƒ‹ƒL[‚ð‰Ÿ‚µ‚Ä‚­‚¾‚³‚¢B yƒfƒBƒXƒN‚É‹L˜^‚³‚ꂽî•ñ‚ðÁ‚·‚É‚Íz u0‚ðã‘‚«‚µ‚Äcv‚̂悤‚ÈAucÁ‚·v‘€ì‚ðƒƒCƒ“ƒƒjƒ…[ ‚©‚ç‘I‘ð‚µAƒGƒ“ƒ^[ƒL[‚ð‰Ÿ‚µ‚Ä‚­‚¾‚³‚¢B uÁ‚·v‘€ì‚ðŽÀs‚·‚邯AŠm”F‰æ–Ê‚ª•\ަ‚³‚ê‚Ü‚·B‚±‚̂Ƃ«A ƒfƒBƒXƒN‚ÌŒ^”Ô‚â—e—ʂȂǂª•\ަ‚³‚ê‚é‚Ì‚ÅAÁ‚µ‚½‚¢ƒfƒBƒXƒN‚Å ‚ ‚é‚©‚Ç‚¤‚©‚ðŠm”F‚µ‚Ä‚­‚¾‚³‚¢B•\ަ‚³‚ê‚Ä‚¢‚é“à—e‚ðŠm”F‚µ‚½ ‚çƒGƒ“ƒ^[ƒL[‚ð‰Ÿ‚µ‚Ä‚­‚¾‚³‚¢B ʼn‚ÌŠm”F‰æ–ʂŃGƒ“ƒ^[ƒL[‚ð‰Ÿ‚µ‚½‚çAÄ“x‚µ‚‚±‚­Šm”F‰æ –Ê‚ª‚łĂ«‚Ü‚·B–{“–‚ÉÁ‚µ‚Ä‚à‚æ‚¢ê‡‚ɂ̂݃Gƒ“ƒ^[ƒL[‚ð‰Ÿ ‚µ‚Ä‚­‚¾‚³‚¢B “ñ‰ñ–Ú‚ÌŠm”F‰æ–ʂŃGƒ“ƒ^[ƒL[‚ð‰Ÿ‚·‚ÆÁ‹Ž‚ªŽn‚Ü‚è‚Ü‚·B’Ê íAƒfƒBƒXƒN‚ÌÁ‹Ž‚ɂ͔•ª‚©‚甎žŠÔ’ö“x‚ÌŽžŠÔ‚ª‚©‚©‚è‚Ü‚·B Á‹Ž‚ª‚Í‚¶‚Ü‚Á‚Ä‚µ‚΂炭‚·‚邯AŽc‚芗vŽžŠÔ‚Ì—\‘ª’l‚ª•\ަ‚³ ‚ê‚Ü‚·B Á‹Ž‚ªI—¹‚µ‚½‚çAÁ‹Ž‚É‚©‚©‚Á‚½ŽžŠÔ‚ª•\ަ‚³‚ê‚Ü‚·B‚±‚±‚Å ƒGƒ“ƒ^[ƒL[‚ð‰Ÿ‚·‚ÆAƒƒCƒ“ƒƒjƒ…[‚É–ß‚è‚Ü‚·B ‚È‚¨AÁ‹Ž‚ªˆêu‚ÅI—¹‚·‚邱‚Ƃ͂ ‚蓾‚È‚¢‚Í‚¸‚Å‚·B‚»‚Ìê ‡‚ÍA–{ƒ\ƒtƒguwipe-outv‚̃oƒO‚©‚à‚µ‚ê‚Ü‚¹‚ñBuƒf[ƒ^‚ªÁ ‹Ž‚³‚ꂽ‚©Šm”F‚·‚év‚ð‘I‚ñ‚Å–{“–‚ÉÁ‚¦‚½‚©Šm”F‚µ‚Ä‚­‚¾‚³‚¢B y“®ì‹L˜^‚ð•Û‘¶‚·‚é‚É‚Íz –{ƒ\ƒtƒguwipe-outv‚Ì‹““®‚ª‚¨‚©‚µ‚¢‚ÆŠ´‚¶‚ç‚ꂽꇂÍAƒ ƒCƒ“ƒƒjƒ…[‚©‚çu“®ì‹L˜^‚ðƒtƒƒbƒs[‚É‘‚«o‚·v‚ð‘I‚ñ‚Å‚­ ‚¾‚³‚¢Bƒƒjƒ…[‚É‘‚©‚ê‚Ä‚¢‚邯‚¨‚èA“®ì‹L˜^‚ðƒtƒƒbƒs[‚É ‹L˜^‚Å‚«‚Ü‚·B “®ì‹L˜^‚ð•Û‘¶‚·‚邱‚Æ‚ª‚Å‚«‚é‚Ì‚ÍAƒtƒƒbƒs[‚¾‚¯‚ł͂ ‚è ‚Ü‚¹‚ñB‚¢‚í‚ä‚éUSBƒƒ‚ƒŠ‚Ȃǂ̃ƒfƒBƒA‚à—˜—p‚Å‚«‚Ü‚·B‚È‚¨A “®ì‹L˜^‚ð•Û‘¶‚·‚éƒtƒƒbƒs[i‚âUSBƒƒ‚ƒŠj‚É‚ÍA‚ ‚ç‚©‚¶‚ß u\WIPE-OUT\v‚Æ‚¢‚¤ƒtƒHƒ‹ƒ_‚ð쬂µ‚Ä‚¨‚¢‚Ä‚­‚¾‚³‚¢B yƒƒCƒ“ƒƒjƒ…[‚É–ß‚é‚É‚Íz ‚±‚̉æ–ʂ𕂶‚ăƒCƒ“ƒƒjƒ…[‚É–ß‚é‚É‚ÍAƒGƒ“ƒ^[ƒL[‚ð‰Ÿ ‚µ‚Ä‚­‚¾‚³‚¢B ƒn[ƒhƒfƒBƒXƒNÁ‹Žƒc[ƒ‹uwipe-outvv1.3 Copyright (C) 2013 by Dai ISHIJIMA . ž'™BDBD'™BD .. ž'™BDBD'™BDArcÿÿÿÿNÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿRC £'™BDBD'™BD M Astartíup.shÿÿÿÿSTARTUP SH ¤'™BDBD'™BD Û Amainm˜enu.shÿÿMAINMENUSH ¤'™BDBD'™BD <Aseldi“sk.shÿÿÿÿSELDISK SH ¤'™BDBD'™BDWAeraseU.shÿÿÿÿÿÿÿÿERASE SH ¤'™BDBD'™BDxAfine-Äerase.shFINE-E~1SH ¤'™BDBD'™BD. Asel-fÕine.shÿÿSEL-FINESH ¤'™BDBD'™BDmAverif×y.shÿÿÿÿÿÿVERIFY SH ¤'™BDBD'™BD Adump.shÿÿÿÿÿÿÿÿÿÿDUMP SH ¤'™BDBD'™BDAwrite¹log.shÿÿWRITELOGSH ¤'™BDBD'™BDÛ Acopy.ûshÿÿÿÿÿÿÿÿÿÿCOPY SH ¥'™BDBD'™BD>Aembr.nshÿÿÿÿÿÿÿÿÿÿEMBR SH ¥'™BDBD'™BD# Acrlf.rshÿÿÿÿÿÿÿÿÿÿCRLF SH ¥'™BDBD'™BDAfloppAylog.shFLOPPY~1SH ¦'™BDBD'™BD¹Adummyread.shDUMMYR~1SH ¦'™BDBD'™BDAkon2s³tart.shKON2ST~1SH ¦'™BDBD'™BD 'Ainfo.ØtxtÿÿÿÿÿÿÿÿINFO TXT ¦'™BDBD'™BD!]Areadmse.txtÿÿÿÿREADME TXT ¦'™BDBD'™BD"" Ahelp.½txtÿÿÿÿÿÿÿÿHELP TXT ¦'™BDBD'™BD%@ Atermc·apÿÿÿÿÿÿÿÿÿÿTERMCAP §'™BDBD'™BD&#! /bin/sh # # rc -- ƒXƒ^[ƒgƒAƒbƒvƒXƒNƒŠƒvƒg # # 0.0: Jun. 15, 2004 by Dai ISHIJIMA # 0.1: Aug. 1, 2006 (CD‰Šú‰»‚µ‚Ä‚©‚çkon‚Å“ú–{Œê‰» for wpout07) # 0.2: Feb. 10, 2007 (ƒƒO‹L˜^ for wpout08) # 0.3: Feb. 17, 2007 (ƒVƒŠƒAƒ‹ƒRƒ“ƒ\[ƒ‹‘Ήž) # 0.4: Sep. 12, 2007 (for wpout09ŠJ”­”Å) # 0.5: Sep. 17, 2007 (shutdownŽž‚̉æ–Ê•œ‹A) # 0.6: Oct. 2, 2007 (expr(1)‚ÌPOSIX‘Ήž) # 0.7: Jan. 3, 2008 (‹N“®Žž‰Šú‰»Žè‡C³) # 0.8: Feb. 10, 2008 (‹N“®Žž‚ɃƒbƒZ[ƒW) # 0.9: Feb. 11, 2008 (CD‚ÌŠm”F•û–@C³) # 1.0: Jul. 24, 2009 (ƒVƒŠƒAƒ‹ƒRƒ“ƒ\[ƒ‹‘Ήž, wpout10) # 1.1: May 5, 2013 (wpout13, 8.3R, "mount -rw /dev/md0a /") # # ƒtƒ@ƒCƒ‹ƒVƒXƒeƒ€‚ð‘‚«ž‚݉”\‚É /sbin/mount -rw /dev/md0a / # ƒVƒFƒA[ƒhƒ‰ƒCƒuƒ‰ƒŠ‚̃pƒXÝ’è /sbin/ldconfig -elf /lib /usr.lib PATH=/usr.bin:/usr/bin:/bin:/usr.sbin:/usr/sbin:/sbin:/usr/local/bin:/wipeout:. export PATH #export DEBUG=y cd /tmp # # ʼn‚̃ƒO # LOGFIL=/tmp/wpoutlog.txt export LOGFIL echo -n 'booting wipe-out, at epoch ' > $LOGFIL tinydate >> $LOGFIL echo -n 'version: ' >> $LOGFIL cat /version.txt >> $LOGFIL # ‹N“®‚µ‚½‚±‚Æ‚ðŽ¦‚·ƒƒbƒZ[ƒW‚ð•\ަ cat $LOGFIL # # expr(1) ‚ÌPOSIX‘Ήž‚É‚æ‚錅‚ ‚Ó‚ê‘Έ (4.xŒÝŠ·ƒ‚[ƒh) # export EXPR_COMPAT= # # CD-ROM‚Ȃǂ̉Šú‰» # echo -n 'checking boot device..' # CD-ROM‚ª‘¶Ý‚·‚é‚©? (PXEƒu[ƒg‚©Aƒ[ƒJƒ‹CDƒu[ƒg‚©?) CDROM=NONE echo 'checking CD-ROM device' >> $LOGFIL # ‚Ü‚¸AATAPI CD-ROM‚ðƒ}ƒEƒ“ƒg‚µ‚Ă݂é echo -n 'mounting CD-ROM (acd0) ..' mount_cd9660 /dev/acd0 /cdrom 1>/dev/null 2>&1 echo '.' CDROM=/dev/acd0 if [ ! -f /cdrom/version.txt ]; then # SCSI CD-ROM‚ðƒ}ƒEƒ“ƒg‚µ‚Ă݂é echo -n 'mounting CD-ROM (cd0) ..' mount_cd9660 /dev/cd0 /cdrom 1>/dev/null 2>&1 echo '.' CDROM=/dev/cd0 if [ ! -f /cdrom/version.txt ]; then # CD-ROM‚ðƒ}ƒEƒ“ƒg‚Å‚«‚È‚©‚Á‚½ CDROM=NONE fi fi case x"$CDROM" in x/dev/*) echo "CD-ROM device: $CDROM" >> $LOGFIL echo "re-initializing shared library path" >> $LOGFIL echo -n "re-initializing shared library path.." if [ -r /cdrom/lib/libc.so ]; then ldconfig -elf /lib /usr.lib /usr/lib fi echo '.' ;; *) echo "no CD-ROM device, may be PXE boot mode" >> $LOGFIL echo "no CD-ROM device, may be PXE boot mode" ;; esac if [ -x /bin/hostname ]; then hostname wipeout fi # ˆê“xCD-ROM‚ðƒAƒ“ƒ}ƒEƒ“ƒg case x"$CDROM" in x/dev/*) echo "unmounting CD-ROM ($CDROM)" >> $LOGFIL echo -n "umounting CD-ROM ($CDROM).." umount /cdrom echo '.' ;; esac export CDROM # debugging case x"$DEBUG" in x[Yy]*) for i in 1 2 3 ; do echo -n '.' sleep 1 done echo '' ;; esac cd /wipeout echo -n "wipe-out initialized successfully on " >> $LOGFIL date >> $LOGFIL # rm -f /var/run/nologin # ƒVƒŠƒAƒ‹ƒRƒ“ƒ\[ƒ‹‚̃`ƒFƒbƒN comconsole=`dmesg | /usr.bin/sed -n '/^sio0:.*, console/p'` case x"$comconsole" in x*console) export CONSOLE=comconsole sh /wipeout/startup.sh ;; *) export CONSOLE=vidconsole # ƒRƒ“ƒ\[ƒ‹‚ð“ú–{Œê‰»‚µ‚ÄAƒXƒ^[ƒgƒAƒbƒvƒXƒNƒŠƒvƒg‚ð‹N“® sh /wipeout/kon2start.sh ;; esac # ƒVƒƒƒbƒgƒ_ƒEƒ“‚·‚é‚©? if [ -f /var/run/nologin ]; then nologin=`sed -n 1p /var/run/nologin` case x"$nologin" in xh*) shutdown -p now ;; xr*) shutdown -r now ;; esac fi # ‘ΘbƒVƒFƒ‹‚ð‹N“®‚·‚é /bin/sh -i if [ -x /sbin/shutdown ]; then /sbin/shutdown -h now fi exit 0 # EOF #! /bin/sh # # startup.sh -- ƒXƒ^[ƒgƒAƒbƒvƒXƒNƒŠƒvƒg (“ú–{Œê‰»ƒRƒ“ƒ\[ƒ‹—p) # # 0.0: Jun. 15, 2004 by Dai ISHIJIMA # 0.1: Jun. 19, 2005 (for PXEBOOT) # 0.2: Aug. 1, 2006 (v07ACD‰Šú‰»‚ðrc‚ÖAƒ‰ƒ“ƒ_ƒ€ƒpƒ^[ƒ“‚Æ‚»‚Ì•â”) # 0.3: Aug. 6, 2006 (ƒL[ƒ{[ƒhƒ`ƒFƒbƒN) # 0.4: Sep. 18, 2006 (/var ‚ð mkdir ‚µ‚È‚¢) # 0.5: Feb. 10, 2007 (ƒƒO‹L˜^ for wpout08) # 0.6: Sep. 12, 2007 (for wpout09ŠJ”­”Å) # 0.7: Sep. 17, 2007 (shutdownŽž‚̉æ–Ê•œ‹A) # 0.8: Jan. 3, 2008 (‹N“®ŽžƒƒWƒbƒN‚̉ü—Ç) # 0.8: Jul. 24, 2009 (dmesg.boot‚Ìd•¡ƒ`ƒFƒbƒN, wpout10) # 0.9: Dec. 7, 2013 (ƒfƒBƒXƒN‚̃fƒoƒCƒX–¼) # ##PATH=/usr/bin:/bin:/usr/sbin:/sbin:/:. ##export PATH LOGFIL="${LOGFIL:-/tmp/wpoutlog.txt}" DMESG="${DMESG:-/var/run/dmesg.boot}" export DMESG echo -n '‹N“®Žž‚̃VƒXƒeƒ€ƒƒbƒZ[ƒW‚ð•Û‘¶‚µ‚Ä‚¢‚Ü‚·...' dmesg > $DMESG echo '' # umd0v‚ªs“ª‚ÉŒ»‚ê‚és”Ô†‚𒲂ׂéB•¡”‚ ‚ê‚Îd•¡ lin1=`sed -n '/^md0/=' $DMESG | sed -n '1p'` lin2=`sed -n '/^md0/=' $DMESG | sed -n '$p'` if [ $lin1 -ne $lin2 ]; then echo 'ƒVƒXƒeƒ€ƒƒbƒZ[ƒW‚ªd•¡‚µ‚Ä‚¢‚Ü‚·B' echo 'ˆê“x“dŒ¹‚ðØ‚Á‚Ä‚©‚çÄ‹N“®‚·‚邱‚Æ‚ð„§‚µ‚Ü‚·B' echo 'ˆ—‚ð‘±s‚·‚éꇂÍuexitv‚ð“ü—Í‚µ‚Ä‚­‚¾‚³‚¢B' /bin/sh -i fi echo '# ---------------------------- #' >> $LOGFIL echo -n "script startup.sh started on " >> $LOGFIL date >> $LOGFIL export TERMCAP=/etc/termcap export TERM=kons25jx export PATTERNFIL=/tmp/pattern.dat # 2013-12-07 names of disk device node # ata(4) -> ad (P-ATA: ad0, S-ATA: ad4, etc.) # SCSI (da(4)) -> da (SCSI, CAM) # ataraid(4) -> ar # aac(4) -> aacd # amr(4) -> amrd(?) or da(?) (SCSI CAM) # arcmsr(4) -> da (SCSI CAM) # asr(4) -> da(?) (SCSI CAM) # graid3(4) -> da (SCSI CAM) # hptiop(4) -> da(?) # hptmv(4) -> da(?) # hptrr(4) -> da(?) # ida(4) -> idad(?), da(?) # iir(4) -> da(?) # ips(4) -> ipsd(?), da(?) # mfi(4) -> mfid # mlx(4) -> mlxd(?), da(?) # mly(4) -> da(?) # twa(4) -> da(?) # twe(4) -> da(?) export DEVICES='da|ad|ar|aacd|amrd|idad|ipsd|mfid|mlxd|twed' # ˆê“x‚É32MƒoƒCƒg‚¸‚ÂÁ‚· BLKLEN=$(( 32 '*' 1024 '*' 1024 )) export BLKLEN # o—̓uƒƒbƒN’·‚Í1MƒoƒCƒg OBS=$(( 1024 '*' 1024 )) export OBS # “ü—̓uƒƒbƒN’· (stuff‚Ìo—Í’·) ‚Í1kƒoƒCƒg IBS=1024 export IBS # Á‹ŽŠm”F‚Í10MƒoƒCƒg‚¸‚ VBLKLEN=$(( 10 '*' 1024 '*' 1024 )) export VBLKLEN # Á‹ŽŠm”F‚Ì“ü—̓uƒƒbƒN’·‚Í1MƒoƒCƒg VBS=$(( 1024 '*' 1024 )) export VBS # ƒRƒs[Žž‚Í512ƒoƒCƒg‚¸‚ CBS=512 export CBS echo '' # debugging case x"$DEBUG" in x[Yy]*) for i in 1 2 3 ; do echo -n '.' sleep 1 done echo '' ;; esac cd /wipeout stuff -g > $PATTERNFIL echo "random pattern file $PATTERNFIL generated" >> $LOGFIL if ! /bin/sh mainmenu.sh ; then exit 1 fi # ‚Ƃ肠‚¦‚¸‘ΘbƒVƒFƒ‹‚ð“®‚©‚µ‚Ä‚¨‚­ :-) /bin/sh -i exit 0 # EOF #! /bin/sh # # mainmenu.sh -- CD-ROM”ŃƒCƒ“ƒƒjƒ…[ # # 0.0: Jun. 20, 2004 by Dai ISHIJIMA (for wpout03) # 0.1: Jul. 11 2004 (for wpout04) # 0.2: Jun. 23 2005 (for wpout05) # 0.3: Jul. 8 2005 (for wpout06) # 0.4: Aug. 5, 2006 (for wpout07) # 0.5: Dec. 21, 2006 (erase MBR) # 0.6: Feb. 10, 2007 (ƒƒO‹L˜^ for wpout08) # 0.7: Feb. 15, 2007 (ƒGƒ“ƒ^[ƒL[’·‰Ÿ‚µ‘Îô) # 0.8: Feb. 18, 2007 (ƒƒjƒ…[‚̇”Ô‚ð•ÏX) # 0.9: Sep. 12, 2007 (wpout09, FreeBSD 6.2R) # 1.0: Sep. 17, 2007 (shutdownŽž‚̉æ–Ê•œ‹A) # 1.1: Oct. 6, 2007 (expr(1) ‚ÌPOSIX€‹’‘Ήž) # 1.2: Feb. 10, 2008 (ƒwƒ‹ƒvƒƒbƒZ[ƒW‚Ì•\ަA“®ìƒƒO‚Ì•\ަ) # 1.3: Apr. 19, 2009 (‚‘¬ƒfƒBƒXƒNƒRƒs[, wpout10) # 1.4: Sep. 30, 2009 (IBM ServeRAID, ips(4), /dev/ipsd%d) # 1.5: Dec. 22, 2012 (smartctl) # 1.6: Feb. 1, 2014 (擪‚É–ß‚é) # # dmesg="${DMESG:-/var/run/dmesg.boot}" devices="${DEVICES:-da|ad|ar|aacd|amrd|idad|ipsd|mfid|mlxd|twed}" export LOGFIL="${LOGFIL:-/tmp/wpoutlog.txt}" cbs="${CBS:-512}" obs="${OBS:-1048576}" resultfil=/tmp/result nsec=/tmp/sector stuffs='10' sed -n -E "/^(${devices})[0-9]:.* $resultfil disk=`sed -n '1p' $resultfil` export TITLE='ƒn[ƒhƒfƒBƒXƒNÁ‹Žƒc[ƒ‹wwipe-outx' dumpskip=0 echo '# ---------------------------- #' >> $LOGFIL echo -n "script mainmenu.sh started on " >> $LOGFIL date >> $LOGFIL while true ; do dname=`sed -n -E "/^${disk}:.*<.*>/p" $dmesg | sed 's/.*\(<.*>\).*/\1/'` bytes=`disksize -B /dev/$disk` cap=`disksize -p /dev/$disk` msg=" šƒƒCƒ“ƒƒjƒ…[š\n" msg="${msg}Œ»Ý‘I‘𒆂̃fƒBƒXƒN‚Í /dev/${disk} ${dname} ‚Å‚·B\n" msg="${msg}ƒfƒBƒXƒN‚Ì—e—Ê‚Í $bytes ƒoƒCƒg ($cap) ‚Å‚·B\n" msg="${msg}ˆÈ‰º‚̃ƒjƒ…[‚©‚爗‚ð‘I‘ð‚µ‚Ä‚­‚¾‚³‚¢B\n" sh dummyread.sh dialog 2>$resultfil \ --title "$TITLE" \ --menu "$msg" \ 20 74 8 \ z '0‚ðã‘‚«‚µ‚ÄA‚±‚̃fƒBƒXƒN‚̃f[ƒ^‚ðÁ‚·' \ h '‘€ì•û–@‚ÌŠT—v‚ð•\ަ‚·‚é' \ n '•¡”‰ñã‘‚«‚µ‚ÄA‚±‚̃fƒBƒXƒN‚̃f[ƒ^‚ð”O“ü‚è‚ÉÁ‚·' \ m '”O“ü‚èÁ‹Ž‚Ìã‘‚«•û–@‚ð‘I‘ð‚·‚é' \ v 'ƒf[ƒ^‚ªÁ‹Ž‚³‚ꂽ‚©Šm”F‚·‚é (‚‘¬^ˆê•”‚ðƒ`ƒFƒbƒN)' \ V 'ƒf[ƒ^‚ªÁ‹Ž‚³‚ꂽ‚©Šm”F‚·‚é (’Êí^‘S•”‚ðƒ`ƒFƒbƒN)' \ w 'Á‹ŽƒƒO‚ðƒfƒBƒXƒN‚É‘‚«ž‚Þ' \ L '“®ì‹L˜^‚ðƒtƒƒbƒs[‚É‘‚«o‚·' \ s '•ʂ̃fƒBƒXƒN‚ð‘I‘ð‚·‚é' \ d 'ƒfƒBƒXƒN‚̃f[ƒ^‚ð•\ަ‚·‚é' \ S 'ƒf[ƒ^‚ð•\ަ‚·‚éƒZƒNƒ^‚ÌŽw’è' \ a 'uwwipe-outx‚ɂ‚¢‚Äv‚ðŒ©‚é' \ D '‹N“®Žž‚̃VƒXƒeƒ€ƒƒbƒZ[ƒW‚ðŠm”F‚·‚é' \ Y 'ƒfƒBƒXƒN‚ðƒRƒs[‚·‚éi‚‘¬^ƒoƒbƒNƒAƒbƒvŒü‚¯j' \ y 'ƒfƒBƒXƒN‚ðƒRƒs[‚·‚éi’ᑬ^ƒf[ƒ^ƒTƒ‹ƒx[ƒWŒü‚¯j' \ f '1‚ðã‘‚«‚µ‚ÄA‚±‚̃fƒBƒXƒN‚̃f[ƒ^‚ðÁ‚·' \ p 'ƒ‰ƒ“ƒ_ƒ€ƒpƒ^[ƒ“‚ðã‘‚«‚µ‚ÄA‚±‚̃fƒBƒXƒN‚̃f[ƒ^‚ðÁ‚·' \ q 'ƒpƒ^[ƒ“‚̕│ðã‘‚«‚µ‚ÄA‚±‚̃fƒBƒXƒN‚̃f[ƒ^‚ðÁ‚·' \ r 'ƒ‰ƒ“ƒ_ƒ€ƒf[ƒ^‚ðã‘‚«‚µ‚ÄA‚±‚̃fƒBƒXƒN‚̃f[ƒ^‚ðÁ‚·' \ P '“®ì‹L˜^‚ð•\ަ‚·‚é' \ T 'ƒfƒBƒXƒN‚ÌŽ©ŒÈf’fî•ñ (SMARTî•ñ) ‚ð•\ަ‚·‚é' \ b 'ƒVƒFƒ‹ (sh) ‚ð‹N“®‚·‚é' \ t 'ƒVƒFƒ‹ (csh) ‚ð‹N“®‚·‚é' \ M 'CD-ROM‚ðmount‚·‚é' \ U 'CD-ROM‚ðumount‚·‚é' \ B 'MBR *‚Ì‚Ý* ‚ðÁ‹Ž‚·‚é' \ x 'ƒVƒƒƒbƒgƒ_ƒEƒ“‚·‚é' \ R 'Ä‹N“®‚·‚é' \ N 'ƒƒjƒ…[‚Ìæ“ª‚É–ß‚é' \ # end of menu case x"$?" in x1) break ;; esac result=`cat $resultfil` case x"${result}" in x[zfrpq]) sh erase.sh -$result $disk ;; xh) dialog --title '‘€ì•û–@‚ÌŠT—v' \ --textbox help.txt 22 76 ;; xs) . seldisk.sh ;; xn) sh fine-erase.sh $stuffs $disk ;; xm) . sel-fine.sh ;; xv) sh verify.sh 90 $disk ;; xV) sh verify.sh 0 $disk ;; xw) sh writelog.sh $disk ;; xL) sh floppylog.sh ;; xd) sh dump.sh $dumpskip $disk dumpskip=`expr $dumpskip + 1` ;; xS) msg="ƒZƒNƒ^‚ðŽw’肵‚Ä‚­‚¾‚³‚¢ ($dumpskip)" dialog 2>/tmp/sector \ --title "$TITLE" \ --inputbox "$msg" 8 64 case x"$?" in x0) echo '' >> $nsec echo "$dumpskip" >> $nsec dumpskip=`sed -n '/^[0-9]/p' $nsec | sed -n 1p` ;; esac ;; xa) dialog --title 'wwipe-outx‚ɂ‚¢‚Ä' \ --textbox info.txt 22 76 ;; xD) dialog --title '‹N“®Žž‚̃VƒXƒeƒ€ƒƒbƒZ[ƒW' \ --textbox /var/run/dmesg.boot 22 76 ;; xy) srcdisk=$disk . seldisk.sh dstdisk=$disk sh copy.sh $srcdisk $dstdisk $cbs disk=$srcdisk ;; xY) srcdisk=$disk . seldisk.sh dstdisk=$disk sh copy.sh $srcdisk $dstdisk $obs disk=$srcdisk ;; xP) echo "::: $LOGFIL :::" > /tmp/loglog.txt cat $LOGFIL >> /tmp/loglog.txt echo '' >> /tmp/loglog.txt for f in /tmp/erase-log.* ; do if [ -f "$f" ]; then echo "::: $f :::" >> /tmp/loglog.txt cat $f >> /tmp/loglog.txt echo '' >> /tmp/loglog.txt fi done for f in /tmp/verify-log.* ; do if [ -f "$f" ]; then echo "::: $f :::" >> /tmp/loglog.txt cat $f >> /tmp/loglog.txt echo '' >> /tmp/loglog.txt fi done echo '::: shell variables :::' >> /tmp/loglog.txt set >> /tmp/loglog.txt echo '' >> /tmp/loglog.txt dialog --title '“®ìƒƒO' \ --textbox /tmp/loglog.txt 22 76 ;; xT) /usr/local/sbin/smartctl -s on /dev/$disk \ > /tmp/smart.txt 2>&1 /usr/local/sbin/smartctl -a /dev/$disk \ > /tmp/smart.txt 2>&1 echo '' >> $LOGFIL echo '::: SMART (smartctl output) :::' >> $LOGFIL cat /tmp/smart.txt >> $LOGFIL dialog --title 'SMARTƒƒO' \ --textbox /tmp/smart.txt 22 76 ;; xb) /bin/sh -i ;; xt) if [ -x /bin/csh ]; then /bin/csh -i else msg='csh‚Ì“ü‚Á‚½CD-ROM‚ðƒ}ƒEƒ“ƒg‚µ‚Ä‚­‚¾‚³‚¢' dialog --title "$TITLE" \ --msgbox "$msg" 5 64 fi ;; xM) if [ -x /cdrom/usr.bin/dialog ]; then msg='CD-ROM‚Í‚·‚łɃ}ƒEƒ“ƒg‚³‚ê‚Ä‚¢‚Ü‚·' elif mount_cd9660 $CDROM /cdrom > /dev/null 2>&1; then msg='CD-ROM‚ðƒ}ƒEƒ“ƒg‚µ‚Ü‚µ‚½' else msg='CD-ROM‚ðƒ}ƒEƒ“ƒg‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½' fi dialog --title "$TITLE" \ --msgbox "$msg" 5 64 ;; xU) msg='' if [ ! -x /cdrom/usr.bin/dialog ]; then msg='CD-ROM‚Í‚·‚łɃAƒ“ƒ}ƒEƒ“ƒg‚³‚ê‚Ä‚¢‚Ü‚·' fi if umount /cdrom > /dev/null 2>&1; then msg='CD-ROM‚ðƒAƒ“ƒ}ƒEƒ“ƒg‚µ‚Ü‚µ‚½' elif [ -z "$msg" ]; then msg='CD-ROMƒAƒ“ƒ}ƒEƒ“ƒg‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½' fi dialog --title "$TITLE" \ --msgbox "$msg" 5 64 ;; xB) sh embr.sh $disk ;; xx) echo "halt" > /var/run/nologin exit 1 ;; xR) echo "reboot" > /var/run/nologin exit 1 ;; #xN) # NOP # ;; esac done dialog --title "$TITLE" \ --infobox 'I—¹‚µ‚Ü‚·' 3 48 echo 'u/bin/sh /wipeout/mainmenu.shv‚Ńƒjƒ…[‰æ–Ê‚ðŒÄ‚Ño‚¹‚Ü‚·B' echo '' exit 0 # EOF #! /bin/sh # # seldisk.sh - ƒfƒBƒXƒN‚Ì‘I‘ð # # ƒ_ƒCƒAƒƒOƒ{ƒbƒNƒX‚ð•\ަ‚µ‚ăfƒBƒXƒN‚ð‘I‘ðA‚ ‚é‚¢‚Í“ü—Í‚·‚éB # ƒfƒoƒCƒXƒtƒ@ƒCƒ‹–¼‚ð•Ô‚·B # # 0.0: May 30, 2004 by Dai ISHIJIMA # 0.1: Jun. 29, 2006 (support some more disk types) # 0.2: Sep. 12, 2007 (wpout09) # dmesg="${DMESG:-/var/run/dmesg.boot}" devices="${DEVICES:-da|ad|ar|aacd|amrd|ipsd}" resultfil=/tmp/result title="${TITLE:-ƒn[ƒhƒfƒBƒXƒNÁ‹Žƒc[ƒ‹wwipe-outx}" sed -n -E "/^(${devices})[0-9]:.* $resultfil disks=`cat $resultfil` n=0 taglist='' for d in $disks ; do dname=`sed -n -E "/^${d}:.*<.*>/p" $dmesg | sed 's/.*\(<.*>\).*/\1/'` bytes=`disksize -B /dev/$d` cap=`disksize -p /dev/$d` taglist="$taglist $d '$dname (${bytes}ƒoƒCƒg, $cap)'" done #######taglist="$taglist XX 'ã‹LˆÈŠO‚ð“ü—Í‚·‚é'" eval dialog \ --title "'$title'" \ --menu "'ƒfƒBƒXƒN‚ð‘I‘ð‚µ‚Ä‚­‚¾‚³‚¢'" \ 12 72 5 \ $taglist \ 2>$resultfil case "$?" in 0) newdisk=`cat $resultfil` if [ x"$disk" != x"$newdisk" ]; then msg="ƒfƒBƒXƒN‚ð ${disk} ‚©‚ç" msg="${msg} ${newdisk} ‚É•ÏX‚µ‚Ü‚µ‚½B" dialog --title "$title" \ --infobox "$msg" 5 72 sleep 2 fi disk="$newdisk" ;; 1) dialog --title "$title" \ --infobox 'ƒfƒBƒXƒN‚Ì‘I‘ð‚ðƒLƒƒƒ“ƒZƒ‹‚µ‚Ü‚µ‚½' 3 64 sleep 2 ;; esac # EOF #! /bin/sh # # erase.sh -- ƒf[ƒ^‚ðã‘‚«‚µ‚ăfƒBƒXƒN‚̃f[ƒ^‚ðÁ‹Ž‚·‚é # # Žg‚¢•û: /bin/sh erase.sh -Á‚µ•û ƒfƒBƒXƒN # Á‚µ•û: [zfr] # ƒfƒBƒXƒN: ƒfƒoƒCƒXƒtƒ@ƒCƒ‹‚ÅŽw’èA擪‚Ìu/dev/v‚ÍÈ‚­ # —á: /bin/sh erase.sh -z ad0 # # 0.0: Jun. 20, 2004 by Dai ISHIJIMA (for wpout03) # 0.1: Jul. 11, 2004 # 0.2: Jun. 28, 2006 (ƒ‰ƒ“ƒ_ƒ€ƒpƒ^[ƒ“‚ƕ┠for wpout07) # 0.3: Aug. 1, 2006 (ƒ^ƒCƒ€ƒXƒ^ƒ“ƒv) # 0.4: Aug. 12, 2006 (ƒ^ƒCƒ€ƒXƒ^ƒ“ƒv‚É—e—Ê) # 0.5: Feb. 10, 2007 (ƒƒO‹L˜^ for wpout08) # 0.6: Feb. 15, 2007 (ƒGƒ“ƒ^[ƒL[’·‰Ÿ‚µ‘ÎôAƒGƒ‰[‚Æ“]‘—‘¬“x‚̃ƒO) # 0.7: Sep. 12, 2007 (wpout09) # 0.8: Oct. 6, 2007 (ŒvŽZ‚ð32ƒrƒbƒg•„†•t‚«®”‚͈̔͂Ås‚¤) # 0.9: Dec. 23, 2007 (ƒo[ƒOƒ‰ƒt•\ަ‚ÌŒvŽZC³) # 1.0: Jan. 2, 2008 (ƒƒOC³) # # ’P“Æ‚Å‚à“®‚­‚悤‚É LOGFIL="${LOGFIL:-/tmp/wpoutlog.txt}" DMESG="${DMESG:-/var/run/dmesg.boot}" PATTERNFIL="${PATTERNFIL:-/tmp/pattern.dat}" echo '# ---------------------------- #' >> $LOGFIL echo -n "script $0 started on " >> $LOGFIL date >> $LOGFIL if [ ! -s $PATTERNFIL ]; then stuff -g > $PATTERNFIL echo "random pattern file $PATTERNFIL generated" >> $LOGFIL fi # stuff="${1:--z}" disk="${2:-ad0}" dmesg="${DMESG:-/var/run/dmesg.boot}" # ˆê“x‚É32MƒoƒCƒg‚¸‚ blklen="${BLKLEN:-33554432}" # o—̓uƒƒbƒNƒTƒCƒY‚Í1MƒoƒCƒg obs="${OBS:-1048576}" ocnt=$(( $blklen / $obs )) ounit=$(( $obs / 1048576 )) # “ü—̓uƒƒbƒNƒTƒCƒY‚Í1kƒoƒCƒg ibs="${IBS:-1024}" icnt=$(( $blklen / $ibs )) # resultfil=/tmp/result # title="${TITLE:-ƒn[ƒhƒfƒBƒXƒNÁ‹Žƒc[ƒ‹wwipe-outx}" # if [ ! -w /dev/$disk ]; then dialog --title "$title" \ --msgbox "ƒfƒBƒXƒN $disk ‚ª‘¶Ý‚µ‚È‚¢‚©A‘‚«ž‚݂ł«‚Ü‚¹‚ñ" \ 5 64 exit 1 fi # mount -p | sed -n -E "/^.dev.$disk/p" > $resultfil if [ -s $resultfil ]; then dialog --title "$title" \ --msgbox "ƒ}ƒEƒ“ƒg’†‚̃fƒBƒXƒN $disk ‚ðÁ‹Ž‚·‚邱‚Ƃ͂ł«‚Ü‚¹‚ñ" \ 5 64 exit 1 fi dname=`sed -n -E "/^${disk}:.*<.*>/p" $dmesg | sed 's/.*\(<.*>\).*/\1/'` bytes=`disksize -B /dev/$disk` cap=`disksize -p /dev/$disk` msg="ƒfƒBƒXƒN ${disk} ${dname} ‚Ì\n" msg="${msg}‘Sƒf[ƒ^ ${bytes}ƒoƒCƒg‚ðA\n" case x"$stuff" in x-[0z]) msg="${msg}0‚Åã‘‚«‚µ‚ÄÁ‹Ž‚µ‚Ü‚·B\n" method='write 0' ;; x-[1f]) msg="${msg}1‚Åã‘‚«‚µ‚ÄÁ‹Ž‚µ‚Ü‚·B\n" method='write 1' ;; x-[Rr]) msg="${msg}ƒ‰ƒ“ƒ_ƒ€ƒf[ƒ^‚Åã‘‚«‚µ‚ÄÁ‹Ž‚µ‚Ü‚·B\n" method='write random' ;; x-[Pp]) stuff -g > $PATTERNFIL echo "random pattern file $PATTERNFIL generated" >> $LOGFIL msg="${msg}ƒ‰ƒ“ƒ_ƒ€ƒpƒ^[ƒ“‚Åã‘‚«‚µ‚ÄÁ‹Ž‚µ‚Ü‚·B\n" method='write pattern' ;; x-[Qq]) msg="${msg}’¼‘Oƒpƒ^[ƒ“‚̕│Åã‘‚«‚µ‚ÄÁ‹Ž‚µ‚Ü‚·B\n" method='write inverted pattern' ;; *) msg="${msg}Á‹Ž‚µ‚Ü‚·B\n" method='overwrite' ;; esac msg="${msg}\n ‚æ‚낵‚¢‚Å‚·‚©?" sh dummyread.sh dialog --title "$title" --yesno "$msg" 9 64 case x"$?" in x1) dialog --title "$title" \ --infobox 'ƒfƒBƒXƒN‚ÌÁ‹Ž‚ðƒLƒƒƒ“ƒZƒ‹‚µ‚Ü‚µ‚½' 3 64 sleep 2 exit 1 ;; esac msg="–{“–‚É${disk} ($cap) ‚̃f[ƒ^‚ðÁ‹Ž‚µ‚Ä‚¢‚¢‚Å‚·‚©?" sh dummyread.sh dialog --title "$title" \ --hline "$dname" \ --yesno "$msg" \ 5 72 case x"$?" in x1) dialog --title "$title" \ --infobox 'ƒfƒBƒXƒN‚ÌÁ‹Ž‚ðƒLƒƒƒ“ƒZƒ‹‚µ‚Ü‚µ‚½' 3 64 sleep 2 exit 1 ;; esac # Á‹Ž‚̃pƒ‰ƒ[ƒ^ (MƒoƒCƒg’PˆÊ‚Å”‚¦‚é) mbytes=`disksize -m /dev/$disk` max=$(( $mbytes / $ounit )) startsec=`tinydate '+%s'` rems='' # ŠJŽnŽž startstamp=`date '+%Y-%m-%d %H:%M'` # echo "v ---------------------------- v" >> $LOGFIL echo -n "erase started on " >> $LOGFIL date >> $LOGFIL echo " $disk ($dname) $bytes bytes with $method" >> $LOGFIL nerrs=0 skip=0 xcent=100 xmill=1000 mcent=$max mmill=$max if [ $max -gt 1048576 ]; then xcent=1 xmill=1 mcent=$(( ( $max + 99 ) / 100 )) mmill=$(( ( $max + 999 ) / 1000 )) fi while [ $skip -le $max ]; do # ŒvŽž cursec=`tinydate '+%s'` # ƒo[ƒOƒ‰ƒt p=$(( ( $xcent * $skip ) / $mcent )) m=$(( ( $xmill * $skip ) / $mmill )) q=$(( $p / 2 )) i=0 bar='' while [ $i -lt $q ]; do bar="$bar"'#' i=$(( $i + 1 )) done while [ $i -lt 50 ]; do bar="$bar"'_' i=$(( $i + 1 )) done # Žc‚莞ŠÔ elapsed=$(( $cursec - $startsec )) if [ $m -gt 0 ]; then remain=$(( ( 1000 - $m ) * $elapsed / $m + 1 )) if [ $remain -gt 120 ]; then rems=$(( ( $remain + 59 ) / 60 )) rems="Žc‚è ‚¨‚æ‚»${rems}•ª" else rems="Žc‚è ‚¨‚æ‚»${remain}•b" fi fi if [ $elapsed -gt 120 ]; then elas=$(( ( $elapsed + 30 ) / 60 )) elas="${elas}•ª" else elas="${elapsed}•b" fi # text="ƒfƒBƒXƒN ${disk} ‚̃f[ƒ^‚ðÁ‹Ž‚µ‚Ä‚¢‚Ü‚·B\n" text="${text} ${p}% ($skip/$max) I—¹ ^ " text="${text}${elas} Œo‰ß ${rems} \n\n" text="${text} 0%|${bar}|100%" text="${text}\n${errormsg}" dialog --title "$title" --infobox "$text" 7 72 echo -n "$status2" case x$DEBUG in x[Yy]*) status2='now in debug mode...' errormsg='' sleep 1 ;; *) status=`stuff $stuff < $PATTERNFIL | dd ibs=$ibs obs=$obs seek=$skip count=$icnt of=/dev/$disk 2>&1` status2=`echo "$status" | sed -n '/transfer/p'` errormsg=`echo "$status" | sed -n -E '/records (in|out)$/!p' | sed -n '/transferred in/!p'` ;; esac # ‹L˜^ case x"$skip" in x0) echo "skip: $skip, $status2" >> $LOGFIL ;; esac case x"${nerrs}"x"${errormsg}" in x[0-8]x?*) echo "errmesg[${nerrs}]: $errormsg" >> $LOGFIL nerrs=$(( $nerrs + 1 )) ;; x9x?*) echo "errmesg[${nerrs}]: $errormsg" >> $LOGFIL echo "Too many errors encounterd..." >> $LOGFIL nerrs=$(( $nerrs + 1 )) ;; esac # ŽŸƒ‹[ƒv skip=$(( $skip + $ocnt )) done sleep 2 # echo "skip: $skip, $status2" >> $LOGFIL echo "number of error messages: $nerrs" >> $LOGFIL echo -n "erase finished on " >> $LOGFIL date >> $LOGFIL echo " $disk ($dname, $cap) with $method" >> $LOGFIL echo "^ ---------------------------- ^" >> $LOGFIL cursec=`tinydate '+%s'` elapsed=$(( $cursec - $startsec )) if [ $elapsed -gt 120 ]; then min=$(( $elapsed / 60 )) sec=$(( $elapsed - $min * 60 )) elas="${min}•ª${sec}•b" else elas="${elapsed}•b" fi # I—¹Žž endstamp=`date '+%H:%M'` # ƒƒO•Û‘¶ echo 'The contents of this storage device' > /tmp/erase-log.$disk echo "$disk ($cap) '$dname'" >> /tmp/erase-log.$disk echo -n 'were erased with ' >> /tmp/erase-log.$disk echo 'hard disk wiping tool "wipe-out."' >> /tmp/erase-log.$disk echo "Erased with '$method'" >> /tmp/erase-log.$disk echo " $startstamp -> $endstamp" >> /tmp/erase-log.$disk echo "but NOT verified" > /tmp/verify-log.$disk sh dummyread.sh dialog --title "$title" \ --msgbox "ƒfƒBƒXƒN‚̃f[ƒ^Á‹Ž‚ªI—¹‚µ‚Ü‚µ‚½ (${elas})" 5 72 exit 0 # EOF #! /bin/sh # # fine-erase.sh -- •¡”‰ñ‘‚«ž‚݂ŔO“ü‚è‚ɃfƒBƒXƒN‚̃f[ƒ^‚ðÁ‹Ž‚·‚é # # Žg‚¢•û: /bin/sh fine-erase.sh Á‚µ•û ƒfƒBƒXƒN # Á‚µ•û: [0z1fRr]+ # ƒfƒBƒXƒN: ƒfƒoƒCƒXƒtƒ@ƒCƒ‹‚ÅŽw’èA擪‚Ìu/dev/v‚ÍÈ‚­ # —á: /bin/sh fine-erase.sh 0101010 ad0 # # 0.0: Jun. 27, 2004 by Dai ISHIJIMA # 0.1: Jul. 11, 2004 # 0.2: Jun. 28, 2006 # 0.3: Aug. 1, 2006 (ƒ^ƒCƒ€ƒXƒ^ƒ“ƒv for wpout07) # 0.4: Feb. 10, 2007 (ƒƒO‹L˜^ for wpout08) # 0.5: Feb. 15, 2007 (ƒGƒ“ƒ^[ƒL[’·‰Ÿ‚µ‘Îô) # 0.6: Sep. 12, 2007 (wpout09) # 0.7: Oct. 6, 2007 (ŒvŽZ‚ð32ƒrƒbƒg•„†•t‚«®”‚͈̔͂Ås‚¤) # 0.8: Dec. 23, 2007 (ƒo[ƒOƒ‰ƒt•\ަ‚ÌŒvŽZC³) # 0.9: Jan. 2, 2008 (ƒƒOC³) # # ’P“Æ‚Å‚à“®‚­‚悤‚É LOGFIL="${LOGFIL:-/tmp/wpoutlog.txt}" DMESG="${DMESG:-/var/run/dmesg.boot}" PATTERNFIL="${PATTERNFIL:-/tmp/pattern.dat}" echo '# ---------------------------- #' >> $LOGFIL echo -n "script $0 started on " >> $LOGFIL date >> $LOGFIL if [ ! -s $PATTERNFIL ]; then stuff -g > $PATTERNFIL echo "random pattern file $PATTERNFIL generated" >> $LOGFIL fi stuffs="${1:-fz}" disk="${2:-ad0}" dmesg="${DMESG:-/var/run/dmesg.boot}" # ˆê“x‚É32MƒoƒCƒg‚¸‚ blklen="${BLKLEN:-33554432}" # o—̓uƒƒbƒNƒTƒCƒY‚Í1MƒoƒCƒg obs="${OBS:-1048576}" ocnt=$(( $blklen / $obs )) ounit=$(( $obs / 1048576 )) # “ü—̓uƒƒbƒNƒTƒCƒY‚Í1kƒoƒCƒg ibs="${IBS:-1024}" icnt=$(( $blklen / $ibs )) # resultfil=/tmp/result # title="${TITLE:-ƒn[ƒhƒfƒBƒXƒNÁ‹Žƒc[ƒ‹wwipe-outx}" # if [ ! -w /dev/$disk ]; then dialog --title "$title" \ --msgbox "ƒfƒBƒXƒN $disk ‚ª‘¶Ý‚µ‚È‚¢‚©A‘‚«ž‚݂ł«‚Ü‚¹‚ñ" \ 5 64 exit 1 fi # mount -p | sed -n -E "/^.dev.$disk/p" > $resultfil if [ -s $resultfil ]; then dialog --title "$title" \ --msgbox "ƒ}ƒEƒ“ƒg’†‚̃fƒBƒXƒN $disk ‚ðÁ‹Ž‚·‚邱‚Ƃ͂ł«‚Ü‚¹‚ñ" \ 5 64 exit 1 fi dname=`sed -n -E "/^${disk}:.*<.*>/p" $dmesg | sed 's/.*\(<.*>\).*/\1/'` bytes=`disksize -B /dev/$disk` cap=`disksize -p /dev/$disk` msg="ƒfƒBƒXƒN ${disk} ${dname} ‚Ì\n" msg="${msg}‘Sƒf[ƒ^ ${bytes}ƒoƒCƒg‚ðA\n" nstuff=0 for stuff in `echo $stuffs | sed 's/\(.\)/\1 /g'` ; do case x"$stuff" in x[0z]) msg="${msg}0A" ;; x[1f]) msg="${msg}1A" ;; x[Rr]) msg="${msg}RA" ;; x[Pp]) msg="${msg}PA" ;; x[Qq]) msg="${msg}QA" ;; esac nstuff=$(( $nstuff + 1 )) done msg="${msg}‚̇‚É\n${nstuff}‰ñã‘‚«‚µ‚ÄÁ‹Ž‚µ‚Ü‚·\n" msg="${msg}\n ‚æ‚낵‚¢‚Å‚·‚©?" sh dummyread.sh dialog --title "$title" --yesno "$msg" 10 64 case x"$?" in x1) dialog --title "$title" \ --infobox 'ƒfƒBƒXƒN‚ÌÁ‹Ž‚ðƒLƒƒƒ“ƒZƒ‹‚µ‚Ü‚µ‚½' 3 64 sleep 2 exit 1 ;; esac msg="–{“–‚É${disk} ($cap) ‚̃f[ƒ^‚ðÁ‹Ž‚µ‚Ä‚¢‚¢‚Å‚·‚©?" sh dummyread.sh dialog --title "$title" \ --hline "$dname" \ --yesno "$msg" \ 5 72 case x"$?" in x1) dialog --title "$title" \ --infobox 'ƒfƒBƒXƒN‚ÌÁ‹Ž‚ðƒLƒƒƒ“ƒZƒ‹‚µ‚Ü‚µ‚½' 3 64 sleep 2 exit 1 ;; esac # Á‹Ž‚̃pƒ‰ƒ[ƒ^ (MƒoƒCƒg’PˆÊ‚Å”‚¦‚é) mbytes=`disksize -m /dev/$disk` max=$(( $mbytes / $ounit )) stage=0 xstage=1 startsec=`tinydate '+%s'` totalrems='' # ŠJŽnŽž startstamp=`date '+%Y-%m-%d %H:%M'` # echo "v ---------------------------- v" >> $LOGFIL echo -n "erase ($nstuff times) started on " >> $LOGFIL date >> $LOGFIL echo " $disk ($dname) $bytes bytes with $stuffs" >> $LOGFIL nerrs=0 xcent=100 xmill=1000 mcent=$max mmill=$max if [ $max -gt 1048576 ]; then xcent=1 xmill=1 mcent=$(( ( $max + 99 ) / 100 )) mmill=$(( ( $max + 999 ) / 1000 )) fi for stuff in `echo $stuffs | sed 's/\(.\)/\1 /g'` ; do skip=0 stagestart=`tinydate '+%s'` case "$stuff" in [0z]) method="'0'‚ðã‘‚«‚µ‚Ä" ;; [1f]) method="'1'‚ðã‘‚«‚µ‚Ä" ;; [Rr]) method="ƒ‰ƒ“ƒ_ƒ€ƒf[ƒ^‚ðã‘‚«‚µ‚Ä" ;; [Pp]) stuff -g > $PATTERNFIL echo "random pattern file $PATTERNFIL generated" \ >> $LOGFIL method="ƒ‰ƒ“ƒ_ƒ€ƒpƒ^[ƒ“‚ðã‘‚«‚µ‚Ä" ;; [Qq]) method="’¼‘Oƒpƒ^[ƒ“‚̕│ðã‘‚«‚µ‚Ä" ;; esac rems='' status='' status2='' errormsg='' # echo -n "stage: $stage, with writing $stuff " >> $LOGFIL echo -n "started on " >> $LOGFIL date >> $LOGFIL # while [ $skip -le $max ]; do # ŒvŽž cursec=`tinydate '+%s'` # ƒo[ƒOƒ‰ƒt p=$(( ( $xcent * $skip ) / $mcent )) m=$(( ( $xmill * $skip ) / $mmill )) q=$(( $p / 2 )) i=0 bar='' while [ $i -lt $q ]; do bar="$bar"'#' i=$(( $i + 1 )) done while [ $i -lt 50 ]; do bar="$bar"'_' i=$(( $i + 1 )) done # Žc‚莞ŠÔ elapsed=$(( $cursec - $stagestart )) if [ $m -gt 0 ]; then remain=$(( ( 1000 - $m ) * $elapsed / $m + 1 )) if [ $remain -gt 120 ]; then rems=$(( ( $remain + 59 ) / 60 )) rems="Žc‚è ‚¨‚æ‚»${rems}•ª" else rems="Žc‚è ‚¨‚æ‚»${remain}•b" fi fi if [ $elapsed -gt 120 ]; then elas=$(( ( $elapsed + 30 ) / 60 )) elas="${elas}•ª" else elas="${elapsed}•b" fi # ‘S‘̃o[ƒOƒ‰ƒt pp=$(( ( $p + 100 * $stage ) / $nstuff )) mm=$(( ( $m + 1000 '*' $stage ) / $nstuff )) q=$(( $pp / 2 )) i=0 totalbar='' while [ $i -lt $q ]; do totalbar="$totalbar"'#' i=$(( $i + 1 )) done while [ $i -lt 50 ]; do totalbar="$totalbar"'_' i=$(( $i + 1 )) done ee=$(( $cursec - $startsec )) if [ $mm -gt 0 ]; then rr=$(( ( 1000 - $mm ) * $ee / $mm + 1 )) if [ $rr -gt 120 ]; then totalrems=$(( ( $rr + 59 ) / 60 )) totalrems="Žc‚è ‚¨‚æ‚»${totalrems}•ª" else totalrems="Žc‚è ‚¨‚æ‚»${rr}•b" fi fi if [ $ee -gt 120 ]; then totalelas=$(( ( $ee + 30 ) / 60 )) totalelas="${totalelas}•ª" else totalelas="${ee}•b" fi # text="ƒfƒBƒXƒN ${disk} ‚̃f[ƒ^‚ðÁ‹Ž‚µ‚Ä‚¢‚Ü‚·B\n\n" text="${text}‘S ${nstuff} H’ö’†‚Ì ${xstage} ”Ô‚ß " text="${text} ‘S‘Ì‚Ì ${pp}% I—¹\n" text="${text}${totalelas} Œo‰ß ${totalrems} \n\n" text="${text} 0%|${totalbar}|100%\n\n" text="${text}‚±‚ÌH’ö‚Å‚Í${method}Aƒf[ƒ^‚ðÁ‹Ž‚µ‚Ä‚¢‚Ü‚·B\n" text="${text}${p}% ($skip/$max) I—¹ ^ " text="${text}${elas} Œo‰ß ${rems} \n\n" text="${text} 0%|${bar}|100%\n\n" text="${text}\n${errormsg}" dialog --title "$title" --infobox "$text" 15 72 echo -n "$status2" case x$DEBUG in x[Yy]*) status2='now in debug mode...' errormsg='' sleep 1 ;; *) status=`stuff -$stuff < $PATTERNFIL | dd ibs=$ibs obs=$obs seek=$skip count=$icnt of=/dev/$disk 2>&1` status2=`echo "$status" | sed -n '/transfer/p'` errormsg=`echo "$status" | sed -n -E '/records (in|out)$/!p' | sed -n '/transferred in/!p'` ;; esac # ‹L˜^ case x"$skip" in x0) echo "stage: $stage, skip: $skip, $status2" >> $LOGFIL ;; esac case x"${nerrs}"x"${errormsg}" in x[0-8]x?*) echo "errmesg[${nerrs}]: $errormsg" >> $LOGFIL nerrs=$(( $nerrs + 1 )) ;; x9x?*) echo "errmesg[${nerrs}]: $errormsg" >> $LOGFIL echo "Too many errors encounterd..." >> $LOGFIL nerrs=$(( $nerrs + 1 )) ;; esac # ŽŸƒ‹[ƒv skip=$(( $skip + $ocnt )) done stage=$(( $stage + 1 )) xstage=$(( $xstage + 1 )) echo "stage: $stage, skip: $skip, $status2" >> $LOGFIL done sleep 2 # echo "number of errmessages: $nerrs" >> $LOGFIL echo -n "erase finished on " >> $LOGFIL date >> $LOGFIL echo " $disk ($dname, $cap) with overwriting $nstuff times" >> $LOGFIL echo "^ ---------------------------- ^" >> $LOGFIL cursec=`tinydate '+%s'` elapsed=$(( $cursec - $startsec )) if [ $elapsed -gt 120 ]; then min=$(( $elapsed / 60 )) sec=$(( $elapsed - $min * 60 )) elas="${min}•ª${sec}•b" else elas="${elapsed}•b" fi # I—¹Žž endstamp=`date '+%H:%M'` # ƒƒO•Û‘¶ echo 'The contents of this storage device' > /tmp/erase-log.$disk echo "$disk ($cap) '$dname'" >> /tmp/erase-log.$disk echo -n 'were erased with ' >> /tmp/erase-log.$disk echo 'hard disk wiping tool "wipe-out."' >> /tmp/erase-log.$disk echo "Erase $nstuff times ($stuffs)" >> /tmp/erase-log.$disk echo " $startstamp -> $endstamp" >> /tmp/erase-log.$disk echo "but NOT verified" > /tmp/verify-log.$disk sh dummyread.sh dialog --title "$title" \ --msgbox "ƒfƒBƒXƒN‚̃f[ƒ^Á‹Ž‚ªI—¹‚µ‚Ü‚µ‚½ (${elas})" 5 72 exit 0 # EOF #! /bin/sh # # sel-fine.sh - ”O“ü‚èÁ‹Ž–@‚Ì‘I‘ð # # 0.0: Jun. 26, 2004 by Dai ISHIJIMA # 0.1: Jul. 9, 2005 # 0.2: Jun. 28, 2006 (ƒ‰ƒ“ƒ_ƒ€ƒpƒ^[ƒ“‚ƕ┠for wpout07) # 0.3: Feb. 18, 2007 (15‰ñÁ‹Ž‚ð’ljÁ for wpout08) # resultfil=/tmp/result stuffs="${stuffs:-10}" title="${TITLE:-ƒn[ƒhƒfƒBƒXƒNÁ‹Žƒc[ƒ‹wwipe-outx}" dialog 2>$resultfil \ --title "$title" \ --menu 'Á‹Ž•û–@‚ð‘I‘ð‚µ‚Ä‚­‚¾‚³‚¢' \ 12 74 5 \ 10 '1¨0‚̇‚É2‰ñã‘‚«‚·‚é' \ 01 '0¨1‚̇‚É2‰ñã‘‚«‚·‚é' \ R0 'ƒ‰ƒ“ƒ_ƒ€¨0‚̇‚É2‰ñã‘‚«‚·‚é' \ RR0 'ƒ‰ƒ“ƒ_ƒ€¨ƒ‰ƒ“ƒ_ƒ€¨0‚̇‚É3‰ñã‘‚«‚·‚é' \ R10 'ƒ‰ƒ“ƒ_ƒ€¨1¨0‚̇‚É3‰ñã‘‚«‚·‚é' \ PQ0 'ƒ‰ƒ“ƒ_ƒ€ƒpƒ^[ƒ“¨•┨0‚̇‚É3‰ñã‘‚«‚·‚é' \ RR10 'ƒ‰ƒ“ƒ_ƒ€~2¨1¨0‚̇‚É4‰ñã‘‚«‚·‚é' \ 1010 '1¨0¨1¨0‚̇‚É4‰ñã‘‚«‚·‚é' \ PQ10 'ƒpƒ^[ƒ“¨•┨1¨0‚̇‚É4‰ñã‘‚«‚·‚é' \ PQR0 'ƒpƒ^[ƒ“¨•┨ƒ‰ƒ“ƒ_ƒ€¨1¨0‚̇‚É4‰ñã‘‚«' \ 01010 '(0¨1)~2¨0‚̇‚É5‰ñã‘‚«‚·‚é' \ RRR10 'ƒ‰ƒ“ƒ_ƒ€~3¨1¨0‚̇‚É5‰ñã‘‚«‚·‚é' \ PQPQ0 '(ƒpƒ^[ƒ“¨•â”)~2¨0‚̇‚É5‰ñã‘‚«‚·‚é' \ 101010 '1¨0¨1¨0¨1¨0‚̇‚É6‰ñã‘‚«‚·‚é' \ RRRR10 'ƒ‰ƒ“ƒ_ƒ€~4¨1¨0‚̇‚É6‰ñã‘‚«‚·‚é' \ PQPQ10 '(ƒpƒ^[ƒ“¨•â”)~2¨1¨0‚̇‚É6‰ñã‘‚«' \ 0101010 '(0¨1)~3¨0‚̇‚É7‰ñã‘‚«‚·‚é' \ R101010 'ƒ‰ƒ“ƒ_ƒ€¨1¨0¨1¨0¨1¨0‚̇‚É7‰ñã‘‚«' \ R10R10R10 '(ƒ‰ƒ“ƒ_ƒ€¨1¨0)~3‚̇‚É9‰ñã‘‚«‚·‚é' \ PQRPQRPQR0 '(ƒpƒ^[ƒ“¨•┨ƒ‰ƒ“ƒ_ƒ€)~3¨0‚̇‚É10‰ñ' \ PQRPQRPQR10 '(ƒp[ƒ^ƒ“¨•┨ƒ‰ƒ“ƒ_ƒ€)~3¨1¨0‚̇‚É11‰ñ' \ R10R10R10R10 '(ƒ‰ƒ“ƒ_ƒ€¨1¨0)~4‚̇‚É12‰ñã‘‚«‚·‚é' \ PQRPQRPQRPQR0 '(ƒpƒ^[ƒ“¨•┨ƒ‰ƒ“ƒ_ƒ€)~4¨0‚̇‚É13‰ñ' \ PQRPQRPQRPQR10 '(ƒpƒ^[ƒ“¨•┨ƒ‰ƒ“ƒ_ƒ€)~4¨1¨0‚̇‚É14‰ñ' \ PQR10PQR10PQR10 '(ƒpƒ^[ƒ“¨•┨ƒ‰ƒ“ƒ_ƒ€¨1¨0)~3‚̇‚É15‰ñ' \ case x"$?" in x0) newstuff=`cat $resultfil` if [ x"$stuffs" != x"$newstuff" ]; then msg="Á‹Ž•û–@‚ð ${stuffs} ‚©‚ç" msg="${msg} ${newstuff} ‚É•ÏX‚µ‚Ü‚µ‚½B" dialog --title "$title" \ --infobox "$msg" 3 72 sleep 2 fi stuffs="$newstuff" ;; x1) dialog --title "$title" \ --infobox 'Á‹Ž•û–@‚Ì‘I‘ð‚ðƒLƒƒƒ“ƒZƒ‹‚µ‚Ü‚µ‚½' 3 64 sleep 2 ;; esac # EOF #! /bin/sh # # verify.sh -- ƒf[ƒ^‚ªÁ‚¦‚Ä‚¢‚é‚©Šm”F‚·‚é # # Žg‚¢•û: /bin/sh verify.sh step ƒfƒBƒXƒN # step: ƒXƒLƒbƒv‚·‚é’·‚³ # ƒfƒBƒXƒN: ƒfƒoƒCƒXƒtƒ@ƒCƒ‹‚ÅŽw’èA擪‚Ìu/dev/v‚ÍÈ‚­ # —á: /bin/sh verify.sh 0 ad0 (ƒfƒBƒXƒN‘S•”) # /bin/sh verify.sh 90 ad0 (‘S‘Ì‚Ì1/10) # /bin/sh verify.sh 990 ad0 (‘S‘Ì‚Ì1/100) # # 0.0: Jul. 8, 2005 by Dai ISHIJIMA (for wpout06) # 0.2: Aug. 1, 2006 (ƒ^ƒCƒ€ƒXƒ^ƒ“ƒv for wpout07) # 0.3: Feb. 10, 2007 (ƒƒO‹L˜^ for wpout08) # 0.4: Feb. 15, 2007 (ƒGƒ“ƒ^[ƒL[’·‰Ÿ‚µ‘Îô) # 0.5: Sep. 12, 2007 (wpout09) # 0.6: Oct. 6, 2007 (ŒvŽZ‚ð32ƒrƒbƒg•„†•t‚«®”‚͈̔͂Ås‚¤) # 0.7: Dec. 23, 2007 (ƒo[ƒOƒ‰ƒt•\ަ‚ÌŒvŽZC³) # 0.8: Jan. 2, 2008 (ƒƒOC³) # 0.9: Apr. 19, 2009 (Šm”FƒƒbƒZ[ƒW, wpout10) # # ’P“Æ‚Å‚à“®‚­‚悤‚É LOGFIL="${LOGFIL:-/tmp/wpoutlog.txt}" DMESG="${DMESG:-/var/run/dmesg.boot}" PATTERNFIL="${PATTERNFIL:-/tmp/pattern.dat}" echo '# ---------------------------- #' >> $LOGFIL echo -n "script $0 started on " >> $LOGFIL date >> $LOGFIL step="${1:-1}" disk="${2:-ad0}" dmesg="${DMESG:-/var/run/dmesg.boot}" # 10MƒoƒCƒg’PˆÊ‚ÅŠm”F vblklen="${VBLKLEN:-10485760}" # ˆê“x‚É1MƒoƒCƒg vbs="${VBS:-1048576}" vunit=$(( $vbs / 1048576 )) # ˆê“x‚É10ƒuƒƒbƒN vcnt=$(( $vblklen / $vbs )) # resultfil=/tmp/result # title="${TITLE:-ƒn[ƒhƒfƒBƒXƒNÁ‹Žƒc[ƒ‹wwipe-outx}" if [ ! -r /dev/$disk ]; then dialog --title "$title" \ --msgbox "ƒfƒBƒXƒN $disk ‚ª‘¶Ý‚µ‚È‚¢‚©A“ǂ߂܂¹‚ñ" \ 5 64 exit 1 fi dname=`sed -n -E "/^${disk}:.*<.*>/p" $dmesg | sed 's/.*\(<.*>\).*/\1/'` dbytes=`disksize -p /dev/$disk` bytes=`disksize -B /dev/$disk` # Šm”F‚̃pƒ‰ƒ[ƒ^ mbytes=`disksize -m /dev/$disk` # ƒuƒƒbƒNƒTƒCƒY’PˆÊ‚ł̃fƒBƒXƒNƒTƒCƒY max=$(( $mbytes / $vunit )) msg="ƒfƒBƒXƒN ${disk} ${dname} ‚Ì\n" msg="${msg}ƒf[ƒ^ ${bytes}ƒoƒCƒg‚ª\n" msg="${msg}Á‹Ž‚³‚ê‚Ä‚¢‚邱‚Æ‚ðŠm”F‚µ‚Ü‚·B\n" msg="${msg}\n ‚æ‚낵‚¢‚Å‚·‚©?" sh dummyread.sh dialog --title "$title" --yesno "$msg" 9 64 case x"$?" in x1) dialog --title "$title" \ --infobox 'Á‹ŽŠm”F‚ðƒLƒƒƒ“ƒZƒ‹‚µ‚Ü‚µ‚½' 3 64 sleep 2 exit 1 ;; esac # Œ‹‰Ê zero=0 one=0 maybe=0 unerased=0 checked=0 startsec=`tinydate '+%s'` rems='' # ŠJŽnŽž startstamp=`date '+%Y-%m-%d %H:%M'` # echo "v ---------------------------- v" >> $LOGFIL echo -n "verify started on " >> $LOGFIL date >> $LOGFIL echo " $disk ($dname) $bytes bytes" >> $LOGFIL nerrs=0 skip=0 xcent=100 xmill=1000 mcent=$max mmill=$max if [ $max -gt 1048576 ]; then xcent=1 xmill=1 mcent=$(( ( $max + 99 ) / 100 )) mmill=$(( ( $max + 999 ) / 1000 )) fi while [ $skip -lt $max ]; do # ŒvŽž cursec=`tinydate '+%s'` # ƒo[ƒOƒ‰ƒt p=$(( ( $xcent * $skip ) / $mcent )) m=$(( ( $xmill * $skip ) / $mmill )) q=$(( $p / 2 )) i=0 bar='' while [ $i -lt $q ]; do bar="$bar"'#' i=$(( $i + 1 )) done while [ $i -lt 50 ]; do bar="$bar"'_' i=$(( $i + 1 )) done # Žc‚莞ŠÔ elapsed=$(( $cursec - $startsec )) if [ $elapsed -gt 10 ]; then remain=$(( ( 1000 - $m ) * $elapsed / $m + 1 )) if [ $remain -gt 120 ]; then rems=$(( ( $remain + 59 ) / 60 )) rems="Žc‚è ‚¨‚æ‚»${rems}•ª" else rems="Žc‚è ‚¨‚æ‚»${remain}•b" fi fi if [ $elapsed -gt 120 ]; then elas=$(( ( $elapsed + 30 ) / 60 )) elas="${elas}•ª" else elas="${elapsed}•b" fi # text="ƒfƒBƒXƒN ${disk} ‚̃f[ƒ^‚ðƒ`ƒFƒbƒN‚µ‚Ä‚¢‚Ü‚·B\n" text="${text}${max}ƒuƒƒbƒN‚Ì‚¤‚¿${skip}ƒuƒƒbƒN^${p}% I—¹\n" text="${text}${elas} Œo‰ß ${rems} \n\n" text="${text} 0%|${bar}|100%" text="${text}\n${errormsg}" dialog --title "$title" --infobox "$text" 8 72 echo -n "$status2" case x$DEBUG in x[Yy]*) status2='now in debug mode...' errormsg='' sleep 1 ;; *) status=`(dd if=/dev/$disk ibs=$vbs skip=$skip count=$vcnt | check -s) 2>&1` case $? in 0) zero=$(( $zero + $vcnt )) ;; 1) one=$(( $one + $vcnt )) ;; 2) maybe=$(( $maybe + $vcnt )) ;; *) unerased=$(( $unerased + $vcnt )) ;; esac status2=`echo "$status" | sed -n '/transfer/p'` errormsg=`echo "$status" | sed -n -E '/records (in|out)$/!p' | sed -n '/transferred in/!p'` ;; esac # ‹L˜^ case x"$skip" in x0) echo "skip: $skip, $status2" >> $LOGFIL ;; esac case x"${nerrs}"x"${errormsg}" in x[0-8]x?*) echo "errmesg[${nerrs}]: $errormsg" >> $LOGFIL nerrs=$(( $nerrs + 1 )) ;; x9x?*) echo "errmesg[${nerrs}]: $errormsg" >> $LOGFIL echo "Too many errors encounterd..." >> $LOGFIL nerrs=$(( $nerrs + 1 )) ;; esac # ŽŸƒ‹[ƒv checked=$(( $checked + $vcnt )) skip=$(( $skip + $vcnt + $step )) done sleep 2 # echo "skip: $skip, $status2" >> $LOGFIL echo "number of error messages: $nerrs" >> $LOGFIL echo -n "verify finished on" >> $LOGFIL date >> $LOGFIL echo " $disk ($dname, $dbytes), max = $max, checked = $checked" >> $LOGFIL echo "^ ---------------------------- ^" >> $LOGFIL cursec=`tinydate '+%s'` elapsed=$(( $cursec - $startsec )) if [ $elapsed -gt 120 ]; then min=$(( $elapsed / 60 )) sec=$(( $elapsed - $min * 60 )) elas="${min}•ª${sec}•b" else elas="${elapsed}•b" fi # I—¹Žž endstamp=`date '+%H:%M'` unerased=$(( $unerased + $maybe )) zp=$(( $zero * 100 / $checked )) op=$(( $one * 100 / $checked )) np=$(( $unerased * 100 / $checked )) msg="ƒfƒBƒXƒN ($disk, $dbytes ƒoƒCƒg) ‚̃`ƒFƒbƒN‚ªI—¹‚µ‚Ü‚µ‚½ (${elas})\n" msg="${msg}‘S $max ƒuƒƒbƒN’†‚Ì $checked ƒuƒƒbƒN‚ðŒŸ¸‚µ‚Ü‚µ‚½\n" msg="${msg} '0' ‚ÅÁ‹Ž‚³‚ê‚Ä‚¢‚éƒuƒƒbƒN”: $zero ($zp %)\n" msg="${msg} '1' ‚ÅÁ‹Ž‚³‚ê‚Ä‚¢‚éƒuƒƒbƒN”: $one ($op %)\n" msg="${msg} ‚»‚êˆÈŠO (–¢Á‹Ž) ‚̃uƒƒbƒN”: $unerased ($np %)\n" # ƒƒO•Û‘¶ echo "Verified $checked blocks" > /tmp/verify-log.$disk echo -n " erased with 0:${zp}%, 1:${op}%, " >> /tmp/verify-log.$disk echo "unerased:${np}%" >> /tmp/verify-log.$disk echo " $startstamp -> $endstamp" >> /tmp/verify-log.$disk sh dummyread.sh # ‚È‚º‚©Ž~‚Ü‚é? #echo -n "final confirmation message displayed on " >> $LOGFIL #date >> $LOGFIL dialog --title "$title" \ --msgbox "$msg" 10 72 exit 0 # EOF #! /bin/sh # # dump.sh -- ƒfƒBƒXƒN‚̃f[ƒ^‚ð•\ަ‚·‚é # # 0.0: Jul. 8, 2005 by Dai ISHIJIMA (wpout06) # 0.1: Sep. 12, 2007 (wpout09) # # Žg‚¢•û: /bin/sh dump.sh skip ƒfƒBƒXƒN # skip: ƒXƒLƒbƒv‚·‚é’·‚³ # ƒfƒBƒXƒN: ƒfƒoƒCƒXƒtƒ@ƒCƒ‹‚ÅŽw’èA擪‚Ìu/dev/v‚ÍÈ‚­ # —á: /bin/sh dump.sh 0 ad0 # # skip="${1:-0}" disk="${2:-ad0}" title="¡ $disk ‚Ì ƒZƒNƒ^ $skip ‚Ì“à—e" (dd if=/dev/$disk skip=$skip count=1 | tinydump > /tmp/dump.txt) 2>/dev/null dialog --title "$title" \ --textbox /tmp/dump.txt 22 76 #! /bin/sh # # writelog.sh -- Á‹ŽƒƒO‚ðƒfƒBƒXƒN‚É‘‚«ž‚Þ # # Žg‚¢•û: /bin/sh writelog.sh ƒfƒBƒXƒN # ƒfƒBƒXƒN: ƒfƒoƒCƒXƒtƒ@ƒCƒ‹‚ÅŽw’èA擪‚Ìu/dev/v‚ÍÈ‚­ # —á: /bin/sh writelog.sh ad0 # # 0.0: Aug. 1, 2006 by Dai ISHIJIMA (for wpout07) # 0.1: Aug. 7, 2006 ”O“ü‚è‚ÉŠm”F # 0.2: Feb. 10, 2007 (ƒƒO‹L˜^ for wpout08) # 0.3: Feb. 15, 2007 (ƒGƒ“ƒ^[ƒL[’·‰Ÿ‚µ‘Îô) # 0.4: Sep. 12, 2007 (wpout09) # disk="${1:-ad0}" mbr="${MBR:-wpout-mbr.boot}" title="${TITLE:-ƒn[ƒhƒfƒBƒXƒNÁ‹Žƒc[ƒ‹wwipe-outx}" # ‚·‚Å‚ÉÁ‹ŽÏ‚Ý‚©? if [ ! -s /tmp/erase-log.$disk ]; then dialog --title "$title" \ --yesno 'Á‹Ž‘€ì‚ªs‚í‚ê‚Ä‚¢‚Ü‚¹‚ñ\n–{“–‚É‘‚«ž‚݂܂·‚©?' \ 6 64 case x"$?" in x1) dialog --title "$title" \ --infobox 'ƒƒO‚Ì‘‚«ž‚Ý‚ðƒLƒƒƒ“ƒZƒ‹‚µ‚Ü‚µ‚½' 3 64 sleep 2 exit 1 ;; esac fi # –{“–‚ÉÁ‹Ž‚³‚ê‚Ä‚¢‚é‚Ì‚©? dd if=/dev/$disk count=1 of=/tmp/org-mbr.$disk 1>/dev/null 2>&1 if ! check < /tmp/org-mbr.$disk 1>/dev/null 2>&1 ; then dialog --title "$title" \ --yesno 'MBR‚Í0‚ÅÁ‹Ž‚³‚ê‚Ä‚¢‚Ü‚¹‚ñ\n–{“–‚É‘‚«ž‚݂܂·‚©?' \ 6 64 case x"$?" in x1) dialog --title "$title" \ --infobox 'ƒƒO‚Ì‘‚«ž‚Ý‚ðƒLƒƒƒ“ƒZƒ‹‚µ‚Ü‚µ‚½' 3 64 sleep 2 exit 1 ;; esac fi # ƒƒO‚ª‘¶Ý‚µ‚È‚©‚Á‚½‚ç‚»‚ê‚炵‚­ì¬ if [ ! -s /tmp/erase-log.$disk ]; then echo 'The contents of this storage device' > /tmp/erase-log.$disk echo 'may have been erased' >> /tmp/erase-log.$disk echo 'with hard disk wiping tool "wipe-out."' >> /tmp/erase-log.$disk fi if [ ! -s /tmp/verify-log.$disk ]; then echo 'But NOT verified.' > /tmp/verify-log.$disk fi # ÅIŠm”F sh dummyread.sh dialog --title "$title" \ --yesno "Á‹ŽƒƒO‚ðƒfƒBƒXƒN ($disk) ‚É‘‚«ž‚݂܂·‚©?" \ 6 64 case x"$?" in x1) dialog --title "$title" \ --infobox 'ƒƒO‚Ì‘‚«ž‚Ý‚ðƒLƒƒƒ“ƒZƒ‹‚µ‚Ü‚µ‚½' 3 64 sleep 2 exit 1 ;; esac echo -n 'Logged: ' > /tmp/stamp-log.$disk date '+%Y-%m-%d %H:%M:%S' >> /tmp/stamp-log.$disk echo 'ABSOLUTELY NO WARRANTY.' >> /tmp/stamp-log.$disk # ‘‚«ž‚Ý‘€ì cat $mbr /tmp/erase-log.$disk /tmp/verify-log.$disk /tmp/stamp-log.$disk | makembr > /tmp/boot.$disk # echo -n "MBR log was written on " >> $LOGFIL date >> $LOGFIL echo "==" >> $LOGFIL cat /tmp/erase-log.$disk /tmp/verify-log.$disk /tmp/stamp-log.$disk >> $LOGFIL echo "==" >> $LOGFIL case x$DEBUG in x[Yy]*) echo 'debug mode, no write' mesg="Á‹ŽƒƒO‚ðƒfƒBƒXƒN ($disk) ‚É‘‚«ž‚݂܂µ‚½ (in debug mode)" ;; *) if dd if=/tmp/boot.$disk of=/dev/$disk > /dev/null 2>&1; then mesg="Á‹ŽƒƒO‚ðƒfƒBƒXƒN ($disk) ‚É‘‚«ž‚݂܂µ‚½" else mesg="Á‹ŽƒƒO‚ðƒfƒBƒXƒN ($disk) ‚É‘‚«ž‚߂܂¹‚ñ‚Å‚µ‚½" fi ;; esac sh dummyread.sh dialog --title "$title" --msgbox "$mesg" 5 72 exit 0 # EOF #! /bin/sh # # copy.sh -- ƒGƒ‰[‚𖳎‹‚µ‚ăf[ƒ^‚ðƒRƒs[ # # Žg‚¢•û: /bin/sh copy.sh ƒRƒs[Œ³ƒfƒBƒXƒN ƒRƒs[æƒfƒBƒXƒN # ƒfƒBƒXƒN: ƒfƒoƒCƒXƒtƒ@ƒCƒ‹‚ÅŽw’èA擪‚Ìu/dev/v‚ÍÈ‚­ # —á: /bin/sh copy.sh ad0 ad1 # # 0.0: Aug. 5, 2006 by Dai ISHIJIMA (for wpout07) # 0.1: Feb. 10, 2007 (ƒƒO‹L˜^ for wpout08) # 0.2: Feb. 15, 2007 (ƒGƒ“ƒ^[ƒL[’·‰Ÿ‚µ‘Îô) # 0.3: Sep. 12, 2007 (wpout09) # 0.4: Oct. 6, 2007 (expr(1) ‚ÌPOSIX‘Ήž) # 0.4: Dec. 13, 2007 (ƒo[ƒOƒ‰ƒtAŽc‚芗vŽžŠÔ‚̃I[ƒo[ƒtƒ[C³) # 0.5: Jan. 2, 2008 (ƒƒOC³) # 0.6: Apr. 19, 2009 (ƒuƒƒbƒNƒTƒCƒY‰Â•Ï, wpout10) # 0.7: Oct. 11, 2013 (ƒRƒs[’†‚̃fƒBƒXƒN–¼•\ަ, wpout13) # # ’P“Æ‚Å‚à“®‚­‚悤‚É LOGFIL="${LOGFIL:-/tmp/wpoutlog.txt}" DMESG="${DMESG:-/var/run/dmesg.boot}" PATTERNFIL="${PATTERNFIL:-/tmp/pattern.dat}" echo '# ---------------------------- #' >> $LOGFIL echo -n "script $0 started on " >> $LOGFIL date >> $LOGFIL # ŒvŽZŽž‚É 32bit signed int ‚ÌŒÀŠE‚Ɉø‚Á‚©‚©‚ç‚È‚¢‚悤‚É‚·‚é export EXPR_COMPAT # ƒuƒƒbƒNƒTƒCƒY‚Í512ƒoƒCƒg cbs="${CBS:-512}" srcdisk="${1:-ad0}" dstdisk="${2:-ad1}" cbs="${3:-$cbs}" dmesg="${DMESG:-/var/run/dmesg.boot}" if [ ! -r /dev/$srcdisk ]; then echo "$0: disk '$srcdisk' does not exist or is not readable" echo "Usage: $0 srcdisk dstdist" exit 1 fi if [ ! -w /dev/$dstdisk ]; then echo "$0: disk '$dstdisk' does not exist or is not writable" echo "Usage: $0 srcdisk dstdist" exit 1 fi # ˆê“x‚É32MƒoƒCƒg‚¸‚ blklen="${BLKLEN:-33554432}" # ƒRƒs[‚̃pƒ‰ƒ[ƒ^ # MƒoƒCƒg’PˆÊ‚Å”‚¦‚é mbytes=`disksize -m /dev/$srcdisk` # 524288MƒoƒCƒgˆÈ‰º‚È‚çƒuƒƒbƒNƒTƒCƒY‚Í512ƒoƒCƒg # ƒuƒƒbƒN”‚̃JƒEƒ“ƒg‚ª30ƒrƒbƒg‚ÅŽû‚܂邿‚¤‚É‚·‚é xbs=$(( ( $mbytes + 524288 - 1 ) / 524288 )) minbs=512 xbs=$(( $xbs >> 1 )) # ƒuƒƒbƒN’·‚̓fƒBƒXƒNƒTƒCƒY‚ɉž‚¶‚Ä 512, 1k, 2k, 4k,.. while [ $xbs -gt 0 ]; do minbs=$(( $minbs << 1 )) xbs=$(( $xbs >> 1 )) done # Žw’èƒuƒƒbƒN’·‚ª’Z‚¢ (ŒvŽZ‚ª‚ ‚Ó‚ê‚é‹°‚ê‚Ì‚ ‚é) ‚Æ‚«‚Í’·‚­‚·‚é if [ $cbs -lt $minbs ]; then cbs=$minbs fi ccnt=$(( $blklen / $cbs )) # obs="${OBS:-1048576}" ocnt=$(( $blklen / $obs )) ounit=$(( $obs / 1048576 )) title="${TITLE:-ƒn[ƒhƒfƒBƒXƒNÁ‹Žƒc[ƒ‹wwipe-outx}" sname=`sed -n -E "/^${srcdisk}:.*<.*>/p" $dmesg | sed 's/.*\(<.*>\).*/\1/'` sbytes=`disksize -B /dev/$srcdisk` dname=`sed -n -E "/^${dstdisk}:.*<.*>/p" $dmesg | sed 's/.*\(<.*>\).*/\1/'` dbytes=`disksize -B /dev/$dstdisk` msg="ƒfƒBƒXƒN ${srcdisk} ${sname} ‚Ì\n" msg="${msg}‘Sƒf[ƒ^ ${sbytes}ƒoƒCƒg‚ðA${cbs}ƒoƒCƒg’PˆÊ‚Å\n" msg="${msg}ƒfƒBƒXƒN ${dstdisk} ${dname}\n" msg="${msg}(${dbytes}ƒoƒCƒg) ‚ɃRƒs[‚µ‚Ü‚·B" msg="${msg}\n ‚æ‚낵‚¢‚Å‚·‚©?" sh dummyread.sh dialog --title "$title" --yesno "$msg" 9 64 case x"$?" in x1) dialog --title "$title" \ --infobox 'ƒfƒBƒXƒN‚̃Rƒs[‚ðƒLƒƒƒ“ƒZƒ‹‚µ‚Ü‚µ‚½' 3 64 sleep 2 exit 1 ;; esac msg="–{“–‚É${srcdisk}‚̃f[ƒ^‚ð${dstdisk}‚ɃRƒs[‚µ‚Ä‚¢‚¢‚Å‚·‚©?" sh dummyread.sh dialog --title "$title" \ --hline "$dname" \ --yesno "$msg" \ 5 72 case x"$?" in x1) dialog --title "$title" \ --infobox 'ƒfƒBƒXƒN‚̃Rƒs[‚ðƒLƒƒƒ“ƒZƒ‹‚µ‚Ü‚µ‚½' 3 64 sleep 2 exit 1 ;; esac dd if=/dev/$dstdisk ibs=512 count=1 | check -s 2>&1 case $? in 0) dstempty="may be empty or erased." ;; *) dstempty="may NOT be empty or erased." msg="ƒRƒs[æ‚̃fƒBƒXƒN${dstdisk} ${dname}\n" msg="${msg}‚ɂ̓f[ƒ^‚ªŽc‚Á‚Ä‚¢‚é‰Â”\«‚ª‚ ‚è‚Ü‚·\n" msg="${msg}–{“–‚É${srcdisk}‚̃f[ƒ^‚ð" msg="${msg}${dstdisk}‚ɃRƒs[‚µ‚Ä‚¢‚¢‚Å‚·‚©?" sh dummyread.sh dialog --title "$title" \ --hline "$dname" \ --yesno "$msg" \ 7 72 case x"$?" in x1) dialog --title "$title" \ --infobox \ 'ƒfƒBƒXƒN‚̃Rƒs[‚ðƒLƒƒƒ“ƒZƒ‹‚µ‚Ü‚µ‚½' 3 64 sleep 2 exit 1 ;; esac ;; esac ccnt=$(( $blklen / $cbs )) max=$(( $mbytes * (1048576 / $cbs) )) startsec=`tinydate '+%s'` rems='' # echo "v ---------------------------- v" >> $LOGFIL echo -n "copy started on " >> $LOGFIL date >> $LOGFIL echo " copy $srcdisk ($sname)" >> $LOGFIL echo " -> $dstdisk ($dname)" >> $LOGFIL echo " destination disk $dstdisk ($dname) $dstempty" >> $LOGFIL echo " copying $sbytes bytes ($mbytes Mbytes)" >> $LOGFIL echo " cbs=$cbs, ccnt=$ccnt, max=$max, obs=$obs, ocnt=$ocnt" >> $LOGFIL nerrs=0 skip=0 oseek=0 xcent=100 xmill=1000 mcent=$max mmill=$max if [ $max -gt 1048576 ]; then xcent=1 xmill=1 mcent=$(( ( $max + 99 ) / 100 )) mmill=$(( ( $max + 999 ) / 1000 )) fi # echo " xcent=$xcent, xmill=$xmill, mcent=$mcent, mmill=$mmill" >> $LOGFIL while [ $skip -le $max ]; do # ŒvŽž cursec=`tinydate '+%s'` # ƒo[ƒOƒ‰ƒt p=$(( ( $xcent * $skip ) / $mcent )) m=$(( ( $xmill * $skip ) / $mmill )) q=$(( $p / 2 )) i=0 bar='' while [ $i -lt $q ]; do bar="$bar"'#' i=$(( $i + 1 )) done while [ $i -lt 50 ]; do bar="$bar"'_' i=$(( $i + 1 )) done # Žc‚莞ŠÔ elapsed=$(( $cursec - $startsec )) if [ $m -gt 0 ]; then remain=$(( ( 1000 - $m ) * $elapsed / $m + 1 )) if [ $remain -gt 120 ]; then rems=$(( ( $remain + 59 ) / 60 )) rems="Žc‚è ‚¨‚æ‚»${rems}•ª" else rems="Žc‚è ‚¨‚æ‚»${remain}•b" fi fi if [ $elapsed -gt 120 ]; then elas=$(( ( $elapsed + 30 ) / 60 )) elas="${elas}•ª" else elas="${elapsed}•b" fi # text="ƒfƒBƒXƒN ${srcdisk} ${sname} ‚Ì\n" text="${text}ƒf[ƒ^‚ð ${dstdisk} ${dname} ‚É\n" text="${text}${cbs}ƒoƒCƒg’PˆÊ‚ŃRƒs[‚µ‚Ä‚¢‚Ü‚·B\n" text="${text} ${p}% ($skip/$max) I—¹ ^ " text="${text}${elas} Œo‰ß ${rems} \n\n" text="${text} 0%|${bar}|100%" text="${text}\n${errormsg}" dialog --title "$title" --infobox "$text" 9 72 echo -n "$status2" case x$DEBUG in x[Yy]*) status2='now in debug mode...' errormsg='' sleep 1 ;; *) status=`dd if=/dev/$srcdisk ibs=$cbs skip=$skip conv=noerror,sync obs=$obs seek=$oseek count=$ccnt of=/dev/$dstdisk 2>&1` status2=`echo "$status" | sed -n '/transfer/p'` errormsg=`echo "$status" | sed -n -E '/records (in|out)$/!p' | sed -n '/transferred in/!p'` ;; esac # ‹L˜^ case x"$skip" in x0) echo "skip: $skip, $status2" >> $LOGFIL ;; esac case x"${nerrs}"x"${errormsg}" in x[0-8]x?*) echo "errmesg[${nerrs}]: $errormsg" >> $LOGFIL nerrs=$(( $nerrs + 1 )) ;; x9x?*) echo "errmesg[${nerrs}]: $errormsg" >> $LOGFIL echo "Too many errors encounterd..." >> $LOGFIL nerrs=$(( $nerrs + 1 )) ;; esac # ŽŸƒ‹[ƒv skip=$(( $skip + $ccnt )) oseek=$(( $oseek + $ocnt )) done sleep 2 # echo "skip: $skip, $status2" >> $LOGFIL echo "number of error messages: $nerrs" >> $LOGFIL echo -n "copy finished on " >> $LOGFIL date >> $LOGFIL echo -n "$srcdisk ($sname, $sbytes)" >> $LOGFIL echo " -> $dstdisk ($dname, $dbytes)" >> $LOGFIL echo "^ ---------------------------- ^" >> $LOGFIL cursec=`tinydate '+%s'` elapsed=$(( $cursec - $startsec )) if [ $elapsed -gt 120 ]; then min=$(( $elapsed / 60 )) sec=$(( $elapsed - $min * 60 )) elas="${min}•ª${sec}•b" else elas="${elapsed}•b" fi sh dummyread.sh dialog --title "$title" \ --msgbox "ƒfƒBƒXƒN‚̃Rƒs[‚ªI—¹‚µ‚Ü‚µ‚½ (${elas})" 5 72 exit 0 # EOF #! /bin/sh # # embr.sh -- MBR‚Ì‚ÝÁ‹Ž‚·‚é # # Žg‚¢•û: /bin/sh embr.sh ƒfƒBƒXƒN # ƒfƒBƒXƒN: ƒfƒoƒCƒXƒtƒ@ƒCƒ‹‚ÅŽw’èA擪‚Ìu/dev/v‚ÍÈ‚­ # —á: /bin/sh embr.sh ad0 # # 0.0: Dec. 21, 2006 by Dai ISHIJIMA (for wpout07) # 0.1: Feb. 10, 2007 (ƒƒO‹L˜^ for wpout08) # 0.2: Feb. 15, 2007 (ƒGƒ“ƒ^[ƒL[’·‰Ÿ‚µ‘Îô) # 0.3: Sep. 12, 2007 (wpout09) # 0.4: Jan. 2, 2008 (ƒƒOC³) # LOGFIL="${LOGFIL:-/tmp/wpoutlog.txt}" dmesg="${DMESG:-/var/run/dmesg.boot}" disk="${1:-ad0}" echo '# ---------------------------- #' >> $LOGFIL echo -n "script $0 started on " >> $LOGFIL date >> $LOGFIL #if [ ! -w /dev/$disk ]; then # echo "$0: disk '$disk' does not exist or is not writable" # echo "Usage: $0 disk" # echo "Example: $0 ad0" # exit 1 #fi title="${TITLE:-ƒn[ƒhƒfƒBƒXƒNÁ‹Žƒc[ƒ‹wwipe-outx}" dname=`sed -n -E "/^${disk}:.*<.*>/p" $dmesg | sed 's/.*\(<.*>\).*/\1/'` msg="ƒfƒBƒXƒN ${disk} ${dname} ‚Ì\n" msg="${msg}MBR (ƒ}ƒXƒ^Eƒu[ƒgEƒŒƒR[ƒh; 擪ƒZƒNƒ^)\n" msg="${msg}*‚¾‚¯* ‚ðÁ‹Ž‚µ‚Ü‚·B\n" msg="${msg}\n" msg="${msg}MBR‚ðÁ‚·‚ÆAƒfƒBƒXƒNã‚Ì‚·‚ׂẴf[ƒ^‚ª\n" msg="${msg}‚È‚­‚È‚Á‚½‚©‚̂悤‚ÉŒ©‚¦‚Ü‚·B‚µ‚©‚µA\n" msg="${msg}•œŒ³ƒc[ƒ‹‚ÅŒ³‚É–ß‚·‚±‚Æ‚à‰Â”\‚Ȃ̂Å\n" msg="${msg}î•ñ˜R‰k‚̊댯‚ª‚ ‚è‚Ü‚·B‚²’ˆÓ‚­‚¾‚³‚¢B\n" msg="${msg}\n ‚æ‚낵‚¢‚Å‚·‚©?" sh dummyread.sh dialog --title "$title" --yesno "$msg" 15 52 case x"$?" in x1) dialog --title "$title" \ --infobox 'ƒfƒBƒXƒN‚ÌÁ‹Ž‚ðƒLƒƒƒ“ƒZƒ‹‚µ‚Ü‚µ‚½' 3 64 sleep 2 exit 1 ;; esac msg="ƒfƒBƒXƒN ${disk} ‚ÌMBRÁ‹Ž‚𒆎~‚µ‚Ü‚·‚©?" sh dummyread.sh dialog --title "$title" \ --hline "$dname" \ --yesno "$msg" \ 5 72 case x"$?" in x0) dialog --title "$title" \ --infobox 'ƒfƒBƒXƒN‚ÌÁ‹Ž‚ðƒLƒƒƒ“ƒZƒ‹‚µ‚Ü‚µ‚½' 3 64 sleep 2 exit 1 ;; esac echo "v ---------------------------- v" >> $LOGFIL echo -n "erase MBR ($disk) started on " >> $LOGFIL date >> $LOGFIL case x$DEBUG in x[Yy]*) echo -n "now in debug mode..." echo 'debug mode' >> $LOGFIL ;; *) dd bs=512 count=1 if=/dev/zero of=/dev/$disk ;; esac sleep 3 # echo -n "erase MBR ONLY $disk ($dname) on " >> $LOGFIL date >> $LOGFIL echo "^ ---------------------------- ^" >> $LOGFIL sh dummyread.sh dialog --title "$title" \ --msgbox "MBR‚ÌÁ‹Ž‚ªI—¹‚µ‚Ü‚µ‚½" 5 64 exit 0 # EOF #! /bin/sh # # crlf.sh -- s––ƒR[ƒh‚ð LF (\n) ‚©‚ç CRLF (\r\n) ‚É # # 0.0: Feb. 5, 2007 by Dai ISHIJIMA # 0.1: Feb. 18, 2007 by Dai ISHIJIMA # cr=`echo -e '\r'` if sed 's/$/'"$cr"'/' ; then exit 0 else echo "crlf.sh: write failed" exit 1 fi # EOF#! /bin/sh # # floppylog.sh -- ƒtƒƒbƒs[‚ɃƒO‚ð‹L˜^‚·‚é # # Žg‚¢•û: /bin/sh floppylog.sh [ƒfƒBƒXƒN] # ƒfƒBƒXƒN: ƒfƒoƒCƒXƒtƒ@ƒCƒ‹‚ÅŽw’èA擪‚Ìu/dev/v‚ÍÈ‚­ # —á: /bin/sh floppylog.sh fd0 # # 0.0: Feb. 10, 2007 by Dai ISHIJIMA (for wpout08) # 0.1: Feb. 15, 2007 (ƒfƒBƒXƒN‚ð‘I‘ð‚·‚é) # 0.2: Feb. 15, 2007 (dmesg -a ‚ðÅŒã‚É) # 0.3: Feb. 18, 2007 (ƒLƒƒƒ“ƒZƒ‹Ž¸”sbugfix) # 0.4: Feb. 20, 2007 (ƒVƒFƒ‹•Ï”‚à) # 0.5: Feb. 21, 2007 (ì‹Æ“à—e‚ðʼnºs‚É•\ަ) # 0.6: Feb. 23, 2007 (‰ü—Ç: ì‹Æ“à—e‚ðʼnºs‚É•\ަ) # 0.7: Sep. 12, 2007 (wpout09) # 0.8: Oct. 6, 2007 (expr ‚Ì‘ã‚í‚è‚É $(( )) ) # dmesg="${DMESG:-/var/run/dmesg.boot}" disk="${1:-fd0}" resultfil=/tmp/result searchfor="fd0 da0 da0s1 da1 da1s1 da2 da2s1 da3 da3s1" header=/tmp/header.txt title="${TITLE:-ƒn[ƒhƒfƒBƒXƒNÁ‹Žƒc[ƒ‹wwipe-outx}" dialog --title "$TITLE" \ --infobox "ƒƒO‚̕ۑ¶æ‚ðŒŸõ‚µ‚Ä‚¢‚Ü‚·" 3 64 ndevs=0 devs='' for dev in $searchfor ; do echo -e "\r \r\c" echo -n "checking $dev" if mount_msdosfs -s -o rdonly /dev/$dev /floppy > /dev/null 2>&1; then if [ -d /floppy/wipe-out ]; then devs="$devs $dev" ndevs=$(( $ndevs + 1 )) fi umount /floppy fi done case x"$ndevs" in x0) echo "no device to write log" >> $LOGFIL msg="ƒƒO‚̕ۑ¶æ‚ª‚݂‚©‚è‚Ü‚¹‚ñ‚Å‚µ‚½" dialog --title $title --msgbox "$msg" 5 64 exit 1 ;; esac taglist='' for dev in $devs ; do d=`echo $dev | sed 's/^\([a-z][a-z]*[0-9]\).*/\1/'` dname=`sed -n -E "/^${d}:.*<.*>/p" $dmesg | sed 's/.*\(<.*>\).*/\1/'` taglist="$taglist $dev '$dname'" done sh dummyread.sh eval dialog \ --title "'$title'" \ --menu "'ƒƒO‚̕ۑ¶æ‚ð‘I‘ð‚µ‚Ä‚­‚¾‚³‚¢'" \ 10 72 3 \ $taglist \ 2>$resultfil case "$?" in 0) disk=`cat $resultfil` msg="ƒƒO‚ð ${disk} ‚ɕۑ¶‚µ‚Ü‚·" dialog --title "$title" --infobox "$msg" 3 64 ;; 1) dialog --title "$title" \ --infobox 'ƒƒO‚̕ۑ¶‚ðƒLƒƒƒ“ƒZƒ‹‚µ‚Ü‚µ‚½' 3 64 sleep 2 # 2007-02-18 exit 1 ;; esac echo -e "\r \r\c" echo -n "mounting floppy" if ! mount_msdosfs -s /dev/$disk /floppy > /dev/null 2>&1; then msg="•Û‘¶æ ${disk} ‚ð‘‚«ž‚݃}ƒEƒ“ƒg‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½" dialog --title "$title" --msgbox "$msg" 5 64 exit 1 fi echo "" > $header echo -n "####################################" >> $header echo "####################################" >> $header echo -n "following messages were logged on " >> $header date >> $header echo -n "====================================" >> $header echo "====================================" >> $header # dmesg.boot echo -e "\r \r\c" echo -n "writing dmesg.boot header" if ! crlf.sh < $header >> /floppy/wipe-out/dmsgboot.txt ; then umount /floppy msg="dmesg.bootƒwƒbƒ_‚Ì‘‚«ž‚݂Ɏ¸”s‚µ‚Ü‚µ‚½" dialog --title "$title" --msgbox "$msg" 5 64 exit 1 fi echo -e "\r \r\c" echo -n "writing dmesg.boot body" if ! crlf.sh < $dmesg >> /floppy/wipe-out/dmsgboot.txt ; then umount /floppy msg="dmesg.boot‚Ì‘‚«ž‚݂Ɏ¸”s‚µ‚Ü‚µ‚½" dialog --title "$title" --msgbox "$msg" 5 64 exit 1 fi # wpoutlog.txt echo -e "\r \r\c" echo -n "writing wpoutlog header" if ! crlf.sh < $header >> /floppy/wipe-out/wpoutlog.txt ; then umount /floppy msg="wipe-outƒƒOƒwƒbƒ_‚Ì‘‚«ž‚݂Ɏ¸”s‚µ‚Ü‚µ‚½" dialog --title "$title" --msgbox "$msg" 5 64 exit 1 fi echo -e "\r \r\c" echo -n "writing wpoutlog body" if ! crlf.sh < $LOGFIL >> /floppy/wipe-out/wpoutlog.txt ; then umount /floppy msg="wipe-outƒƒO‚Ì‘‚«ž‚݂Ɏ¸”s‚µ‚Ü‚µ‚½" dialog --title "$title" --msgbox "$msg" 5 64 exit 1 fi # mbrlog.txt echo -e "\r \r\c" echo -n "writing mbrlog header" if ! crlf.sh < $header >> /floppy/wipe-out/mbrlog.txt ; then umount /floppy msg="MBRƒƒOƒwƒbƒ_‚Ì‘‚«ž‚݂Ɏ¸”s‚µ‚Ü‚µ‚½" dialog --title "$title" --msgbox "$msg" 5 64 exit 1 fi eraselog='No erase log found' echo -e "\r \r\c" echo -n "writing mbrlog body" for i in /tmp/erase-log.* ; do if [ -f "$i" ]; then if ! crlf.sh < $i >> /floppy/wipe-out/mbrlog.txt ; then umount /floppy msg="MBRƒƒO ($i) ‚Ì‘‚«ž‚݂Ɏ¸”s‚µ‚Ü‚µ‚½" dialog --title "$title" --msgbox "$msg" 5 64 exit 1 fi eraselog='' fi done case x"$eraselog" in xNo*) if ! echo "$eraselog" | crlf.sh >> /floppy/wipe-out/mbrlog.txt ; then umount /floppy msg="MBRƒƒO‚Ì‘‚«ž‚݂Ɏ¸”s‚µ‚Ü‚µ‚½" dialog --title "$title" --msgbox "$msg" 5 64 exit 1 fi esac verifylog='No verify log found' echo -e "\r \r\c" echo -n "writing verifylog body" for i in /tmp/verify-log.* ; do if [ -f "$i" ]; then if ! crlf.sh < $i >> /floppy/wipe-out/mbrlog.txt ; then umount /floppy msg="MBRƒƒO ($i) ‚Ì‘‚«ž‚݂Ɏ¸”s‚µ‚Ü‚µ‚½" dialog --title "$title" --msgbox "$msg" 5 64 exit 1 fi verifylog='' fi done case x"$verifylog" in xNo*) if ! echo "$verifylog" | crlf.sh >> /floppy/wipe-out/mbrlog.txt ; then umount /floppy msg="MBRƒƒO‚Ì‘‚«ž‚݂Ɏ¸”s‚µ‚Ü‚µ‚½" dialog --title "$title" --msgbox "$msg" 5 64 exit 1 fi esac # ƒVƒFƒ‹•Ï” echo -e "\r \r\c" echo -n "writing environ header" if ! crlf.sh < $header >> /floppy/wipe-out/environ.txt ; then umount /floppy msg="ƒVƒFƒ‹•Ï”ƒƒOƒwƒbƒ_‚Ì‘‚«ž‚݂Ɏ¸”s‚µ‚Ü‚µ‚½" dialog --title "$title" --msgbox "$msg" 5 64 exit 1 fi echo -e "\r \r\c" echo -n "writing environ body" if ! set | crlf.sh >> /floppy/wipe-out/environ.txt ; then umount /floppy msg="ƒVƒFƒ‹•Ï”ƒƒO‚Ì‘‚«ž‚݂Ɏ¸”s‚µ‚Ü‚µ‚½" dialog --title "$title" --msgbox "$msg" 5 64 exit 1 fi # dmesg-a echo -e "\r \r\c" echo -n "writing dmesg -a header" if ! crlf.sh < $header >> /floppy/wipe-out/dmesg-a.txt ; then umount /floppy msg="dmesg -a ƒwƒbƒ_‚Ì‘‚«ž‚݂Ɏ¸”s‚µ‚Ü‚µ‚½" dialog --title "$title" --msgbox "$msg" 5 64 exit 1 fi echo -e "\r \r\c" echo -n "writing dmesg -a body" if ! dmesg -a | crlf.sh >> /floppy/wipe-out/dmesg-a.txt ; then umount /floppy msg="dmesg -a ‚Ì‘‚«ž‚݂Ɏ¸”s‚µ‚Ü‚µ‚½" dialog --title "$title" --msgbox "$msg" 5 64 exit 1 fi echo -e "\r \r\c" echo -n "umounting floppy" if ! umount /floppy > /dev/null 2>&1; then msg="‘‚«ž‚ÝŒã‚ɃfƒBƒXƒN ${disk} ‚ðƒAƒ“ƒ}ƒEƒ“ƒg‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½" dialog --title "$title" --msgbox "$msg" 5 64 exit 1 fi dialog --title "$title" \ --msgbox "ƒƒO‚Ì‘‚«ž‚Ý‚ªI—¹‚µ‚Ü‚µ‚½" 5 64 exit 0 # EOF #! /bin/sh # # dummyread.sh -- ƒL[ƒ{[ƒh‚©‚ç“ü—Í‚³‚ê‚Ä‚¢‚é•¶Žš‚ð“Ç‚ñ‚Ŏ̂Ăé # # 0.0: Feb. 12, 2007 by Dai ISHIJIMA (for wpout08) # while read -t 0 keyin > /dev/null 1>&2 ; do case x"$DEBUG" in xY*) echo "|$keyin|" ;; esac done exit 0 # EOF #! /bin/sh # # kon2start.sh -- ƒJƒEƒ“ƒgƒ_ƒEƒ“‚µ‚‚ÂA‚ǂ̃‚[ƒh‚ɈÚs‚·‚é‚©‘I‘ð # # 0.0: May 5, 2009 by Dai ISHIJIMA (as countdown.sh) # 0.1: Apr. 11, 2011 for wpout11 # 0.2: Oct. 11, 2013 (use /dev/ttyv0, wpout13) # echo '' echo '' echo "# select console mode" echo " 0: Start wipe-out on KON2 (Kanji on console) [default]" echo " 1: Start wipe-out on KON2 fixed for some Laptops" echo " 2: Start interactive shell, stay in Native console (non Japanese)" prompt="# Just press ENTER to select default mode" count=9 while [ $count -gt 0 ]; do echo -e "\r$prompt[$count] \c" if read -t 1 keyin 1>/dev/null 2>&1 ; then count=0 fi count=$(( $count - 1 )) done case x"$count" in x0) echo -e "\r$prompt[0] 0" keyin=0 ;; esac case x"$keyin" in x0) export KON2MODE=default /usr/local/bin/kon -e /wipeout/startup.sh < /dev/ttyv0 ;; x2) /bin/sh -i ;; *) export KON2MODE=FIXed /usr/local/bin/kon2fixed FIX -e /wipeout/startup.sh < /dev/ttyv0 ;; esac exit 0 # EOF ƒn[ƒhƒfƒBƒXƒNÁ‹Žƒc[ƒ‹uwipe-outvƒo[ƒWƒ‡ƒ“ 1.3 Copyright (C) 2013 by ‚¢‚µ‚¶‚Ü™‚¾‚¢ E‚±‚̃c[ƒ‹‚ÍAƒIƒyƒŒ[ƒeƒBƒ“ƒOƒVƒXƒeƒ€‚ÉuFreeBSDv‚ð—˜—p‚µ‚Ä‚¢‚Ü‚·B E‚±‚̃c[ƒ‹‚ÍA“ú–{ŒêƒRƒ“ƒ\[ƒ‹ukon2v‚ð—˜—p‚µ‚Ä‚¢‚Ü‚·B E‚±‚̃c[ƒ‹‚ÍA“ú–{ŒêƒtƒHƒ“ƒg‚Éu‚Ï‚¤ƒtƒHƒ“ƒgv‚ð—˜—p‚µ‚Ä‚¢‚Ü‚·B Eƒƒjƒ…[•\ަ‚É‚ÍAuFreeBSDv‚Ìudialog(1)vƒRƒ}ƒ“ƒh‚ð—˜—p‚µ‚Ä‚¢‚Ü‚·B ‚±‚êˆÈŠO‚É‚àuFreeBSDv‚É•t‚·‚éŠeŽíƒ\ƒtƒgƒEƒFƒA‚ð—˜—p‚µ‚Ä‚¢‚Ü‚·B E‚±‚̃c[ƒ‹‚ÍAFreeBSD/i386‚ª“®ì‚·‚éƒRƒ“ƒsƒ…[ƒ^‚Å—˜—p‚Å‚«‚Ü‚·B E‚±‚̃c[ƒ‹‚Ńf[ƒ^‚ðÁ‹Ž‚Å‚«‚éƒn[ƒhƒfƒBƒXƒNiƒXƒgƒŒ[ƒWƒfƒoƒCƒXj‚Í ŽŸ‚̂Ƃ¨‚è‚Å‚·B EFreeBSD 8.3R‚̃Cƒ“ƒXƒg[ƒ‹—pƒJ[ƒlƒ‹‚ňµ‚¦‚é‚à‚̂̂¤‚¿A ˆÈ‰º‚ÌðŒ‚ð–ž‚½‚·‚à‚Ì EƒJ[ƒlƒ‹‚ɃfƒoƒCƒXƒhƒ‰ƒCƒo‚ª‘g‚Ýž‚Ü‚ê‚Ä‚¢‚éƒCƒ“ƒ^[ƒtƒFƒCƒX ‚ÉÚ‘±‚³‚ꂽƒn[ƒhƒfƒBƒXƒNiƒXƒgƒŒ[ƒWƒfƒoƒCƒXj EATAƒfƒBƒXƒNƒRƒ“ƒgƒ[ƒ‰ƒhƒ‰ƒCƒo ata(4) ‚ňµ‚¦‚é‚à‚Ì Eˆê”Ê“I‚ÈATA/IDEƒCƒ“ƒ^[ƒtƒFƒCƒX‚̃n[ƒhƒfƒBƒXƒN ESCSIƒ_ƒCƒŒƒNƒgƒAƒNƒZƒXƒfƒoƒCƒXƒhƒ‰ƒCƒo da(4) ‚ňµ‚¦‚é‚à‚Ì Eˆê”Ê“I‚ÈSCSIƒCƒ“ƒ^[ƒtƒFƒCƒX‚̃n[ƒhƒfƒBƒXƒN ESCSIƒRƒ“ƒgƒ[ƒ‰‚ÉÚ‘±‚³‚ꂽMOiŒõŽ¥‹CƒfƒBƒXƒNj‚Å ƒZƒNƒ^ƒTƒCƒY‚ª512ƒoƒCƒg‚Ì‚à‚Ì EFreeBSD‚ňµ‚¦‚éRAIDƒRƒ“ƒgƒ[ƒ‰iasr(4) ‚È‚Çj‚É Ú‘±‚³‚ꂽƒn[ƒhƒfƒBƒXƒN EUSBƒƒ‚ƒŠƒJ[ƒhƒAƒ_ƒvƒ^‚ÉÚ‘±‚µ‚½ ŠeŽíƒtƒ‰ƒbƒVƒ…ƒƒ‚ƒŠƒJ[ƒh‚âAUSBƒtƒ‰ƒbƒVƒ…ƒƒ‚ƒŠ‚È‚Ç‚Ì USB‘å—e—ʃXƒgƒŒ[ƒW EŽŸ‚̂悤‚ȃXƒgƒŒ[ƒWƒfƒoƒCƒX‚ɂ͑Ήž‚µ‚Ä‚¢‚Ü‚¹‚ñ EFreeBSD 8.3R‚̃Cƒ“ƒXƒg[ƒ‹—pƒJ[ƒlƒ‹‚ňµ‚¦‚È‚¢‚à‚̂⠃u[ƒgŽž‚ɳ‚µ‚­”Fޝ‚Å‚«‚È‚¢ƒXƒgƒŒ[ƒWƒfƒoƒCƒX EFreeBSD‚ňµ‚¦‚È‚¢ƒCƒ“ƒ^[ƒtƒFƒCƒX‚ÉÚ‘±‚³‚ꂽƒfƒBƒXƒN Eata(4) ‚¨‚æ‚Ñ da(4) ƒfƒoƒCƒXƒhƒ‰ƒCƒo‚ňµ‚¦‚È‚¢‚à‚Ì E‚±‚̃c[ƒ‹‚ð—˜—p‚µ‚½A‚ ‚é‚¢‚Í—˜—p‚µ‚È‚©‚Á‚½‚±‚Ƃɂæ‚Á‚Ķ‚¶‚½ ‚¢‚©‚Ȃ錋‰Ê‚ɂ‚¢‚Ä‚àAìŽÒ‚ÍÓ”C‚ðˆêØ•‰‚¢‚Ü‚¹‚ñB ƒn[ƒhƒfƒBƒXƒNÁ‹Žƒc[ƒ‹uwipe-outv version 1.3 ` ŠÈ’P‘€ì‚Ńn[ƒhƒfƒBƒXƒN‚̃f[ƒ^‚ðÁ‹Ž‚·‚é ` Copyright (C) 2013 by Dai ISHIJIMA œ‚Í‚¶‚ß‚É ƒpƒ\ƒRƒ“‚Ì÷“nŽž‚∕ªŽž‚ÉAƒn[ƒhƒfƒBƒXƒN‚̃f[ƒ^‚ªÁ‚³‚ꂸ‚É Žc‚Á‚Ä‚¢‚邱‚Æ‚ªŒ´ˆö‚ÅAŒÂlî•ñ‚âŠé‹Æî•ñ‚Ȃǂª˜R‰k‚·‚邱‚Æ‚ª–â ‘è‚Æ‚È‚Á‚Ä‚¢‚Ü‚·B ‚±‚Ìuƒn[ƒhƒfƒBƒXƒNÁ‹Žƒc[ƒ‹wwipe-outxv‚ðŽg‚¤‚ÆAŠÈ’P‚ÉA ‚©‚ˆÀ‘S‚ÉAƒn[ƒhƒfƒBƒXƒN‚É‹L˜^‚³‚ê‚Ä‚¢‚éƒf[ƒ^‚ðÁ‹Ž‚·‚邱‚Æ‚ª ‚Å‚«‚Ü‚·B‚±‚̃c[ƒ‹‚ÍAƒn[ƒhƒfƒBƒXƒN‚Ƀf[ƒ^‚ðã‘‚«‚·‚邱‚Æ‚É ‚æ‚Á‚ÄA‹L˜^‚³‚ê‚Ä‚¢‚½ƒf[ƒ^‚ðÁ‹Ž‚µ‚Ü‚·B œ‚±‚ÌCD‚Ì’†g ‚±‚ÌCD‚̓u[ƒ^ƒuƒ‹CD‚Å‚·Bƒpƒ\ƒRƒ“‚ðCD‚âDVDƒhƒ‰ƒCƒu‚©‚ç‹N“®‚Å ‚«‚邿‚¤‚Éݒ肵A‚±‚ÌCD‚©‚ç‹N“®‚·‚邯Auwipe-outv‚ª“®‚«‚Ü‚·B œƒfƒBƒXƒN‚̃f[ƒ^‚ðÁ‚· ‚±‚ÌCD‚©‚çƒu[ƒg‚·‚邯AŽŸ‚̂悤‚ȃƒjƒ…[‰æ–Ê‚ª•\ަ‚³‚ê‚Ü‚·B ƒn[ƒhƒfƒBƒXƒN‚Ì–¼‘O‚â—e—Ê (‚±‚Ì—á‚Å‚Íu/dev/ad0 vu4,294,967,296 ƒoƒCƒg (4.0G)v) ‚ÍAŽÀÛ‚É‚¨Žg‚¢‚̃n[ƒh ƒfƒBƒXƒN‚Ìî•ñ‚ª•\ަ‚³‚ê‚Ü‚·B +---------------- ƒn[ƒhƒfƒBƒXƒNÁ‹Žƒc[ƒ‹wwipe-outx ----------------+ | šƒƒCƒ“ƒƒjƒ…[š | | Œ»Ý‘I‘𒆂̃fƒBƒXƒN‚Í /dev/ad0 ‚Å‚·B | | ƒfƒBƒXƒN‚Ì—e—Ê‚Í 4,294,967,296 ƒoƒCƒg (4.0G) ‚Å‚·B | | ˆÈ‰º‚̃ƒjƒ…[‚©‚爗‚ð‘I‘ð‚µ‚Ä‚­‚¾‚³‚¢B | | | | +------------------------------------------------------------------+ | | | z 0‚ðã‘‚«‚µ‚ÄA‚±‚̃fƒBƒXƒN‚̃f[ƒ^‚ðÁ‚· | | | | h ‘€ì•û–@‚ÌŠT—v‚ð•\ަ‚·‚é | | | | n •¡”‰ñã‘‚«‚µ‚ÄA‚±‚̃fƒBƒXƒN‚̃f[ƒ^‚ð”O“ü‚è‚ÉÁ‚· | | | | m ”O“ü‚èÁ‹Ž‚Ìã‘‚«•û–@‚ð‘I‘ð‚·‚é | | | | v ƒf[ƒ^‚ªÁ‹Ž‚³‚ꂽ‚©Šm”F‚·‚é (‚‘¬^ˆê•”‚ðƒ`ƒFƒbƒN) | | | | V ƒf[ƒ^‚ªÁ‹Ž‚³‚ꂽ‚©Šm”F‚·‚é (’Êí^‘S•”‚ðƒ`ƒFƒbƒN) | | | | w Á‹ŽƒƒO‚ðƒfƒBƒXƒN‚É‘‚«ž‚Þ | | | | L “®ì‹L˜^‚ðƒtƒƒbƒs[‚É‘‚«o‚· | | | +-----v(+)---------------------------------------------------------+ | | | +----------------------------------------------------------------------+ | [ OK ] Cancel | +----------------------------------------------------------------------+ ‚±‚±‚ÅAƒn[ƒhƒfƒBƒXƒN‚Ì–¼‘O‚â—e—Ê‚ªAƒf[ƒ^‚ðÁ‹Ž‚µ‚½‚¢ƒn[ƒh ƒfƒBƒXƒN‚Ì‚à‚̂ł ‚é‚©‚Ç‚¤‚©‚ðŠm”F‚µ‚Ä‚­‚¾‚³‚¢B‚»‚̃n[ƒhƒfƒBƒX ƒN‚̃f[ƒ^‚ðÁ‹Ž‚·‚éꇂÍAu0‚ðã‘‚«‚µ‚ÄA‚±‚̃fƒBƒXƒN‚̃f[ ƒ^‚ðÁ‚·v‚ªƒnƒCƒ‰ƒCƒg‚³‚ê‚Ä‚¢‚éó‘ԂŃGƒ“ƒ^[ƒL[‚ð‰Ÿ‚µ‚Ä‚­‚¾‚³ ‚¢ (ˆÈ‰ºA‚±‚Ì‘€ì‚ðu‘I‘ð‚·‚év‚ÆÌ‚µ‚Ü‚·)B ã‚̃ƒjƒ…[‚Åu0‚ðã‘‚«‚µ‚ÄA‚±‚̃fƒBƒXƒN‚̃f[ƒ^‚ðÁ‚·v‚ð ‘I‘ð‚·‚é‚ÆAŽŸ‚̂悤‚ÉŠm”FƒƒbƒZ[ƒW‚ª•\ަ‚³‚ê‚Ü‚·B ƒfƒBƒXƒN ad0 ‚Ì ‘Sƒf[ƒ^ 4,294,967,296 ƒoƒCƒg‚ðA 0‚Åã‘‚«‚µ‚ÄÁ‹Ž‚µ‚Ü‚·B ‚æ‚낵‚¢‚Å‚·‚©? [ Yes ] No ƒf[ƒ^‚ðÁ‹Ž‚·‚éꇂÍA‚±‚±‚ÅuYesv‚ð‘I‘ð‚µ‚Ä‚­‚¾‚³‚¢BuYesv ‚ð‘I‘ð‚·‚é‚ÆA‚³‚ç‚É‚µ‚‚±‚­AˆÈ‰º‚ÌŠm”FƒƒbƒZ[ƒW‚ª•\ަ‚³‚ê‚Ü‚·B –{“–‚Éad0 (4.0G) ‚̃f[ƒ^‚ðÁ‹Ž‚µ‚Ä‚¢‚¢‚Å‚·‚©? [ Yes ] No ƒf[ƒ^‚ðÁ‹Ž‚·‚éꇂÍAÄ“xuYesv‚ð‘I‘ð‚µ‚Ä‚­‚¾‚³‚¢BuNov ‚ð‘I‘ð‚·‚é‚ÆÅ‰‚̃ƒjƒ…[‚É–ß‚è‚Ü‚·BuYesv‚ð‘I‘ð‚·‚é‚Æƒf[ƒ^ ‚ÌÁ‹Ž‚ªŽn‚Ü‚è‚Ü‚·B ƒf[ƒ^‚ÌÁ‹Ž’†‚ÍAŽŸ‚̂悤‚Éi’»ó‹µ‚ª•\ަ‚³‚ê‚Ü‚·B ƒfƒBƒXƒN ad1 ‚̃f[ƒ^‚ðÁ‹Ž‚µ‚Ä‚¢‚Ü‚·B 25% (1024/4096) I—¹ ^ 21•b Œo‰ß Žc‚è ‚¨‚æ‚»128•b 0%|############______________________________________|100% ‰æ–Ê‚Ìʼnºs‚É‚ÍAŽŸ‚̂悤‚É‘‚«ž‚Ý‘¬“x‚ª•\ަ‚³‚ê‚Ü‚·B 33554432 bytes transferred in 1.307584 secs (25661396 bytes/sec) ƒf[ƒ^‚ÌÁ‹Ž‚É—v‚·‚鎞ŠÔ‚ÍA‚¨Žg‚¢‚̃n[ƒhƒfƒBƒXƒN‚Ì—e—Ê‚âƒpƒ\ ƒRƒ“‚É‚æ‚Á‚ĈقȂè‚Ü‚·Bƒn[ƒhƒfƒBƒXƒN‚Ì—e—Ê‚ª¬‚³‚­Aƒpƒ\ƒRƒ“‚Ì ˆ—‘¬“x‚ª‘¬‚¯‚ê‚ÎAÁ‹Ž‚É—v‚·‚鎞ŠÔ‚Í’Z‚­‚È‚è‚Ü‚·B ƒf[ƒ^‚ÌÁ‹Ž‚ªI‚í‚邯A ƒfƒBƒXƒN‚̃f[ƒ^Á‹Ž‚ªI—¹‚µ‚Ü‚µ‚½ (2•ª30•b) [OK] ‚Æ‚¢‚¤ƒƒbƒZ[ƒW‚ª•\ަ‚³‚ê‚Ü‚·B‚±‚±‚ÅAƒGƒ“ƒ^[ƒL[‚ð‰Ÿ‚·‚ÆAÅ ‰‚̃ƒjƒ…[‚É–ß‚è‚Ü‚·B œ‘€ì•û–@‚ɂ‚¢‚Ä ƒƒCƒ“ƒƒjƒ…[‚©‚çu‘€ì•û–@‚ÌŠT—v‚ð•\ަ‚·‚év‚ð‘I‘ð‚·‚é‚ÆAŠÈ ’P‚È‘€ì•û–@‚Ìà–¾‚ª•\ަ‚³‚ê‚Ü‚·B œÁ‹ŽˆÈŠO‚Ì‘€ì‚ɂ‚¢‚Ä ƒƒCƒ“ƒƒjƒ…[‚Å㉺ƒJ[ƒ\ƒ‹ƒL[‚ð‰Ÿ‚·‚ÆA•ʂ̀–Ú‚ðƒnƒCƒ‰ƒCƒg ‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·BƒƒCƒ“ƒƒjƒ…[‚É‚Í8‚‚̑I‘ðŽˆ‚µ‚©•\ަ‚³‚ê‚Ä ‚¢‚Ü‚¹‚ñ‚ªA㉺ƒJ[ƒ\ƒ‹ƒL[‚ð‰Ÿ‚·‚ƃXƒNƒ[ƒ‹‚É‚æ‚èAŠeŽí‘€ìƒ ƒjƒ…[‚ª•\ަ‚³‚ê‚Ü‚·Buƒn[ƒhƒfƒBƒXƒNÁ‹Žƒc[ƒ‹wwipe-outxv‚Å ‚ÍAƒf[ƒ^Á‹ŽˆÈŠO‚É‚àAÁ‹Ž‚³‚ê‚Ä‚¢‚é‚©‚Ç‚¤‚©‚ÌŠm”FA“®ì‹L˜^‚Ì ‘‚«ž‚ÝAƒn[ƒhƒfƒBƒXƒN‚̃Rƒs[AƒVƒFƒ‹‚Ì‹N“®AÄ‹N“®AƒVƒƒƒbƒg ƒ_ƒEƒ“‚Ȃǂ̑€ìƒƒjƒ…[‚ª—pˆÓ‚³‚ê‚Ä‚¢‚Ü‚·BˆÈ‰º‚ɃƒCƒ“ƒƒjƒ…[ ‚©‚ç‘I‘ð‚Å‚«‚é‘€ì‚̈ꗗ‚ðŽ¦‚µ‚Ü‚·B E0‚ðã‘‚«‚µ‚ÄA‚±‚̃fƒBƒXƒN‚̃f[ƒ^‚ðÁ‚· E‘€ì•û–@‚ÌŠT—v‚ð•\ަ‚·‚é E•¡”‰ñã‘‚«‚µ‚ÄA‚±‚̃fƒBƒXƒN‚̃f[ƒ^‚ð”O“ü‚è‚ÉÁ‚· E”O“ü‚èÁ‹Ž‚Ìã‘‚«•û–@‚ð‘I‘ð‚·‚é Eƒf[ƒ^‚ªÁ‹Ž‚³‚ꂽ‚©Šm”F‚·‚éi‚‘¬^ˆê•”‚ðƒ`ƒFƒbƒNj Eƒf[ƒ^‚ªÁ‹Ž‚³‚ꂽ‚©Šm”F‚·‚éi’Êí^‘S•”‚ðƒ`ƒFƒbƒNj EÁ‹ŽƒƒO‚ðƒfƒBƒXƒN‚É‘‚«ž‚Þ E“®ì‹L˜^‚ðƒtƒƒbƒs[‚É‘‚«o‚· E•ʂ̃fƒBƒXƒN‚ð‘I‘ð‚·‚é EƒfƒBƒXƒN‚̃f[ƒ^‚ð•\ަ‚·‚é Eƒf[ƒ^‚ð•\ަ‚·‚éƒZƒNƒ^‚ÌŽw’è Euwwipe-outx‚ɂ‚¢‚Äv‚ðŒ©‚é E‹N“®Žž‚̃VƒXƒeƒ€ƒƒbƒZ[ƒW‚ðŠm”F‚·‚é EƒfƒBƒXƒN‚ðƒRƒs[‚·‚éi‚‘¬^ƒoƒbƒNƒAƒbƒvŒü‚¯j EƒfƒBƒXƒN‚ðƒRƒs[‚·‚éi’ᑬ^ƒf[ƒ^ƒTƒ‹ƒx[ƒWŒü‚¯j E1‚ðã‘‚«‚µ‚ÄA‚±‚̃fƒBƒXƒN‚̃f[ƒ^‚ðÁ‚· Eƒ‰ƒ“ƒ_ƒ€ƒpƒ^[ƒ“‚ðã‘‚«‚µ‚ÄA‚±‚̃fƒBƒXƒN‚̃f[ƒ^‚ðÁ‚· Eƒpƒ^[ƒ“‚̕│ðã‘‚«‚µ‚ÄA‚±‚̃fƒBƒXƒN‚̃f[ƒ^‚ðÁ‚· Eƒ‰ƒ“ƒ_ƒ€ƒf[ƒ^‚ðã‘‚«‚µ‚ÄA‚±‚̃fƒBƒXƒN‚̃f[ƒ^‚ðÁ‚· E“®ì‹L˜^‚ð•\ަ‚·‚é EƒfƒBƒXƒN‚ÌŽ©ŒÈf’fî•ñ (SMARTî•ñ) ‚ð•\ަ‚·‚é EƒVƒFƒ‹ishj‚ð‹N“®‚·‚é EƒVƒFƒ‹icshj‚ð‹N“®‚·‚é ECD-ROM‚ðmount‚·‚é ECD-ROM‚ðumount‚·‚é EMBR *‚Ì‚Ý* ‚ðÁ‹Ž‚·‚é EƒVƒƒƒbƒgƒ_ƒEƒ“‚·‚é EÄ‹N“®‚·‚é œ‘Ήž‹@Ží‚ɂ‚¢‚Ä E–{ƒc[ƒ‹‚ÍAFreeBSD/i386‚ª“®ì‚·‚éƒRƒ“ƒsƒ…[ƒ^‚Å—˜—p‚Å‚«‚Ü‚·B E–{ƒc[ƒ‹‚Ńf[ƒ^‚ðÁ‹Ž‚Å‚«‚éƒXƒgƒŒ[ƒWƒfƒoƒCƒX‚ÍŽŸ‚̂Ƃ¨‚è‚Å‚·B EFreeBSD‚̃J[ƒlƒ‹ (ƒCƒ“ƒXƒg[ƒ‹—pCD‚̃J[ƒlƒ‹) ‚ňµ‚¦‚é‚à ‚Ì‚Ì‚¤‚¿AˆÈ‰º‚ÌðŒ‚ð–ž‚½‚·‚à‚Ì EATAƒfƒBƒXƒNƒRƒ“ƒgƒ[ƒ‰ƒhƒ‰ƒCƒo (ata(4)) ‚ňµ‚¦‚é‚à‚Ì Eˆê”Ê“I‚ÈS-ATA/P-ATAƒCƒ“ƒ^[ƒtƒFƒCƒX‚̃n[ƒhƒfƒBƒXƒN E“¯ASSDƒhƒ‰ƒCƒu ESCSIƒ_ƒCƒŒƒNƒgƒAƒNƒZƒXƒfƒoƒCƒXƒhƒ‰ƒCƒo (da(4)) ‚ňµ‚¦ ‚é‚à‚Ì Eˆê”Ê“I‚ÈSCSIƒCƒ“ƒ^[ƒtƒFƒCƒX‚̃n[ƒhƒfƒBƒXƒN EFreeBSD‚ňµ‚¦‚éRAIDƒRƒ“ƒgƒ[ƒ‰ (asr(4)) ‚ȂǂÉÚ‘± ‚³‚ꂽƒn[ƒhƒfƒBƒXƒN EUSBƒƒ‚ƒŠƒJ[ƒhƒAƒ_ƒvƒ^‚ÉÚ‘±‚µ‚½ŠeŽíƒƒ‚ƒŠƒJ[ƒh‚âA USBƒtƒ‰ƒbƒVƒ…ƒƒ‚ƒŠ‚ȂǂÌUSB‘å—e—ʃXƒgƒŒ[ƒW ¦ad(4), da(4), asr(4) ‚ȂǂÌÚׂɂ‚¢‚Ä‚ÍAFreeBSD‚̃}ƒjƒ…ƒA ƒ‹ƒy[ƒW‚È‚Ç‚ð‚²——‚­‚¾‚³‚¢B œ“®ì‚Ì‹L˜^‚̕ۑ¶‚ɂ‚¢‚Ä uƒn[ƒhƒfƒBƒXƒNÁ‹Žƒc[ƒ‹wwipe-outxv‚Å‚ÍA“®ì‚Ì‹L˜^‚ð•Û‘¶ ‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B•Û‘¶‰Â”\‚ȃƒfƒBƒA‚̓tƒƒbƒs[ƒfƒBƒXƒN‚âUSB ƒƒ‚ƒŠ‚Ȃǂł·B“®ì‚Ì‹L˜^‚ð•Û‘¶‚·‚郃fƒBƒA (ƒtƒƒbƒs[‚âUSBƒ ƒ‚ƒŠ) ‚ÍA‚ ‚ç‚©‚¶‚ßFATƒtƒH[ƒ}ƒbƒg‚ðs‚¢AuWIPE-OUTv‚Æ‚¢‚¤–¼ ‘O‚̃tƒHƒ‹ƒ_‚ðƒ‹[ƒgƒfƒBƒŒƒNƒgƒŠ‚É쬂µ‚Ä‚¨‚¢‚Ä‚­‚¾‚³‚¢B œ‚¨‚±‚Æ‚í‚è E–{ƒc[ƒ‹‚ÍAOS‚Æ‚µ‚ÄFreeBSD‚ð—˜—p‚µ‚Ä‚¢‚Ü‚·B E–{ƒc[ƒ‹‚̓tƒŠ[ƒEƒFƒA‚Å‚·B’˜ìŒ ‚ÍAìŽÒ‚Å‚ ‚é ‚¢‚µ‚¶‚Ü™‚¾‚¢ ‚ª•Û—L‚µ‚Ä‚¢‚Ü‚·B E–{ƒc[ƒ‹‚ð—˜—p‚µ‚½A‚ ‚é‚¢‚Í—˜—p‚µ‚È‚©‚Á‚½‚±‚Ƃɂæ‚Á‚Ķ‚¶‚½ ‚¢‚©‚Ȃ錋‰Ê‚ɂ‚¢‚Ä‚àAìŽÒ‚ÍÓ”C‚ðˆêØ•‰‚¢‚Ü‚¹‚ñB œŽQl•¶Œ£ EŽÐ’c–@l “dŽqî•ñ‹ZpŽY‹Æ‹¦‰ï (http://www.jeita.or.jp/japanese/index.htm) uƒpƒ\ƒRƒ“‚Ì”pŠüE÷“nŽž‚É‚¨‚¯‚éƒn[ƒhƒfƒBƒXƒNã‚̃f[ƒ^Á‹Ž ‚ÉŠÖ‚·‚é—¯ˆÓŽ–€v(http://it.jeita.or.jp/perinfo/committee/ pc/JEITA_HDDdata100219F.pdf) œ–{ƒc[ƒ‹‚Ì“üŽè•û–@ –{ƒc[ƒ‹‚¨‚æ‚ÑŽo–…•i‚ÍAìŽÒ‚̃EƒFƒuƒTƒCƒg‚ÅŒöŠJ‚µ‚Ä‚¢‚Ü‚·BƒA ƒhƒŒƒX‚Í http://hp.vector.co.jp/authors/VA004814/ ‚Å‚·B•K—v‚ɉž ‚¶‚ă_ƒEƒ“ƒ[ƒh‚µ‚Ä‚­‚¾‚³‚¢B ƒn[ƒhƒfƒBƒXƒNÁ‹Žƒc[ƒ‹uwipe-outvv1.3 Copyright (C) 2013 by Dai ISHIJIMA ‚à‚µA‚ ‚È‚½‚ª‚±‚̃tƒ@ƒCƒ‹‚ðuwipe-outv‚ð‹N“®‚µ‚½ƒ}ƒVƒ“‚Å ƒƒCƒ“ƒƒjƒ…[‚©‚猩‚邱‚Æ‚ª‚Å‚«‚½‚Æ‚·‚ê‚ÎA—]Œv‚Èà–¾‚Í•s—v ‚©‚à‚µ‚ê‚Ü‚¹‚ñB yƒƒCƒ“ƒƒjƒ…[‚ł̑€ìz ƒƒCƒ“ƒƒjƒ…[‰æ–ʂ̑€ì‚ÌŠî–{‚ÍA E㉺ƒJ[ƒ\ƒ‹ƒL[‚É‚æ‚ès‚¢‚½‚¢€–Ú‚ð‘I‘ð EƒGƒ“ƒ^[ƒL[‚É‚æ‚è‘I‘ð‚µ‚½€–Ú‚ðŽÀs ‚Å‚·B‘I‘ð‚³‚ê‚Ä‚¢‚逖ڂ̓nƒCƒ‰ƒCƒg•\ަ‚³‚ê‚Ä‚¢‚Ü‚·Buwipe- outv‹N“®Žž‚ÍAu0‚ðã‘‚«‚µ‚Äcv‚ªƒnƒCƒ‰ƒCƒg•\ަ‚³‚ê‚Ä‚¢‚é ‚Í‚¸‚Å‚·B ƒƒCƒ“ƒƒjƒ…[‚©‚炱‚̉æ–Ê‚ð•\ަ‚³‚¹‚é‚É‚ÍA‰ºƒJ[ƒ\ƒ‹ƒL[ ‚ðˆê‰ñ‚¾‚¯‰Ÿ‚µAƒGƒ“ƒ^[ƒL[‚ð‰Ÿ‚µ‚Ü‚·B‰æ–ʂɕ\ަ‚µ‚«‚ê‚È‚¢ •”•ª‚ÍA㉺ƒJ[ƒ\ƒ‹ƒL[‚ð‰½“x‚©‰Ÿ‚·‚ÆAƒXƒNƒ[ƒ‹‚µ‚óë ‚Ü‚·B ‚½‚Æ‚¦‚ÎAƒƒCƒ“ƒƒjƒ…[‚É‚ÍuÄ‹N“®‚·‚év‚Æ‚¢‚¤€–Ú‚ª‚ ‚è ‚Ü‚·‚ªA‚±‚ê‚͈ê”Ô‰º‚ɉB‚ê‚Ä‚¢‚Ü‚·B‚±‚ê‚ð•\ަ‚·‚é‚É‚ÍA‰½“x ‚à‰ºƒJ[ƒ\ƒ‹ƒL[‚ð‰Ÿ‚µ‚Ă݂Ă­‚¾‚³‚¢B ƒXƒNƒ[ƒ‹‚µ‚Äã‚ÉÁ‚¦‚Ä‚¢‚Á‚½€–Ú‚ð•\ަ‚³‚¹‚é‚É‚ÍAãƒJ[ ƒ\ƒ‹ƒL[‚ð‰Ÿ‚µ‚Ä‚­‚¾‚³‚¢B yƒfƒBƒXƒN‚É‹L˜^‚³‚ꂽî•ñ‚ðÁ‚·‚É‚Íz u0‚ðã‘‚«‚µ‚Äcv‚̂悤‚ÈAucÁ‚·v‘€ì‚ðƒƒCƒ“ƒƒjƒ…[ ‚©‚ç‘I‘ð‚µAƒGƒ“ƒ^[ƒL[‚ð‰Ÿ‚µ‚Ä‚­‚¾‚³‚¢B uÁ‚·v‘€ì‚ðŽÀs‚·‚邯AŠm”F‰æ–Ê‚ª•\ަ‚³‚ê‚Ü‚·B‚±‚̂Ƃ«A ƒfƒBƒXƒN‚ÌŒ^”Ô‚â—e—ʂȂǂª•\ަ‚³‚ê‚é‚Ì‚ÅAÁ‚µ‚½‚¢ƒfƒBƒXƒN‚Å ‚ ‚é‚©‚Ç‚¤‚©‚ðŠm”F‚µ‚Ä‚­‚¾‚³‚¢B•\ަ‚³‚ê‚Ä‚¢‚é“à—e‚ðŠm”F‚µ‚½ ‚çƒGƒ“ƒ^[ƒL[‚ð‰Ÿ‚µ‚Ä‚­‚¾‚³‚¢B ʼn‚ÌŠm”F‰æ–ʂŃGƒ“ƒ^[ƒL[‚ð‰Ÿ‚µ‚½‚çAÄ“x‚µ‚‚±‚­Šm”F‰æ –Ê‚ª‚łĂ«‚Ü‚·B–{“–‚ÉÁ‚µ‚Ä‚à‚æ‚¢ê‡‚ɂ̂݃Gƒ“ƒ^[ƒL[‚ð‰Ÿ ‚µ‚Ä‚­‚¾‚³‚¢B “ñ‰ñ–Ú‚ÌŠm”F‰æ–ʂŃGƒ“ƒ^[ƒL[‚ð‰Ÿ‚·‚ÆÁ‹Ž‚ªŽn‚Ü‚è‚Ü‚·B’Ê íAƒfƒBƒXƒN‚ÌÁ‹Ž‚ɂ͔•ª‚©‚甎žŠÔ’ö“x‚ÌŽžŠÔ‚ª‚©‚©‚è‚Ü‚·B Á‹Ž‚ª‚Í‚¶‚Ü‚Á‚Ä‚µ‚΂炭‚·‚邯AŽc‚芗vŽžŠÔ‚Ì—\‘ª’l‚ª•\ަ‚³ ‚ê‚Ü‚·B Á‹Ž‚ªI—¹‚µ‚½‚çAÁ‹Ž‚É‚©‚©‚Á‚½ŽžŠÔ‚ª•\ަ‚³‚ê‚Ü‚·B‚±‚±‚Å ƒGƒ“ƒ^[ƒL[‚ð‰Ÿ‚·‚ÆAƒƒCƒ“ƒƒjƒ…[‚É–ß‚è‚Ü‚·B ‚È‚¨AÁ‹Ž‚ªˆêu‚ÅI—¹‚·‚邱‚Ƃ͂ ‚蓾‚È‚¢‚Í‚¸‚Å‚·B‚»‚Ìê ‡‚ÍA–{ƒ\ƒtƒguwipe-outv‚̃oƒO‚©‚à‚µ‚ê‚Ü‚¹‚ñBuƒf[ƒ^‚ªÁ ‹Ž‚³‚ꂽ‚©Šm”F‚·‚év‚ð‘I‚ñ‚Å–{“–‚ÉÁ‚¦‚½‚©Šm”F‚µ‚Ä‚­‚¾‚³‚¢B y“®ì‹L˜^‚ð•Û‘¶‚·‚é‚É‚Íz –{ƒ\ƒtƒguwipe-outv‚Ì‹““®‚ª‚¨‚©‚µ‚¢‚ÆŠ´‚¶‚ç‚ꂽꇂÍAƒ ƒCƒ“ƒƒjƒ…[‚©‚çu“®ì‹L˜^‚ðƒtƒƒbƒs[‚É‘‚«o‚·v‚ð‘I‚ñ‚Å‚­ ‚¾‚³‚¢Bƒƒjƒ…[‚É‘‚©‚ê‚Ä‚¢‚邯‚¨‚èA“®ì‹L˜^‚ðƒtƒƒbƒs[‚É ‹L˜^‚Å‚«‚Ü‚·B “®ì‹L˜^‚ð•Û‘¶‚·‚邱‚Æ‚ª‚Å‚«‚é‚Ì‚ÍAƒtƒƒbƒs[‚¾‚¯‚ł͂ ‚è ‚Ü‚¹‚ñB‚¢‚í‚ä‚éUSBƒƒ‚ƒŠ‚Ȃǂ̃ƒfƒBƒA‚à—˜—p‚Å‚«‚Ü‚·B‚È‚¨A “®ì‹L˜^‚ð•Û‘¶‚·‚éƒtƒƒbƒs[i‚âUSBƒƒ‚ƒŠj‚É‚ÍA‚ ‚ç‚©‚¶‚ß u\WIPE-OUT\v‚Æ‚¢‚¤ƒtƒHƒ‹ƒ_‚ð쬂µ‚Ä‚¨‚¢‚Ä‚­‚¾‚³‚¢B yƒƒCƒ“ƒƒjƒ…[‚É–ß‚é‚É‚Íz ‚±‚̉æ–ʂ𕂶‚ăƒCƒ“ƒƒjƒ…[‚É–ß‚é‚É‚ÍAƒGƒ“ƒ^[ƒL[‚ð‰Ÿ ‚µ‚Ä‚­‚¾‚³‚¢B ƒn[ƒhƒfƒBƒXƒNÁ‹Žƒc[ƒ‹uwipe-outvv1.3 Copyright (C) 2013 by Dai ISHIJIMA # vt100|dec-vt100|vt100-am|vt100am|dec vt100:\ :do=2\E[B:co#80:li#24:cl=50\E[H\E[J:sf=2*\ED:\ :le=^H:bs:am:cm=5\E[%i%d;%dH:nd=2\E[C:up=2\E[A:\ :ce=3\E[K:cd=50\E[J:so=2\E[7m:se=2\E[m:us=2\E[4m:ue=2\E[m:\ :md=2\E[1m:mr=2\E[7m:mb=2\E[5m:me=2\E[m:\ :is=\E>\E[?1;3;4;5l\E[?7;8h\E[1;24r\E[24;1H:\ :if=/usr/share/tabset/vt100:nw=2\EE:ho=\E[H:\ :as=2\E(0:ae=2\E(B:\ :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||:\ :rs=\E>\E[?1;3;4;5l\E[?7;8h:ks=\E[?1h\E=:ke=\E[?1l\E>:\ :ku=\EOA:kd=\EOB:kr=\EOC:kl=\EOD:kb=\177:\ :k0=\EOy:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\EOt:\ :k6=\EOu:k7=\EOv:k8=\EOl:k9=\EOw:k;=\EOx:@8=\EOM:\ :K1=\EOq:K2=\EOr:K3=\EOs:K4=\EOp:K5=\EOn:pt:sr=2*\EM:xn:\ :sc=2\E7:rc=2\E8:cs=5\E[%i%d;%dr:UP=2\E[%dA:DO=2\E[%dB:RI=2\E[%dC:\ :LE=2\E[%dD:ct=2\E[3g:st=2\EH:ta=^I:ms:bl=^G:cr=^M:eo:it#8:\ :RA=\E[?7l:SA=\E[?7h: # vt100-color|vt100-co|vt100 emulator with ANSI colors:\ :pa#64:Co#8:AF=\E[3%dm:AB=\E[4%dm:op=\E[39;49m\E[m:tc=vt100: # kons25jx|kon3jx|jkons3jx|kons24-jis1983-j:ac=q\055x\174:tc=vt100-color