÷ƒ’À;è TeX output 2003.11.26:1334‹ÿÿÿÿ Û_2 ý ~? ÕÁ ýZݺóþÖëI½q½qecss2074¼Ro›ˆ’ot–fÑRAID“HO‘ÿwmWTO“co˜okb˜o˜okŽ¤ ®„ØcÕÁGŽŽ¡ó 1ê± ecrm1000¹Micš¸èhael–U A.“Robin˜ton,“ó½HЃ ecti1000½michael@bzs.or‘ÿ}/g’ÑÇš¹v1.07,“25“marzo“1998Ž¡Ÿ&°óŒ6 ecss1000¾Questo–ã¢došGcumento“€è“un“ricetta¸èrio‘¸êp˜er“la“creazione“di“un“lesystem“raid“montato“come“ro˜ot“(ro˜ot“raid)“e“delŽ¡suo–Ãäcompagno“ideale,›ß”un“sistema“di“recupGero,˜usando“initrd.‘½ËLe“istruzioni“sono“complete“e“date“passo“a“passo,Ž¡sia–DàpšGer“disp˜ositivi“md0“raid1“che“raid5.‘lP¸èer“ciascun“passo“viene“data“una“spiegazione“di“ci€ò“che“con“esso“si“vuoleŽ¡ottenere.‘:,In–¯#questa“revisione“c'€è“anche“un“le“generico“ó»y&³ ecsx1000¿linuxrc“¾pGer“initrd“che“pu€ò“essere“congurato“con“un“singoloŽ¡le–lòdi“p•Go“che–lòrighe“4.13“(/etc/raidb•Go“ot.conf‘±¼)›lòp“er˜congurazioni˜raid1˜e˜raid5.‘¸öLa˜traduzione˜italiana˜€è˜curata˜daŽ¡Samuele–U Maš¸èretti“óø8‹ ecsi1000Às.ma˜retti@tiscalinet.itŽŸ(Àœó&Lt$ffffecbx1440ÂCon•cten“tsŽ©Øó]fŒ ecbx1000Ã1Ž‘ÿIn®>troQÂduzione’€Ó3ŽŽ¤ؼ‘ÿ¹1.1Ž‘%ý¡Do•¸èv“e–U ottenere“copie“aggiornate“di“questo“doGcumen¸èto.‘Ó‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘wï3ŽŽ¡‘ÿ1.2Ž‘%ý¡Bug‘—+‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘wï3ŽŽ¡‘ÿ1.3Ž‘%ý¡Riconoscimen¸èti‘à‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘wï3ŽŽ¡‘ÿ1.4Ž‘%ý¡Informazioni–U di“cop•¸èyrigh“t–U (in“lingua“originale)‘:[‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘wï4ŽŽ¦Ã2Ž‘ÿDi–Õcosa“hai“bisogno“PRIMA“DI“COMINCIARE’Ï»4ŽŽ¡‘ÿ¹2.1Ž‘%ý¡P•¸èacc“hetti‘U necessari‘ö‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘wï4ŽŽ¡‘ÿ2.2Ž‘%ý¡Altre–U implemen¸ètazioni“simili.‘b;‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘wï5ŽŽ¡‘ÿ2.3Ž‘%ý¡DoGcumen¸ètazione–U “Letture“raccomandate‘‡¯‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘wï5ŽŽ¡‘ÿ2.4Ž‘%ý¡Risorse‘U RAID‘ ‡‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘wï6ŽŽ¦Ã3Ž‘ÿP•®>artenza›Õv“eloQÂce˜con˜R“OOT˜RAID’p6ŽŽ¦4Ž‘ÿinitrd–Õ-“Ricette“pšQÂer“il“RAID“mon®>tato“come“ro˜ot’Ͼ8ŽŽ¡‘ÿ¹4.1Ž‘%ý¡Note–U sulla“sicurezza‘¶‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘wï8ŽŽ¡‘ÿ4.2Ž‘%ý¡Compilare–U il“Kernel“e“gli“strumen¸èti“Raid‘•ï‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘wï8ŽŽ¡‘ÿ4.3Ž‘%ý¡Costruire–U i“lesystem“½initr‘ÿ}/d‘]—¹di“recupšGero“e“di“b˜o˜ot.‘b¶‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘wï8ŽŽ¡‘ÿ4.4Ž‘%ý¡Istruzioni–U P›ÿ*¸ASSO“dopGo“P˜ASSO‘T{‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘wï9ŽŽ¡‘ÿ4.5Ž‘%ý¡Installa–U la“distribuzione“-“SpšGecico“p˜er“Slac•¸èkw“are‘ó‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘wï9ŽŽ¡‘ÿ4.6Ž‘%ý¡Installa–U lin¸èux“Ãpthreads‘"ã‘ü¹.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?12ŽŽ¡‘ÿ4.7Ž‘%ý¡Installazione–U degli“strumen¸èti“Raid‘j‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?13ŽŽ¡‘ÿ4.8Ž‘%ý¡Rim•¸èuo“v“ere–U directory“e“le“non“necessari“dal“n•¸èuo“v“o‘U lesystem.‘çc‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?13ŽŽ¡‘ÿ4.9Ž‘%ý¡Creare‘U /dev/md½x‘™c‘ü¹.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?13ŽŽ¡‘ÿ4.10Ž‘%ý¡Creare–U un“lesystem“utilizzabile“pGer“½initr‘ÿ}/d‘ñ9‘ü¹.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?14ŽŽ¡‘%ý¡4.10.1Ž‘EûŸCreare–U il“lesystem“di“BOOT/RESCUE“óë ecbi1000Äinitr‘ÿiHd‘3‘ü¹.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?14ŽŽ¡‘ÿ4.11Ž‘%ý¡Eseguire–U il“b•Go“ot–U del“dispGositivš¸èo“RAID“-“lin˜uxrc‘e ‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?15ŽŽŽŽŒ‹* Û_2 ý ~?Ÿ„€ÕÁGŽÃCONTENTS’â¹2ŽŽ ÕÁ ýV¯‘ÿ4.12Ž‘%ý¡MošGdicare–U gli“script“rc“p˜er“lo“sh•¸èutdo“wn‘‡w‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?19ŽŽ¤ؼ‘ÿ4.13Ž‘%ý¡Congurare–U RAIDBOOT“-“raidb•Go“ot.conf‘ —‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?20ŽŽ¡‘ÿ4.14Ž‘%ý¡Le–U v‘ÿqÐariabili“del“k¸èernel“pGer“RESCUE“e“RAID‘³‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?21ŽŽ©ØÃ5Ž‘ÿCongurare–Õil“sistema“RAID.’'9³23ŽŽ¡‘ÿ¹5.1Ž‘%ý¡SpGecicš¸èhe–U di“sistema.‘q€Sono“stati“congurati“due“sistemi“con“sc˜hede“madri“iden˜tic˜he.‘ò‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?23ŽŽ¡‘ÿ5.2Ž‘%ý¡Pš¸èartitionare–U i“disc˜hi“rigidi.‘¾g‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?23ŽŽ¦Ã6Ž‘ÿCostruire–Õil“le“system“RAID.’#+`25ŽŽ¡‘ÿ¹6.1Ž‘%ý¡/etc/raid5.conf‘ »‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?25ŽŽ¡‘ÿ6.2Ž‘%ý¡/etc/raid1.conf‘ »‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?26ŽŽ¡‘ÿ6.3Ž‘%ý¡Pro•Gcedure›U p“er˜la˜costruzione˜passo˜a˜passo˜di˜un˜le˜system˜RAID.‘¯‹‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?26ŽŽ¦Ã7Ž‘ÿUn'ultima‘Õcosa.’liI28ŽŽ¦8Ž‘ÿAppšQÂendice–ÕA.“-“Lo“sh•®>utdo“wn–Õp˜er“md0“di“Boh®>umil“Chalupa’’ÑŽ28ŽŽ¦9Ž‘ÿAppQÂendice–ÕB.“-“Script“di“SHUTDO®>WN“di“esempio’¼&32ŽŽ¡‘ÿ¹9.1Ž‘%ý¡Slac•¸èkw“are–U -“/etc/rc.d/rc.6‘áÓ‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?32ŽŽ¡‘ÿ9.2Ž‘%ý¡Debian–U bšGo“-“/etc/init.d/halt“and“/etc/init.d/reb˜o˜ot‘‰O‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?34ŽŽ¡‘%ý¡9.2.1Ž‘EûŸ/etc/init.d/halt‘¯¡‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?34ŽŽ¡‘%ý¡9.2.2Ž‘EûŸ/etc/init.d/reb•Go“ot‘•‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?36ŽŽ¦Ã10Ž‘ÿAppQÂendice–ÕC.“-“altri“le“di“setup’Þ¢37ŽŽ¡‘ÿ¹10.1Ž‘%ý¡linš¸èuxrc–U 4.11“(lin˜uxrc“le)‘hÏ‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?37ŽŽ¡‘ÿ10.2Ž‘%ý¡loadlin–U “linš¸èux.bat“le“-“b•Go“ot.par–U 4.14“(lin˜ux.bat“le“-“b•Go“ot.par)‘‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?37ŽŽ¡‘ÿ10.3Ž‘%ý¡lin•¸èuxthreads›U Mak“ele.di˜4.6˜(lin“uxthreads˜Mak“ele.di‘Ç)‘Š_‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?37ŽŽ¡‘ÿ10.4Ž‘%ý¡raid1.conf–U 6.2“(raid1.conf‘Ç)‘h÷‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?37ŽŽ¡‘ÿ10.5Ž‘%ý¡raid5.conf–U 6.1“(raid5.conf‘Ç)‘h÷‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?37ŽŽ¡‘ÿ10.6Ž‘%ý¡raidb•Go“ot.conf–U 4.13“(raidb•Go“ot.conf‘Ç)‘M¯‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?37ŽŽ¡‘ÿ10.7Ž‘%ý¡rc.raidoš¸èwn–U 13“(rc.raido˜wn)‘Zß‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?37ŽŽ¦Ã11Ž‘ÿAppQÂendice–ÕD.“-“script“linš®>uxrc“e“sh˜utdo˜wn“obsoleti’À6å37ŽŽ¡‘ÿ¹11.1Ž‘%ý¡La•¸èv“oro–U obsoleto“-“lin¸èuxrc‘ïó‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?37ŽŽ¡‘ÿ11.2Ž‘%ý¡La•¸èv“oro–U obsoleto“-“script“di“sh•¸èutdo“wn‘*›‘ü.ŽŽ–Æè‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ“‘ü.ŽŽ‘x?39ŽŽ¦Ã12Ž‘ÿAppšQÂendice–ÕE.“-“La“patc®>h“di“Gadi“p˜er“il“raid“stop“p˜er“il“kš®>ernel“lin˜ux‘hòe42ŽŽ¦13Ž‘ÿAppQÂendice–ÕF.“-“rc.raido®>wn’7 l42ŽŽ¦14Ž‘ÿAppQÂendice–ÕG.“-“teoria“del“funzionamenš®>to“di“lin˜uxrc’¹QH44ŽŽŽŽŒ‹$ó Û_2 ý ~?Ÿ„€ÕÁGŽÃ1.‘ñ8In®>troQÂduzione’~¯œ¹3ŽŽ ÕÁ ýV¯Â1Ž‘ÁInctropœduzioneŽŸ¿:¹Si–ï‚assume“cš¸èhe“il“lettore“abbia“familiarit€à“con“i“v‘ÿqÐari“tipi“di“implemen˜tazione“raid,‘i“loro“v‘ÿqÐan˜taggi“ed“eettiŽ¤ ®collaterali.‘›ïQuesto–cEnon“€è“un“tutorial,‘fÎsolo“un“insieme“di“istruzioni“su“come“implemen¸ètare“un“lesystem“raidŽ¡su–žQun“sistema“linš¸èux.‘MT‘ÿ*¸utte“le“informazioni“necessarie“pGer“familiarizzare“con“raid“su“lin˜ux“sono“elencate“quiŽ¡direttamenš¸ète–U o“pGer“riferimen˜to:‘q€pGer“fa˜v˜ore“leggetele“prima“di“in˜viare“domande“pGer“e-mail.Ž©"•šó¥!¢N ecbx1200Æ1.1Ž‘¾Do• v“e–¸ottenere“copie“aggiornate“di“questo“do_úcumen to.ŽŸMª¹RoGot-RAID-HO¸èWTOŽŸؼDispšGonibile–U in“formato“LaT‘ÿ*¸eX“(p˜er“Dš¸èVI“e“P˜ostScript),“testo“e“HTML.Ž¤`‘'ÿ½sunsite.unc.e‘ÿ}/du/mdw/HO¾˜WTO/Ž¡¹DispGonibile–U in“formato“SGML“e“HTML.Ž¡‘'ÿ½ftp.bizsystems.c–ÿ}/om/pub/r“aid/Ž¦Æ1.2Ž‘¾BugŽŸMª¹Al–˜momenš¸èto“della“stesura“di“questo“doGcumen˜to“il“problema“di“fermare“un“dispGositiv˜o“RAID‘˜ mon˜tato“comeŽ¤ ®rošGot–,non“€è“ancora“stato“risolto“in“mo˜do“so˜ddisfacen¸ète.‘VÙUn“meto˜do“p˜er“eliminare“il“bisogno“di“eseguire“c¸èkraidŽ¡(c•¸èhe›÷¼ric“hiede˜un˜sacco˜di˜temp•Go)˜ad˜ogni˜b“o“ot,‘ iprop“osto˜da˜Ed˜W‘ÿ*¸elb“on˜e˜implemen•¸ètato˜da˜Boh“umil˜ChalupaŽ¡si–1¯troš¸èv‘ÿqÐa“in“questo“doGcumen˜to.‘e°Senza“tale“metošGdo“€è“necessario“eseguire“Ãc®>kraid“¹sul“disp˜ositivš¸èo“Ãmd“¹ogni“v˜oltaŽ¡cš¸èhe–1‘viene“fatto“un“reb•Go“ot–1‘del“sistema.‘e¦Su“un“arra˜y“troppGo“grande“questo“pu€ò“causare“un“grande“scadimen˜toŽ¡delle–fùprestazioni.‘§ Sul“mio“dispGositivš¸èo“RAID1“da“6“giga,‘kpinstallato“su“una“macc˜hina“con“proGcessore“P˜en˜tiumŽ¡166– tcon“128“mega“di“ram“ci“vuole“bšGen“pi€ù“di“mezz'ora“p˜er“eseguire“c¸èkraid“:-(“dop˜o“ogni“reb˜o˜ot.‘—|Sul“mioŽ¡arraš¸èy–U RAID5“da“13“giga“con“adattatore“scsi“da“20m˜b/sec“ci“vuole“pi€ù“di“un'ora.Ž©ؼIl–|ÖmetoGdo“consiste“nel“memorizzare,›ÆÄad“ogni“sh•¸èutdo“wn,˜lo–|Östato“dell'arraš¸èy“sul“dispGositiv˜o“di“b•Go“ot–|Öv˜ero“eŽ¡proprio–¬Ìe“confronš¸ètarlo“con“uno“stato“di“riferimen˜to‘‚l€à“memorizzato“quando“il“sistema“€è“stato“costruito“laŽ¡prima–Wžvš¸èolta.‘xúSe“al“reb•Go“ot–Wži“due“stati“coincidono“il“sup•Gerblo“c˜k–Wždell'arra˜y“viene“ricostruito“al“b•Go“ot‘Wžsuccessiv˜o,Ž¡altrimenš¸èti–\bl'opGeratore“viene“a˜vvisato“dell'errore“di“stato“e“viene“lasciato“in“esecuzione“il“sistema“di“recupGeroŽ¡con–U tutti“gli“strumen¸èti“raid.Ž¦La–Çlricostruzione“del“sup•Gerblo“cš¸èk–Çlfa“s€ì“c˜he“il“sistema“ignori“c˜he“l'arra˜y“€è“stato“spGen˜to“senza“eseguire“mdstopŽ¡marcando–½6tutti“i“drivš¸èe“come“ÃOK¹,“come“se“n˜ulla“fosse“accaduto.‘©ÁQuesto“funziona“solo“se“tutti“i“driv˜e“sonoŽ¡OK‘Σal–ÎÅmomenš¸èto“dello“sh˜utdo˜wn.‘D·Se“uno“dei“driv˜e“dell'arra˜y“ha“dei“problemi“€è“necessario“rim˜uo˜v˜ere“tale“driv˜eŽ¡prima–U di“far“ripartire“il“dispšGositiv¸èo“md,“o“si“p˜otrebb˜e“a•¸èv“ere–U p˜erdita“di“dati.Ž¦Nienš¸ète–U di“tutto“questo“si“applica“a“raid0,“su“cui“non“dev˜e“essere“eseguito“mdstop“prima“dello“sh˜utdo˜wn.Ž¦Le–&soluzioni“denitiv¸èe“propšGoste“p˜er“questo“problema“includono“l'in¸ètro˜duzione“di“un“le“Ãnalrd“¹simile“adŽ¡Ãinitrd¹,›¶‚e–ŽÚun“comando“ÃmdroQÂotstop“¹c•¸èhe,˜duran“te–ŽÚlo“sh•¸èutdo“wn,˜scriv“e›ŽÚsull'arra“y˜i˜ag˜Ãclean˜¹quando˜€è˜mon“tatoŽ¡in–U sola“lettura.‘q€Sono“sicuro“c¸èhe“ce“ne“sono“altre.Ž¦Nel–R-frattempGo“il“problema“€è“stato“solo“aggirato.‘p„Pš¸èer“fa˜v˜ore,‘RÄfatemi“sapGere“quando“v˜err€à“risolto“in“moGdo“pi€ùŽ¡pulito!!!ŽŸ"•šÆ1.3Ž‘¾Riconoscimen tiŽŸMª¹Ci€ò–Áìcš¸èhe“le“pGersone“seguen˜ti“hanno“scritto“o“hanno“in˜viato“pGer“e-mail“mi“ha“aiutato“a“realizzare“questoŽ¡doGcumenš¸èto.‘bõMolte–)€idee“sono“state“½rub‘ÿ}/ate‘éϹdal“la˜v˜oro“di“altri,‘29io“ho“solo“pro˜v‘ÿqÐato“a“mettere“tutto“insieme“nellaŽŽŽŒ‹HB Û_2 ý ~?Ÿ„€ÕÁGŽÃ2.‘ñ8Di–Õcosa“hai“bisogno“PRIMA“DI“COMINCIARE’͘1¹4ŽŽ ÕÁ ýV¯forma–U di“un“Ãlibro–Õdi“ricette–U ¹in“moGdo“cš¸èhe“fosse“facile“da“usare.‘q€I“miei“ringraziamen˜ti“v‘ÿqÐanno“a:ŽŸؼ‘ó !",š cmsy10¸ŽŽŽ‘½Linas‘“°V‘ÿ;Èepstas‘U óqLË ectt1000ºmailto:linas@linas.orgŽ¤®‘½p›ÿ}/er–“°il“RAID“howto“che“mi“ha“spie˜gato“la“maggior“p˜arte“del‘‚Ðle“c˜ose.Ž©®‘¸ŽŽŽ‘½Gadi‘“°Oxman‘U ºmailto:gadio@netvision.net.ilŽ¡‘½p›ÿ}/er–“°aver“risp˜osto“al‘‚Ðle“mie“scio˜c˜che“domande“da“principiante.Ž¦‘¸ŽŽŽ‘½Ed‘“°W‘ÿ;Èelb‘ÿ}/on‘U ºmailto:welbon@bga.comŽ¡‘½p–ÿ}/er›“°l'e“c“c“el‘‚Ðlente˜p“ac“chetto˜Äinitr‘ÿiHd.md˜½che˜mi˜ha˜ispir“ato˜a˜scriver“e˜questo.Ž¦‘¸ŽŽŽ‘½Bohumil‘“°Chalup‘ÿ}/a‘U ºmailto:bochal@apollo.karlov.mff.cuni.czŽ¡‘½p›ÿ}/er–wâaver“implementato“il“meto˜do“di“cui“ho“p˜arlato“e“che“p˜ermette“ai“disp˜ositivi“r˜aid“montati“c˜ome“r˜o˜otŽ¤ ®‘di–“°funzionar›ÿ}/e“in“mo˜do“pr˜o˜duttivo.Ž¦‘¸ŽŽŽ‘¹e–U molti“altri“cš¸èhe,“in“un“moGdo“o“nell'altro,“hanno“con˜tribuito“a“questo“la˜v˜oro.Ž©#ÃÆ1.4Ž‘¾Informazioni–¸di“cop• yrigh“t–¸(in“lingua“originale)ŽŸMª¹This–U doGcumenš¸èt“is“GNU“cop˜yleft“b˜y“Mic˜hael“Robin˜ton“½michael@bzs.or‘ÿ}/g“¹.ŽŸؼPš¸èermission–¢×to“use,–öEcop˜y‘ÿ*¸,“distribute–¢×this“doGcumen˜t“for“an˜y“purpGose“is“hereb˜y“gran˜ted,‘öEpro˜vided“that“theŽ¡author's–E¯/“editor's“name“and“this“notice“appšGear“in“all“copies“and/or“supp˜orting“do˜cumen¸èts;‘½÷and“that“anŽ¡unmošGdied–þv¸èersion“of“this“do˜cumenš¸èt“is“made“freely“a˜v‘ÿqÐailable.‘]uThis“doGcumen˜t“is“distributed“in“the“hopGe“thatŽ¡it–ÕÛwill“bGe“useful,‘ö but“WITHOUT–ÕºANY“W‘þã ARRANTY,–ÕÛeither“expressed“or“implied.‘ó°While“ev¸èery“eort“hasŽ¡bšGeen–ˆtak¸èen“to“ensure“the“accuracy“of“the“information“do˜cumenš¸èted“herein,‘”»the“author“/“editor“/“main˜tainerŽ¡assumes›´ÄNO–´¬RESPONSIBILITY“for˜an•¸èy˜errors,‘Ì­or˜for˜an“y˜damages,‘Ì­direct˜or˜consequen“tial,‘Ì­as˜a˜result˜ofŽ¡the–U use“of“the“information“doGcumen¸èted“herein.ŽŸ(ÀœÂ2Ž‘ÁDi–G\cosa“hai“bisogno“PRIMA“DI“COMINCIAREŽŸ¿:¹I‘¼·paccš¸èhetti–¼Ýdi“cui“hai“bisogno“e“la“doGcumen˜tazione“c˜he“rispGonde“alle“domande“pi€ù“com˜uni“sulla“congurazioneŽ¡e–U l'utilizzo“di“raid“sono“elencati“sotto.‘q€Leggi“approfonditamen¸ète“l'elenco.Ž¦Æ2.1Ž‘¾P• acc“hetti‘¸necessariŽŸMª¹Hai–U bisogno“della“vš¸èersione“pi€ù“recen˜te“di“questi“pacc˜hetti.ŽŸؼ‘¸ŽŽŽ‘¹un–U kš¸èernel“c˜he“suppšGorti“raid,“initrd“e“/dev/lo˜op¸èxŽ©®‘=ÿio–U ho“usato“½linux-2.0.33“ºftp://sunsite.unc.edu/pub/Linux/kernel/Ž¡‘=ÿ¹da‘U sunsiteŽ¦‘¸ŽŽŽ‘½r‘ÿ}/aid145-971022-2.0.31‘U ºftp://ftp.kernel.org/pub/linux/daemons/raid/Ž¤®‘¹patc•¸èh›U c“he˜aggiunge˜il˜supp•Gorto˜p“er˜raid1/4/5Ž¦‘¸ŽŽŽ‘½r–ÿ}/aidto“ols-pr“e3-0.42‘U ºftp://ftp.kernel.org/pub/linux/daemons/raid/Ž¡‘¹strumenš¸èti–U pGer“creare“e“man˜tenere“dispGositivi“raid“(c'€è“anc˜he“la“doGcumen˜tazione).Ž¦‘¸ŽŽŽ‘¹12–U (La“patc¸èh“di“Gadi“pšGer“il“raid“stop)“nell'App˜endice“E.ŽŽŽŒ‹WÀ Û_2 ý ~?Ÿ„€ÕÁGŽÃ2.‘ñ8Di–Õcosa“hai“bisogno“PRIMA“DI“COMINCIARE’͘1¹5ŽŽ ÕÁ ýV¯‘¸ŽŽŽ‘½linuxthr–ÿ}/e“ads-0.71‘U ºftp://ftp.inria.fr/INRIA/Projects/cristal/Xavier.LeroyŽŸ®‘¹paccš¸èhetto–"threads“necessario.‘Ø[Dev˜e“essere“scaricato“con“ftp:‘ gi“bro˜wser“non“funzionano.Ž© ®‘ftp.inria.fr/INRIA/Pro‘Ž0jects/cristal/Xa•¸èvier.Lero“yŽ¤®‘¸ŽŽŽ‘¹Una–U distribuzione“Linš¸èux“pron˜ta“da“installare.Ž¡‘=ÿIo–U ho“usatoŽ¦‘=ÿ½Slackwar‘ÿ}/e-3.4‘U ºftp://ftp.cdrom.com/pub/linuxŽ¤ؼ¹Utile,–U ma“non“necessarioŽ¡‘¸ŽŽŽ‘½r–ÿ}/aidb“o“ot-0.01.tar.gz‘U ºftp://ftp.bizsystems.com/pub/raid/ŽŸ®‘¹sistema–U di“recupšGero“e“b˜o˜ot“raid“precostruito.Ž¡Le–ÈQistruzioni“dettagliate“cš¸èhe“tro˜v‘ÿqÐate“in“questo“doGcumen˜to“sono“basate“sui“pacc˜hetti“citati.‘B‘Se“i“pacc˜hetti“sonoŽ¦stati–æ„aggiornati“o“usate“una“distribuzione“linš¸èux“div˜ersa“pGotreste“do˜v˜er“mošGdicare“le“pro˜cedure“cš¸èhe“tro˜v‘ÿqÐateŽ¦qui.Ž¤ؼLe–ŠÊpatcš¸èh,‘˜5gli“strumen˜ti“ecc...‘p•Gotrebb“ero–ŠÊessere“div˜ersi“con“i“k˜ernel“2.1.‘Con˜trollate“la“doGcumen˜tazione“pi€ùŽ¦recen¸ète‘U a:ŽŸؼ‘'ÿ½ftp.kernel.or–ÿ}/g/pub/linux/daemons/r“aid/ŽŸ#ÃÆ2.2Ž‘¾Altre–¸implemen tazioni“simili.ŽŸMª¹Ho–ûÐdeciso“di“includere“nel“kš¸èernel“tutte“le“parti“necessarie“in“moGdo“c˜he“tutto“funzioni“a“partire“dal“b•Go“ot‘ûÐsenzaŽ¦caricare–U alcun“moGdulo.‘q€L'immagine“del“kš¸èernel“c˜he“ho“otten˜uto,“compressa,“€è“un“pGo'“pi€ù“grande“di“300k.Ž¡Date–q®un'oGccš¸èhiata“all'Ãinitrd.md.tar.gz“¹di“½Ed‘­õW‘ÿ;Èelb‘ÿ}/on“ºmailto:welbon@bga.com“¹do˜v˜e“tro˜v‘ÿqÐate“un“altro“moGdoŽ¦pGer›‰Øa•¸èv“ere˜un˜dispGositiv“o˜raid˜b•Go“otabile.‘¨Usa˜i˜mo“duli˜caricabili.‘¨Un'o“cc¸èhiata˜ai˜suoi˜script˜molto˜concisi˜viŽ¦mostreranno–U come“fare“se“a•¸èv“ete–U bisogno“di“un“k¸èernel“molto“piccolo“con“moGduli.ŽŸؼ‘'ÿ½http://www.r–ÿ}/e“altime.net/welb“on/initr“d.md.tar.gzŽŸ#ÃÆ2.3Ž‘¾Do_úcumen tazione–¸“Letture“raccomandateŽŸMªÃDo®>vreste‘Õleggere:Ž¤ؼ‘'ÿ/usr/src/lin•®>ux/DoQÂcumen“tation/initrd.txtŽ¡¹cos€ì–ícome“la“doGcumenš¸ètazione“e“le“pagine“di“man˜uale“c˜he“accompagnano“il“pacc˜hetto“raidtoGols.‘VÅIn“particolareŽ¦leggete–U Ãman‘Õmdadd“¹e“il“doGcumenš¸èto“ÃQuic®>kStart.RAID“¹c˜he“sono“inclusi“in“questo“pacc˜hetto.ŽŸؼPš¸èotrebbGe–U essere“in˜teressan˜te“leggere“anc˜he:Ž¡‘¸ŽŽŽ‘½Bo–ÿ}/otPr“ompt-HO¾˜WTO‘U ºhttp://sunsite.unc.edu/mdw/HOWTO/BootPrompt-‘€HOWTO.htmlŽ¤®‘¸ŽŽŽ‘Ãman‘ÕliloŽ¡‘¸ŽŽŽ‘Ãman‘Õlilo.confŽŽŽŒ‹d- Û_2 ý ~?Ÿ„€ÕÁGŽÃ3.‘ñ8P•®>artenza›Õv“eloQÂce˜con˜R“OOT˜RAID’á¹6ŽŽ ÕÁ ýV¯Æ2.4Ž‘¾Risorse‘¸RAIDŽŸü}‘¸ŽŽŽ‘½sunsite.unc.e–ÿ}/du/mdw/HO¾˜WTO/mini/Softwar“e-RAIDŽ¤a ‘¸ŽŽŽ‘½www.ssc.c–ÿ}/om/lg/issue17/r“aid.htmlŽ¡‘¸ŽŽŽ‘½linas.or–ÿ}/g/linux/r“aid.htmlŽ¡‘¸ŽŽŽ‘½ftp.kernel.or–ÿ}/g/pub/linux/daemons/r“aid/Ž¡‘¸ŽŽŽ‘½www.r–ÿ}/e“altime.net/welb“on/initr“d.md.tar.gzŽ¡‘¸ŽŽŽ‘½luthien.nucle–ÿ}/cu.unam.mx/miguel/r“aid/ŽŸ!¹P•¸èotete›U anc“he˜sottoscriv“ere˜le˜seguen“ti˜mailing˜list:ŽŸ>§‘¸ŽŽŽ‘½major–ÿ}/domo@nucle“cu.unam.mx›Lp“er‘×iscrivervi‘ÃsubscribQÂe‘úKraiddev¹mandate˜un˜messaggio˜a:‘ éؽr“aid-Ž© ®‘dev@nucle‘ÿ}/cu.unam.mxŽ¡‘¸ŽŽŽ‘½major–ÿ}/domo@vger.rutgers.e“du›p“er‘.Ðiscrivervi‘ÊÃsubscribQÂe‘×lin®>ux-raid¹mandate˜un˜messaggio˜a:‘ïB½linux-Ž¦‘r–ÿ}/aid@vger.rutgers.e“duŽŸ‡‘(questa–“°sembr›ÿ}/a“esser˜e“la“lista“pi€ù“attiva)ŽŸ(ŸrÂ3Ž‘ÁP•cartenza›G\v“elopœce˜con˜R“OOT˜RAIDŽŸ¿:¹Se–eënon“vuoi“compilare“e“fare“il“debug“del“sistema“di“recupGero“puoi“prenderne“uno“generico“incluso“nellaŽ¦Slac•¸èkw“are-3.4‘U all'indirizzo:Ž¤>¦‘'ÿ½ftp.bizsystems.c–ÿ}/om/pub/r“aid/r“aidb“o“ot-0.01.tar.gzŽ¡¹A–U questo“punš¸èto“segui“i“passi“seguen˜ti:ŽŸ>§‘¸ŽŽŽ‘¹Compila–2un“kš¸èernel“con“raid“attiv˜o“e“con“il“suppšGorto“p˜er“i“tuoi“discš¸èhi“(dev˜e“essere“con˜ten˜uto“nel“k˜ernel,Ž¦‘non–U un“moGdulo)Ž¤a ‘¸ŽŽŽ‘¹Con•¸ètrolla›U c“he˜l'arra“y˜raid˜sia˜bGen˜congurato˜e˜v“enga˜mon“tato˜correttamen“teŽ¡‘¸ŽŽŽ‘¹Installa–U il“tuo“sistema“opGerativ¸èo“sul“sistema“raidŽ¡‘¸ŽŽŽ‘¹Correggi–ôle“v¸èošGci“in“Ãfstab“¹in“mo˜do“c¸èhe“Ã/dev/md0“¹sia“il“disp˜ositiv¸èo“di“ro˜ot.‘NWAssicurati“ancš¸èhe“c˜he“leŽ¦‘partizioni–U c¸èhe“usi“pšGer“il“b˜o˜ot“si“tro¸èvino“in“Ãfstab¹.Ž¡‘¸ŽŽŽ‘¹MošGdica–M7i“tuoi“script“di“sh•¸èutdo“wn–M7e“reb˜o˜ot“(i“miei“si“tro¸èv‘ÿqÐano“in“/etc/rc.d/rc.6)“come“descritto“in“4.12Ž¦‘(MošGdicare–U gli“script“rc“p˜er“lo“sh•¸èutdo“wn)Ž¡‘¸ŽŽŽ‘¹Segui–§çi“passi“seguen¸èti:‘dal“lesystem“usato“pšGer“i“passaggi“eseguiti“nora“(d'ora“in“p˜oi“sistema“diŽ¦‘sviluppšGo)–U nel“sistema“di“recup˜ero“e“nel“n•¸èuo“v“o–U sistema“raidŽŸíy‘Býbºcd‘?¬/root/raidbootŽ¦‘Býbmkdir‘?¬mntŽ¦‘Býbgzip–?¬-d“rescue.cleanŽ¦‘Býblosetup‘?¬/dev/loop0‘ Xrescue.cleanŽ¦‘Býbmount‘?¬/dev/loop0‘þ°mntŽ¦¦‘copia–?¬questi“fileŽŽŽŒ‹no Û_2 ý ~?Ÿ„€ÕÁGŽÃ3.‘ñ8P•®>artenza›Õv“eloQÂce˜con˜R“OOT˜RAID’á¹7ŽŽ ÕÁ ýV¯¤ ®‘Býbºcp–?¬-p“/etc/*‘/= mnt/etcŽ¡‘Býbcp–?¬-p“/etc/rc.d/*‘þ°mnt/etc/rc.dŽ¡‘lúÂ{o–?¬nel“modo“pi€ù“appropriato“per“il“tuo“sistema}Ž¡‘Býbcp–?¬-a“/lib/modules/*“mnt/lib/modulesŽŸؼ¹Correggi–rýle“v¸èošGci“in“Ãfstab“¹in“mo˜do“c¸èhe“Ã/dev/md0“¹sia“il“disp˜ositiv¸èo“di“ro˜ot.‘ËAssicurati“cš¸èhe“le“partizioni“c˜heŽ¡usi–U pšGer“il“b˜o˜ot“appaiano“in“Ãfstab¹.Ž©ؼCrea›r$Ã/etc/raidb•QÂo“ot.conf˜¹c¸èhe˜descriv‘ÿqÐa˜la˜congurazione˜di˜b•Go“ot˜raid.‘È‹Questo˜le˜ÃNON‘qÚ¹pu€ò˜con¸ètenereŽ¡commen¸èti–U nelle“prime“tre“linee,“dopGo“queste“non“ci“sono“problemi.Ž¦raidb•Go“ot.confŽ©ؼ‘)ý`º/dev/sda1‘?¬/dev/sda2Ž¡‘)ý`raidbootŽ¡‘)ý`raid5.confŽ¡#–?¬eventuali“commenti“possono“essere“messi“*dopo*“le“treŽ¡#–?¬linee“di“configurazione.Ž¡#Ž¡#–?¬Questo“€è“'raidboot.conf'Ž¡#Ž¡#–?¬linea“uno,“le“partizioni“contenenti“il“sistema“di“recupero“raid“'initrd'Ž¡#‘$½´Non–?¬€è“necessario“eseguire“il“boot“da“queste“partizioni;“comunque,Ž¡#‘$½´poich€é–?¬il“sistema“di“recupero“non“entra“in“un“floppy,“€è“necessarioŽ¡#‘$½´sapere–?¬quali“partizioni“devono“essere“usate“per“caricarlo.Ž¡#Ž¡#–?¬linea“due,“il“percorso“delle“informazioni“di“configurazione“raid“di“bootŽ¡#‘$½´dove,–?¬a“tempo“di“boot,“si“trovano“shutdown,“status“ecc.Ž¡#‘$½´NON–?¬include“le“informazioni“sul“punto“di“mount,“solo“'percorso':Ž¡#‘$½´/punto_di_mount/'percorso'Ž¡#Ž¡#–?¬linea“tre,“nome“del“file“di“configurazione“raidŽ¡#‘$½´File–?¬contenente“la“configurazione“raid“corrente:“raid1.conf,“raid5.confŽ¦¹Mancano›U p•Go“c•¸èhe˜altre˜cose˜ed˜il˜sistema˜raid˜€è˜pron“to˜ad˜eseguire˜il˜b•Go“ot.ŽŸؼCrea–-ž13“(rc.raido¸èwn),‘5…come“descritto“in“appšGendice“F,“e“copialo“in“/etc/rc.d“sui“sistemi“di“recup˜ero,‘5…svilupp˜oŽ¡e–U raid.‘q€Smon¸èta“il“sistema“di“recupGero“e“comprimilo.Ž¦‘)ý`ºumount‘?¬mntŽ¡‘)ý`losetup–?¬-d“/dev/loop0Ž¡‘)ý`mv–?¬rescue.clean“rescueŽ¡‘)ý`gzip‘?¬rescueŽ¦¹Copia–U il“le“di“recupšGero“sulle“partizioni“di“raid“di“b˜o˜ot.Ž¦‘)ý`ºcp–?¬rescue.gz“/mnt_point(1)/raidbootŽ¡‘)ý`cp–?¬rescue.gz“/mnt_point(2)/raidbootŽ¦¹A•¸èttiv‘ÿqÐa›U l'arra“y˜raid.Ž¦‘)ý`ºmdadd‘?¬-arŽŽŽŒ‹xT Û_2 ý ~?Ÿ„€ÕÁGŽÃ4.‘ñ8initrd–Õ-“Ricette“pšQÂer“il“RAID“mon®>tato“come“ro˜ot’Íš®¹8ŽŽ ÕÁ ýV¯Salv‘ÿqÐa–U lo“stato“di“riferimen¸èto“Ãcorretto“¹sulla“partizione“raid“di“b•Go“ot.Ž¤Àˆ‘)ý`ºcat–?¬/proc/mdstat“|“grep“md0“>“/mnt_point(1)/raidboot/raidgood.refŽ© ®‘)ý`cat–?¬/proc/mdstat“|“grep“md0“>“/mnt_point(1)/raidboot/raidgood.refŽ¡¹Inne–ÿcongura“il“programma“di“b•Go“ot–ÿcome“indicato“in“4.13“(Congurare“RAIDBOOT‘Ò-“raidb•Go“ot.conf‘Ç)‘ÿeŽ¦riaš¸èvvia–U il“tuo“sistema“dall'arra˜y“raid.ŽŸ(»fÂ4Ž‘Áinitrd–G\-“Ricette“pšpœer“il“RAID“monctato“come“ro˜otŽŸ¿:¹Questa–U €è“la“prošGcedura“p˜er“creare“un“ramdisk“'initrd'“con“strumen¸èti“di“recup˜ero“p˜er“il“raid.ŽŸؼNello–U spšGecico,“questo“do˜cumenš¸èto“si“riferisce“alle“implemen˜tazioni“RAID1“e“RAID5.Ž¤#Æ4.1Ž‘¾Note–¸sulla“sicurezzaŽŸMª¹Il–_{lesystem“di“recupGero“pu€ò“essere“usato“da“solo.‘‘Nel“caso“in“cui“ci“fossero“problemi“a“monš¸ètare“l'arra˜yŽ¦raid–¿évieni“lasciato“con“il“sistema“di“recupGero“monš¸ètato“e“funzionan˜te.‘±ÚPRENDI–¿‹LE“PRECA˜UZIONI“DIŽ¦SICUREZZA‘U APPR¸èOPRIA‘ÿ*¸TE!!!Ž¡Æ4.2Ž‘¾Compilare–¸il“Kernel“e“gli“strumen ti“RaidŽŸMª¹La–prima“cosa“da“fare“€è“applicare“una“patcš¸èh“e“compilare“il“k˜ernel“e“familiarizzarsi“con“gli“strumen˜ti“raid.Ž¦Assicurati–¢>di“usare“ancš¸èhe“12“(La“patc˜h“di“Gadi“pšGer“il“raid“stop)“in“app˜endice“E.“Congura,‘µ…monš¸èta“e“pro˜v‘ÿqÐaŽ¦i–¡Ótuoi“dispGositivi“raid.‘W™I‘¡¿dettagli“su“come“questo“devš¸èe“essere“fatto“sono“inclusi“nel“pacc˜hetto“ÃraidtoQÂols“¹e“liŽ¦vš¸èedremo–U in“brev˜e“pi€ù“a˜v‘ÿqÐan˜ti“in“questo“stesso“doGcumen˜to.Ž¡Æ4.3Ž‘¾Costruire–¸i“lesystem“ó”ñÖ• ecbi1200Çinitr‘ÿO°d‘Í&Ædi“recupš_úero“e“di“b˜o˜ot.ŽŸMª¹Ho–cusato“la“distribuzione“ÃSlac•®>kw“are-3.4–c¹pšGer“costruire“i“lesystem“di“recup˜ero“e“b˜o˜ot“e“il“lesystem“p˜er“laŽ¦maccš¸èhina–ØÅdi“proGduzione.‘üpT‘ÿ*¸utte“le“distribuzioni“di“lin˜ux“do˜vrebbšGero“andare“b˜ene.‘üpSe“usi“una“distribuzioneŽ¦div•¸èersa,‘JÌcon“trolla–H7le“parti“di“questa“prošGcedura“sp˜ecic¸èhe“p˜er“Slac•¸èkw“are–H7e“mo˜dicale“in“mo˜do“ad“adattarle“alŽ¦tuo‘U caso.Ž¤ؼUso–‹loadlin“pšGer“eseguire“il“b˜o˜ot“dell'immagine“del“kš¸èernel“da“una“partizione“dos“semplicemen˜te“pGerc˜h€é“nelŽ¦mio–47sistema“ci“sono“dei“dispGositivi“strani“cš¸èhe“hanno“bisogno“di“soft˜w˜are“di“congurazione“c˜he“gira“solo“sottoŽ¦dos.‘fÏLilo–5 funzioner€à“altrettanš¸èto“bGene“e“pu€ò“essere“usata“una“piccola“partizione“lin˜ux“con˜tenen˜te“solo“i“le“diŽ¦b•Go“ot–U raid“e“il“record“di“Ãlilo¹.Ž¡P¸èer–ÿZil“sistema“di“b•Go“ot/recup“ero–ÿZraid,‘ho“deciso“di“creare“un“sistema“ramdisk“di“minime“dimensioni“usando“loŽ¦script–/d'setup'“di“Slac•¸èkw“are–/dseguito“dall'installazione“dei“paccš¸èhetti“'lin˜uxthreads'“e“'raidtoGols'“sulla“Slac˜kw˜areŽ¦sul–ÆMmio“ramdisk.‘ÅHo“usato“una“prošGcedura“del“tutto“iden¸ètica“p˜er“costruire“il“sistema“di“pro˜duzione.‘ÅCos€ì“iŽ¦sistemi–U di“recupšGero“e“pro˜duzione“sono“molto“simili.Ž¡Questo–¤àproGcesso“di“installazione“d€à,›¸Ðalla“ne,˜un“sistema“piuttosto“semplice“(salv‘ÿqÐa“una“copia“del“le)“a“cuiŽ¦so¸èvrappGongoŽŸº{‘)ý`º/lib/modules/2.x.x......Ž¦‘)ý`/etc–?¬....“con“fstab,“mdtab,“raidX.conf,“raidboot.conf“modificatiŽ¦‘)ý`/etc/rc.dŽ¦‘)ý`/dev/md*ŽŽŽŒ‹ , Û_2 ý ~?Ÿ„€ÕÁGŽÃ4.‘ñ8initrd–Õ-“Ricette“pšQÂer“il“RAID“mon®>tato“come“ro˜ot’Íš®¹9ŽŽ ÕÁ ýV¯dal–U sistema“c¸èhe“uso“in“mošGdo“da“p˜ersonalizzarlo“p˜er“il“kš¸èernel“e“la“macc˜hina“su“cui“v˜err€à“fatto“girare.ŽŸؼQuesto–¿Šfa“s€ì“cš¸èhe“il“sistema“di“b•Go“ot/ripristino–¿Šsia“lo“stesso“sistema“installato“sul“dispGositiv˜o“raid“mon˜tato“comeŽ¤ ®rošGot,–U solo“un“p˜o˜c¸èhino“dimagrito‘*hma“con“le“revisioni“delle“librerie“ecc.‘q€sempre“aggiornate.ŽŸ#¼Æ4.4Ž‘¾Istruzioni–¸P›þàASSO“dop_úo“P˜ASSOŽŸMª¹Dalla–U directory“home“di“rošGot“(/ro˜ot):Ž©¤L‘)ý`ºcd‘?¬/rootŽ¡‘)ý`mkdir‘?¬raidbootŽ¡‘)ý`cd‘?¬raidbootŽ¦¹Crea–U un“punš¸èto“di“moun˜t“su“cui“la˜v˜orareŽ¦‘)ý`ºmkdir‘?¬mntŽ¡‘)ý`mkdir‘?¬mnt2Ž¦¹Crea–­¹un“le“abbastanza“grande“da“con¸ètenere“il“le“system.‘9³Sar€à“un“pšGo'“pi€ù“grande“del“le“system“di“recup˜ero.Ž¡Ho–U scelto“24“mega“pGoicš¸èh€é“16“mega“non“sono“sucien˜tiŽ¤®È‘)ý`ºdd–?¬if=/dev/zero“of=build“bs=1024k“count=24Ž¡¹assošGcia–U il“le“con“un“disp˜ositiv¸èo“di“lo˜op“e“genera“sul“le“un“le“system“ext2Ž¦‘)ý`ºlosetup–?¬/dev/loop0“buildŽ¤ ®‘)ý`mke2fs–?¬-v“-m0“-L“initrd“/dev/loop0Ž¡‘)ý`mount–?¬/dev/loop0“mntŽŸ#¼Æ4.5Ž‘¾Installa–¸la“distribuzione“-“Spš_úecico“p˜er“Slac• kw“areŽŸMª¹4.6–U (...salta“le“opšGerazioni“sp˜ecic¸èhe“p˜er“Slac•¸èkw“are)–U e“v‘ÿqÐai“alla“prossima“sezioneŽŸؼOra–U cš¸èhe“un“le“system“vuoto“€è“stato“creato“e“mon˜tato,“esegui“"setup".Ž¦ºSpecifica‘x¸t/root/raidboot/mntŽ¦¹come–cÃ'target'¹.‘©JCome“source“puoi“scegliere“tutto“quello“cš¸èhe“usi“normalmen˜te.‘©JScegli“i“pacc˜hetti“c˜he“vuoiŽ¡installare–U e“proGcedi,“ma“ÃNON“¹eseguire“la“congurazione.Ž¤ؼScegli–U il“moGdo“'EXPER‘ÿ*¸T'Ž¡Io–Ìscelgo“'A',“'AP'‘½e“'N',“installando“solo“il“minimo“indispšGensabile“p˜er“far“funzionare“il“sistema“pi€ù“un“editorŽ¤ ®cš¸èhe–U mi“€è“familiare“(vi,“jed,“joGe)“e“c˜he“€è“ragionev˜olmen˜te“compatto.ŽŸ®Èºlqqqqqqqq–?¬SELECTING“PACKAGES“FROM“SERIES“A“(BASE“LINUX“SYSTEM)“qqqqqqqqkŽ¡x–?¬lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk“xŽ¡x–?¬x‘¿[X]“aaa_base‘ XBasic“filesystem,“shell,“and“utils“-“REQUIRED‘þ°x“xŽ¡x–?¬x‘¿[X]“bash‘~GNU“bash-1.14.7“shell“-“REQUIRED‘Y:lx“xŽ¡x–?¬x‘¿[X]“devs‘~Device“files“found“in“/dev“-“REQUIRED‘>üx“xŽ¡x–?¬x‘¿[X]“etc›$½´System“config“files“&“utilities“-“REQUIRED˜x“xŽ¡x–?¬x‘¿[X]“shadow‘þ°Shadow“password“suite“-“REQUIRED‘Y:lx“xŽŽŽŒ‹ ŽV Û_2 ý ~?Ÿ„€ÕÁGŽÃ4.‘ñ8initrd–Õ-“Ricette“pšQÂer“il“RAID“mon®>tato“come“ro˜ot’Èšþ¹10ŽŽ ÕÁ ýV¯ºx–?¬x‘¿[“]“ide‘$½´Linux“2.0.30“no“SCSI“(YOU“NEED“1“KERNEL)‘/= x“xŽ¤ ®x–?¬x‘¿[“]“scsi‘~Linux“2.0.30“with“SCSI“(YOU“NEED“1“KERNEL)‘$½´x“xŽ¡x–?¬x›¿[“]“modules˜Modular“Linux“device“drivers‘n9x“xŽ¡x–?¬x‘¿[“]“scsimods‘ XLoadable“SCSI“device“drivers‘n9x“xŽ¡x–?¬x›¿[X]“hdsetup˜Slackware“setup“scripts“-“REQUIRED‘N»x“xŽ¡x–?¬x‘¿[“]“lilo‘~Boots“Linux“(not“UMSDOS),“DOS,“OS/2,“etc.‘)ý`x“xŽ¡x–?¬x‘¿[“]“bsdlpr‘þ°BSD“lpr“-“printer“spooling“system‘SúÀx“xŽ¡x–?¬x›¿[“]“loadlin˜Boots“Linux“(UMSDOS“too!)“from“MS-DOS‘>üx“xŽ¡x–?¬x‘¿[“]“pnp‘$½´Plug'n'Play“configuration“tool‘c¹Äx“xŽ¡x–?¬x‘¿[“]“umsprogs‘ XUtilities“needed“to“use“the“UMSDOS“filesystem‘þ°x“xŽ¡x–?¬x‘¿[X]“sysvinit‘ XSystem“V-like“INIT“programs“-“REQUIRED‘9¼dx“xŽ¡x–?¬x‘¿[X]“bin›$½´GNU“fileutils“3.12,“elvis,“etc.“-“REQUIRED˜x“xŽ¡x–?¬x‘¿[X]“ldso‘~Dynamic“linker/loader“-“REQUIRED‘Y:lx“xŽ¡x–?¬x‘¿[“]“ibcs2‘>\Runs“SCO/SysVr4“binaries’ƒ7Ìx“xŽ¡x–?¬x‘¿[X]“less‘~A“text“pager“utility“-“REQUIRED‘^zx“xŽ¡x–?¬x‘¿[“]“pcmcia‘þ°PCMCIA“card“services“support‘n9x“xŽ¡x–?¬x‘¿[“]“getty‘>\Getty_ps“2.0.7e“-“OPTIONAL‘x¸tx“xŽ¡x–?¬x‘¿[X]“gzip‘~The“GNU“zip“compression“-“REQUIRED‘N»x“xŽ¡x–?¬x‘¿[X]“ps‘)ý`Displays“process“info“-“REQUIRED‘Y:lx“xŽ¡x–?¬x‘¿[X]“aoutlibs‘ Xa.out“shared“libs“-“RECOMMENDED‘^zx“xŽ¡x–?¬x›¿[X]“elflibs˜The“ELF“shared“C“libraries“-“REQUIRED‘>üx“xŽ¡x–?¬x‘¿[X]“util‘~Util-linux“utilities“-“REQUIRED‘^zx“xŽ¡x–?¬x›¿[“]“minicom˜Serial“transfer“and“modem“comm“package‘9¼dx“xŽ¡x–?¬x‘¿[“]“cpio‘~The“GNU“cpio“backup/archiving“utility‘>üx“xŽ¡x–?¬x‘¿[X]“e2fsbn‘þ°Utilities“for“the“ext2“file“system‘N»x“xŽ¡x–?¬x‘¿[X]“find‘~GNU“findutils“4.1’§õ€x“xŽ¡x–?¬x‘¿[X]“grep‘~GNU“grep“2.0’Â3Üx“xŽ¡x–?¬x‘¿[“]“kbd‘$½´Change“keyboard“mappings’ƒ7Ìx“xŽ¡x–?¬x‘¿[X]“gpm‘$½´Cut“and“paste“text“with“your“mouse‘N»x“xŽ¡x–?¬x‘¿[X]“sh_utils‘ XGNU“sh-utils“1.16“-“REQUIRED‘n9x“xŽ¡x–?¬x‘¿[X]“sysklogd‘ XLogs“system“and“kernel“messages‘^zx“xŽ¡x–?¬x‘¿[X]“tar‘$½´GNU“tar“1.12“-“REQUIRED’ˆwxx“xŽ¡x–?¬x‘¿[“]“tcsh‘~Extended“C“shell“version“6.07‘hùpx“xŽ¡x–?¬x‘¿[X]“txtutils‘ XGNU“textutils-1.22“-“REQUIRED‘hùpx“xŽ¡x–?¬x‘¿[“]“zoneinfo‘ XConfigures“your“time“zone‘}ø x“xŽ¡x–?¬mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj“xŽ©NܹDalla–½serie“di“paccš¸èhetti“AP‘¼Úscelgo“solo“'JOE',“un“editor“c˜he“mi“piace,‘Ûme“'MC',“un“piccolo“ed“utile“le“manager.Ž¡Puoi–U scegliere“i“programmi“di“cui“a¸èvrai“bisogno“sul“tuo“sistema.Ž¦ºlqqqqqqqqq–?¬SELECTING“PACKAGES“FROM“SERIES“AP“(APPLICATIONS)“qqqqqqqqqkŽ¡x–?¬x‘>\[“]“ispell‘þ°The“International“version“of“ispell‘4|¸x“xŽ¡x–?¬x‘>\[“]“jove‘~Jonathan's“Own“Version“of“Emacs“text“editor‘ Xx“xŽ¡x–?¬x‘>\[“]“manpgs‘þ°More“man“pages“(online“documentation)‘)ý`x“xŽ¡x–?¬x‘>\[“]“diff‘~GNU“diffutils’§õ€x“xŽ¡x–?¬x‘>\[“]“sudo›~Allow“special“users“limited“root“access˜x“xŽ¡x–?¬x‘>\[“]“ghostscr‘ XGNU“Ghostscript“version“3.33‘Y:lx“xŽ¡x–?¬x‘>\[“]“gsfonts1‘ XGhostscript“fonts“(part“one)‘Y:lx“xŽ¡x–?¬x‘>\[“]“gsfonts2‘ XGhostscript“fonts“(part“two)‘Y:lx“xŽ¡x–?¬x‘>\[“]“gsfonts3‘ XGhostscript“fonts“(part“three)‘N»x“xŽ¡x–?¬x‘>\[“]“jed‘$½´JED“programmer's“editor‘sxÈx“xŽŽŽŒ‹ ˜ Û_2 ý ~?Ÿ„€ÕÁGŽÃ4.‘ñ8initrd–Õ-“Ricette“pšQÂer“il“RAID“mon®>tato“come“ro˜ot’Èšþ¹11ŽŽ ÕÁ ýV¯ºx–?¬x‘>\[X]“joe‘$½´joe“text“editor,“version“2.8‘Y:lx“xŽ¤ ®x–?¬x‘>\[“]“jpeg‘~JPEG“image“compression“utilities‘D;¼x“xŽ¡x–?¬x‘>\[“]“bc‘)ý`GNU“bc“-“arbitrary“precision“math“language‘¿x“xŽ¡x–?¬x‘>\[“]“workbone‘ Xa“text-based“audio“CD“player‘Y:lx“xŽ¡x–?¬x‘>\[X]“mc‘)ý`The“Midnight“Commander“file“manager‘4|¸x“xŽ¡x–?¬x›>\[“]“mt_st˜mt“ported“from“BSD“-“controls“tape“drive˜x“xŽ¡x–?¬x›>\[“]“groff˜GNU“troff“document“formatting“system‘/= x“xŽ¡x–?¬x›>\[“]“quota˜User“disk“quota“utilities‘hùpx“xŽ¡x–?¬x‘>\[“]“sc‘)ý`The“'sc'“spreadsheet’ƒ7Ìx“xŽ¡x–?¬x‘>\[“]“texinfo‘¿GNU“texinfo“documentation“system‘D;¼x“xŽ¡x–?¬x‘>\[“]“vim‘$½´Improved“vi“clone’’öÐx“xŽ¡x–?¬x‘>\[“]“ash‘$½´A“small“/bin/sh“type“shell“-“62K‘D;¼x“xŽ¡x–?¬x‘>\[“]“zsh‘$½´Zsh“-“a“custom“*nix“shell‘hùpx“xŽ¡x–?¬mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj“xŽ©ؼ¹Dal–Oppaccš¸èhetto“'N'‘O0ho“scelto“solo“TCPIP‘ÿ*¸.“Nonostan˜te“non“sia“v˜eramen˜te“necessario“si“riv˜ela“molto“utile“eŽ¡pGermette–Hl'accesso“alla“rete“menš¸ètre“si“cerca“di“aggiustare“qualc˜he“guaio“o“di“eettuare“un“aggiornamen˜to“conŽ¡l'arraš¸èy–ˆòraid“non“mon˜tato.‘ ÷TCPIP‘ˆåcon˜tiene“anc˜he“'bi‘Ç',‘•çc˜he“€è“usato“da“alcune“applicazioni“di“'A'.“Anc˜he“seŽ¡non–U installi“'N'“probabilmenš¸ète“sarebbGe“il“caso“di“installare“il“pacc˜hetto“bi“ugualmen˜te.Ž¦ºlqqqq–?¬SELECTING“PACKAGES“FROM“SERIES“N“(NETWORK/NEWS/MAIL/UUCP)“qqqqqkŽ¡x–?¬lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk“xŽ¡x–?¬x›þ°[“]“apache˜Apache“WWW“(HTTP)“server‘sxÈx“xŽ¡x–?¬x‘þ°[“]“procmail‘ XMail“delivery/filtering“utility‘N»x“xŽ¡x–?¬x‘þ°[“]“dip‘$½´Handles“SLIP/CSLIP“connections‘SúÀx“xŽ¡x–?¬x‘þ°[“]“ppp‘$½´Point-to-point“protocol‘x¸tx“xŽ¡x–?¬x‘þ°[“]“mailx‘>\The“mailx“mailer’v(x“xŽ¡x–?¬x‘þ°[X]“tcpip‘>\TCP/IP“networking“programs‘hùpx“xŽ¡x–?¬x‘þ°[“]“bind‘~Berkeley“Internet“Name“Domain“server‘4|¸x“xŽ¡x–?¬x‘þ°[“]“rdist‘>\Remote“file“distribution“utility‘I{hx“xŽ¡x–?¬x‘þ°[“]“lynx‘~Text-based“World“Wide“Web“browser‘D;¼x“xŽ¡x–?¬x‘þ°[“]“uucp‘~Taylor“UUCP“1.06.1“with“HDB“&&“Taylor“configs“x“xŽ¡x–?¬x‘þ°[“]“elm‘$½´Menu-driven“user“mail“program‘Y:lx“xŽ¡x–?¬x‘þ°[“]“pine‘~Pine“menu-driven“mail“program‘Y:lx“xŽ¡x–?¬x‘þ°[“]“sendmail‘ XThe“sendmail“mail“transport“agent‘D;¼x“xŽ¡x–?¬x‘þ°[“]“metamail‘ XMetamail“multimedia“mail“extensions‘9¼dx“xŽ¡x–?¬x‘þ°[“]“smailcfg‘ XExtra“configuration“files“for“sendmail‘)ý`x“xŽ¡x–?¬x‘þ°[“]“cnews‘>\Spools“and“transmits“Usenet“news‘I{hx“xŽ¡x–?¬x‘þ°[“]“inn‘$½´InterNetNews“news“transport“system‘>üx“xŽ¡x–?¬x‘þ°[“]“tin‘$½´The“'tin'“news“reader“(local“or“NNTP)‘/= x“xŽ¡x–?¬x‘þ°[“]“trn‘$½´'trn'“for“/var/spool/news‘n9x“xŽ¡x–?¬x‘þ°[“]“trn-nntp‘ X'trn'“for“NNTP“(install“1“'trn'“maximum)‘~x“xŽ¡x–?¬x‘þ°[“]“nn-spool‘ X'nn'“for“/var/spool/news‘sxÈx“xŽ¡x–?¬x‘þ°[“]“nn-nntp‘¿'nn'“for“NNTP“(install“1“'nn'“maximum)‘)ý`x“xŽ¡x–?¬x‘þ°[“]“netpipes‘ XNetwork“pipe“utilities‘}ø x“xŽ¡x–?¬mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj“xŽ¦¹Completata–Hl'installazione“rispšGondi“no“a“tutto“il“resto“(cio˜€è“risp˜ondi“no“a“tutte“le“ric¸èhieste“di“congurazione)Ž¡ed–U esci“dallo“script.ŽŽŽŒ‹ ¥{ Û_2 ý ~?Ÿ„€ÕÁGŽÃ4.‘ñ8initrd–Õ-“Ricette“pšQÂer“il“RAID“mon®>tato“come“ro˜ot’Èšþ¹12ŽŽ ÕÁ ýV¯Æ4.6Ž‘¾Installa–¸lin ux“pthreadsŽŸMª¹Aš¸èdesso–ƒÚdevi“installare“la“libreria“'lin˜uxthreads-0.71'.‘ý¯Ho“incluso“la“patc˜h“c˜he“segue“pGer“il“Mak˜ele“di“lin˜ux-Ž¤ ®threads›U in•¸èv“ece˜di˜spiegare˜i˜dettagli˜dell'installazione.‘q€Salv‘ÿqÐa˜il˜Mak“ele˜originale,˜applica˜la˜patc“h˜e˜pGoi:ŽŸ¤Ò‘)ý`ºcd‘?¬/usr/src/linuxthreads-0.71Ž¡‘ XpatchŽ¡‘)ý`makeŽ¡‘)ý`make‘?¬installŽŸ£í-------------------diff‘?¬Makefile.old‘ XMakefile.raid-----------------Ž¡2a3,13Ž¡>–?¬#“Se“stai“compilando“"linuxthreads"“per“installarlo“su“un“punto“di“mountŽ¡>–?¬#“che“non“€è“la“partizione“di“root,“ridefinisci“'BUILDIR'“in“modo“che“siaŽ¡>–?¬#“uguale“al“punto“di“mount“che“vuoi“usare“come“directory“"root"Ž¡>–?¬#“Potresti“doverlo“fare“se“stai“costruendo“un“'ram“disk“iniziale'“comeŽ¡>–?¬#“quello“usato“con“i“dispositivi“root“raid“capaci“di“eseguire“il“boot.Ž¡>–?¬#“RICHIEDE“la“versione“1.9.5“o“superiori“di“ldconfigŽ¡>–?¬#“per“controllare“esegui“ldconfig“-vŽ¡>‘?¬#Ž¡>‘?¬BUILDIR=/root/raidboot/mntŽ¡>‘?¬#BUILDIR=Ž¡>Ž¡81,82c92,93Ž¡<‘$½´install–?¬pthread.h“$(INCLUDEDIR)/pthread.hŽ¡<‘$½´install–?¬semaphore.h“$(INCLUDEDIR)/semaphore.hŽ¡---Ž¡>‘$½´install–?¬pthread.h“$(BUILDIR)$(INCLUDEDIR)/pthread.hŽ¡>‘$½´install–?¬semaphore.h“$(BUILDIR)$(INCLUDEDIR)/semaphore.hŽ¡84c95Ž¡<‘$½´test–?¬-f“/usr/include/sched.h“||“install“sched.h“$(INCLUDEDIR)/sched.hŽ¡---Ž¡>‘$½´test–?¬-f“$(BUILDIR)/usr/include/sched.h“||“install“sched.h“$(BUILDIR)$(INCLUDEDIR)/sched.hŽ¡86,89c97,103Ž¡<‘$½´install–?¬$(LIB)“$(LIBDIR)/$(LIB)Ž¡<‘$½´install–?¬$(SHLIB)“$(SHAREDLIBDIR)/$(SHLIB)Ž¡<‘$½´rm–?¬-f“$(LIBDIR)/$(SHLIB0)Ž¡<‘$½´ln–?¬-s“$(SHAREDLIBDIR)/$(SHLIB)“$(LIBDIR)/$(SHLIB0)Ž¡---Ž¡>‘$½´install–?¬$(LIB)“$(BUILDIR)$(LIBDIR)/$(LIB)Ž¡>‘$½´install–?¬$(SHLIB)“$(BUILDIR)$(SHAREDLIBDIR)/$(SHLIB)Ž¡>‘$½´rm–?¬-f“$(BUILDIR)$(LIBDIR)/$(SHLIB0)Ž¡>‘$½´ln–?¬-s“$(SHAREDLIBDIR)/$(SHLIB)“$(BUILDIR)$(LIBDIR)/$(SHLIB0)Ž¡>–?¬ifneq“($(BUILDIR),)Ž¡>‘$½´ldconfig–?¬-r“${BUILDIR}“-n“$(SHAREDLIBDIR)Ž¡>‘?¬elseŽ¡91c105,106Ž¡<‘$½´cd–?¬man;“$(MAKE)“MANDIR=$(MANDIR)“installŽ¡---Ž¡>‘?¬endifŽ¡>‘$½´cd–?¬man;“$(MAKE)“MANDIR=$(BUILDIR)$(MANDIR)“installŽŽŽŒ‹ ²¯ Û_2 ý ~?Ÿ„€ÕÁGŽÃ4.‘ñ8initrd–Õ-“Ricette“pšQÂer“il“RAID“mon®>tato“come“ro˜ot’Èšþ¹13ŽŽ ÕÁ ýV¯Æ4.7Ž‘¾Installazione–¸degli“strumen ti“RaidŽŸMª¹Il–U passo“successivš¸èo“consiste“nell'installazione“degli“strumen˜ti“raid.‘q€raidtoGols-0.42ŽŸؼDevi–“heseguire“lo“script“"congure"“facendolo“punš¸ètare“al“Mak˜ele“nella“directory“con“i“sorgen˜ti“pGer“i“leŽ¤ ®ramdiskŽ©%6‘ Xºcd‘?¬/usr/src/raidtools-0.42Ž¡‘ Xconfigure–?¬--sbindir=/root/raidboot/mnt/sbin“--prefix=/root/raidboot/mnt/usrŽ¡‘ XmakeŽ¡‘ Xmake‘?¬installŽ¦¹La–p¨parte“del“Makš¸èele“riguardan˜te“l'installazione“non“funziona“bGenissimo,‘·Šquindi“fai“quello“c˜he“segue“pGerŽ¡sistemare–Òcle“cose.‘éHQuesto“problema“vš¸èerr€ò“corretto“nelle“v˜ersioni“future,‘ñ³cos€ì“non“sar€à“necessario“eettuareŽ¡n•¸èuo“vi‘U link.Ž¤øU‘'ÿCorreggere–U l'errore“di“mak¸èe“installŽ¡I‘‚link–‚%cš¸èhe“sono“spGecicati“nel“Mak˜ele“alla“sezione“'LINKS'‘‚dev˜ono“essere“rimossi“e“rifatti“correttamen˜te“inŽ¤ ®mošGdo–U c¸èhe“tutto“funzioni“nel“mo˜do“giusto.Ž¦‘)ý`ºcd‘?¬/root/raidboot/mnt/sbinŽ¡‘)ý`ln–?¬-fs“mdadd“mdrunŽ¡‘)ý`ln–?¬-fs“mdadd“mdstopŽŸ"÷ Æ4.8Ž‘¾Rim• uo“v“ere–¸directory“e“le“non“necessari“dal“n• uo“v“o‘¸lesystem.ŽŸMª¹Cancella–±%le“seguenš¸èti“directory“dal“lesystem“(A‘ÿ*¸TTENZIONE–± NON“CANCELLARLE“D˜AL“SISTEMA“A‘ÿ*¸T-Ž¡TUALMENTE–U IN“ESECUZIONE)“€è“un“errore“facile“da“commettere,“indo¸èvina“come“me“ne“sono“accorto!!!Ž¦‘)ý`ºcd‘?¬/root/raidboot/mntŽ¡‘)ý`rm–?¬-r“home/ftp/*Ž¡‘)ý`rm–?¬-r“lost+foundŽ¡‘)ý`rm–?¬-r“usr/docŽ¡‘)ý`rm–?¬-r“usr/infoŽ¡‘)ý`rm–?¬-r“usr/local/manŽ¡‘)ý`rm–?¬-r“usr/manŽ¡‘)ý`rm–?¬-r“usr/openwinŽ¡‘)ý`rm–?¬-r“usr/share/localeŽ¡‘)ý`rm–?¬-r“usr/X*Ž¡‘)ý`rm–?¬-r“var/manŽ¡‘)ý`rm–?¬-r“var/log/packagesŽ¡‘)ý`rm–?¬-r“var/log/setupŽ¡‘)ý`rm–?¬-r“var/log/disk_contentsŽŸ"÷ Æ4.9Ž‘¾Creare‘¸/dev/mdÇxŽŸMª¹L'ultimo–Uçpasso“consiste“semplicemenš¸ète“nel“copiare“i“dispGositivi“/dev/md*“dal“lesystem“corren˜te“sul“lesystemŽ¡di–U rescue.‘q€Pš¸èotresti“anc˜he“crearli“con“mknoGde.Ž¦‘)ý`ºcp–?¬-a“/dev/md*“/root/raidboot/mnt/devŽŽŽŒ‹»È Û_2 ý ~?Ÿ„€ÕÁGŽÃ4.‘ñ8initrd–Õ-“Ricette“pšQÂer“il“RAID“mon®>tato“come“ro˜ot’Èšþ¹14ŽŽ ÕÁ ýV¯Æ4.10Ž‘%}¨Creare–¸un“lesystem“utilizzabile“p_úer“Çinitr‘ÿO°dŽŸMª¹Aš¸èdesso–šDhai“un“lesystem“pron˜to“pšGer“essere“p˜ersonalizzato.‘@ìUna“v¸èolta“p˜ersonalizzato,‘«questo“lesystem“pu€òŽ¤ ®essere–Ätato“come“ro˜ot’Èšþ¹15ŽŽ ÕÁ ýV¯MošGdica–U i“le“seguen¸èti“p˜er“adattarli“al“tuo“sistema“di“recup˜ero.Ž© Ä‘)ý`ºcd‘?¬mntŽ¤ ®¡Non-networkŽ¡‘)ý`etc/fstabŽ¡‘)ý`etc/mdtab‘$½´dovrebbe–?¬funzionare“correttamenteŽ¡NetworkŽ¡‘)ý`etc/hostsŽ¡‘)ý`etc/resolv.confŽ¡‘)ý`etc/hosts.equiv‘/= e–?¬file“correlatiŽ¡‘)ý`etc/rc.d/rc.inet1‘$½´correggi–?¬ip#,“mask,“gateway,“ecc...Ž¡‘)ý`etc/rc.d/rc.S‘9¼drimuovi–?¬tutta“la“sezione“riguardante“loŽ¡’§õ€stato–?¬del“filesystem,Ž¡‘SúÀa–?¬partire“da:Ž¡‘}ø #–?¬Test“to“see“if“the“root“partition“isread-onlyŽ¡‘SúÀfino–?¬a,“ma“senza“includerlo:Ž¡‘}ø #–?¬remove“/etc/mtab*“so“that“mount“will“.....Ž¡’§õ€Questo–?¬evita“il“fastidioso“avvertimentoŽ¡’§õ€che–?¬il“ramdisk“€è“montato“in“lettura/scrittura.Ž¡‘)ý`etc/rc.d/rc.xxxxx‘$½´altri–?¬se“richiesto,“vedi“oltreŽ¡‘)ý`root/.rhosts‘>üse‘?¬presenteŽ¡‘)ý`home/xxxx/xxxx‘4|¸altri–?¬se“richiestoŽ¡¡ATTENZIONE:‘>\La–?¬procedura“appena“illustrata“sposta“i“tuoi“fileŽ¡‘SúÀpassword–?¬e“shadow“sul“disco“di“recupero!!!!!Ž¡¡ATTENZIONE:‘>\Forse–?¬non“vuoi“che“questo“accada“per“ragioni“di“sicurezza.Ž¦¹Crea–…£tutte“le“directory“cš¸èhe“sono“necessarie“pGer“mon˜tare“/dev/disk...‘,WQuesti“sono“i“pun˜ti“di“moun˜t“pGer“eseguireŽ¡il›XÈb•Go“ot˜del˜sistema˜(partizione˜di˜b“o“ot˜e˜partizione˜di˜b“o“ot˜di˜bac¸èkup).‘|wIl˜mio˜sistema˜esegue˜il˜b“o“ot˜da˜dosŽ¡usando–U Ãloadlin¹,“comš¸èunque“anc˜he“partizioni“lin˜ux“e“lilo“funzioneranno“bGene.‘q€Il“mio“sistema“usa:Ž¦‘)ý`ºcd–?¬/root/raidboot/mnt‘9¼d<---“initrd“rootŽ¡‘)ý`mkdir–?¬dosa‘sxÈpunto“di“mount“della“partizione“dosŽ¡‘)ý`mkdir–?¬dosb‘sxÈpunto“di“mount“del“mirror“dosŽ¦¹Il–U lesystem“di“recupGero“€è“completo!Ž©ؼNoterai,›±8esaminando–kši“le“nel“lesystem“di“recupGero,˜cš¸èhe“ci“sono“ancora“molti“le“c˜he“p•Gotrebb“ero‘kšessereŽ¡cancellati.‘ÏÜNon–?l'ho“fatto“pGercš¸èh€é“complic˜herebbšGe“tropp˜o“la“pro˜cedura“e“la“maggior“parte“dei“sistemi“raidŽ¡hanno–U memoria“e“spazio“su“disco“a“sucienza.‘q€Se“vuoi“a•¸èv“ere–U un“lesystem“ancora“pi€ù“piccolo,“fallo!ŽŸ"ñ¦Æ4.11Ž‘%}¨Eseguire–¸il“b•_úo“ot–¸del“disp_úositivš o“RAID“-“lin˜uxrcŽŸMª¹Pš¸èer–U far“s€ì“c˜he“il“disco“di“recupšGero“esegua“il“b˜o˜ot“del“disp˜ositiv¸èo“raid“devi“solo“copiare“il“le“di“script:Ž¤؆‘'ÿÃlin®>uxrcŽ¡¹nella–U directory“rošGot“del“disp˜ositiv¸èo.Ž¦La–~‚teoria“del“funzionamenš¸èto“di“questo“le“€è“discussa“in“14“(AppGendice“G,“teoria“del“funzionamen˜to“di“lin˜uxrc).ŽŽŽŒ‹ÍÍ Û_2 ý ~?Ÿ„€ÕÁGŽÃ4.‘ñ8initrd–Õ-“Ricette“pšQÂer“il“RAID“mon®>tato“come“ro˜ot’Èšþ¹16ŽŽ ÕÁ ýV¯Un–@5linš¸èuxrc“(funzionan˜te)“molto“semplice“e“pi€ù“facile“da“capire“si“tro˜v‘ÿqÐa“in“11“(AppGendice“D),“½script–€rlinuxr‘ÿ}/c“eŽ¤ ®di–“°shutdown“obsoleti‘ɹ.‘q€Copia–U il“testo“seguen¸ète“in“un“le“Ãlin®>uxrc“¹e“salv‘ÿqÐalo“nella“tua“area“di“sviluppGo.ŽŸA‘–?¬º--------------------“linuxrc“----------------------Ž¡#!/bin/shŽ¡#–?¬ver“1.13“3-6-98Ž¡#Ž¡#################–?¬BEGIN“'linuxrc'“##################Ž¡#›>üDEFINIZIONE–?¬DELLE“FUNZIONI˜#Ž¡####################################################Ž¡#–?¬Definisce“la“funzione“'Fault'“nel“caso“in“cuiŽ¡#–?¬qualcosa“vada“storto“durante“l'esecuzione“di“'linuxrc'Ž¡#Ž¡FaultExit–?¬()“{Ž¡#–?¬corregge“fstab“per“mostrare“'/dev/ram0/“per“il“sistema“di“recuperoŽ¡‘þ°/bin/cat–?¬/etc/fstab“|“{Ž¡‘þ°while–?¬read“LineŽ¡‘þ°doŽ¡‘)ý`if–?¬[“-z“"$(“echo“${Line}“|“/usr/bin/grep“md0“)"“];“thenŽ¡‘>üecho‘?¬${Line}Ž¡‘)ý`elseŽ¡‘>üecho–?¬"/dev/ram0“/“ext2“defaults“1“1"Ž¡‘)ý`fiŽ¡‘þ°doneŽ¡‘þ°}–?¬>“/etc/tmp.$$Ž¡‘þ°/bin/mv–?¬/etc/tmp.$$“/etc/fstabŽ¡#‘$½´point–?¬root“at“/dev/ram0“(the“rescue“system)Ž¡‘)ý`echo‘?¬0x100>/proc/sys/kernel/real-root-devŽ¡‘)ý`/bin/umount‘?¬/procŽ¡‘)ý`exitŽ¡}Ž¡¡#–?¬Definisce“una“procedura“'Warning'“per“stampare“un“banner“sul“terminale“di“bootŽ¡#Ž¡Warning–?¬()“{Ž¡‘þ°echo‘?¬'*********************************'Ž¡‘þ°echo–?¬-e“"“$*"Ž¡‘þ°echo‘?¬'*********************************'Ž¡}Ž¡¡#–?¬Definisce“'SplitKernelArg'“che“aiuta“ad“estrarre“gli“argomenti“del“kernelŽ¡#–?¬riguardanti“'Raid'Ž¡SplitKernelArg–?¬()“{“eval“$1='$(“IFS=,;“echo“$2)'“}Ž¡¡#–?¬Definisce“'SplitConfArgs'“che“aiuta“ad“estrarre“gli“argomenti“diŽ¡#–?¬configurazione“del“sistemaŽ¡SplitConfArgs–?¬()“{Ž¡‘þ°RaidBootType=$1Ž¡‘þ°RaidBootDevice=$2Ž¡‘þ°RaidConfigPath=$3Ž¡}ŽŽŽŒ‹×ô Û_2 ý ~?Ÿ„€ÕÁGŽÃ4.‘ñ8initrd–Õ-“Ricette“pšQÂer“il“RAID“mon®>tato“come“ro˜ot’Èšþ¹17ŽŽ ÕÁ ýV¯º########################################################Ž¤ ®###################–?¬MAIN“linuxrc“#######################Ž¡########################################################Ž¡#–?¬monta“il“filesystem“procŽ¡/bin/mount‘?¬/procŽ¡¡#–?¬Prende“dalla“linea“di“comando“la“partizione“di“boot“e“la“posizioneŽ¡#–?¬della“configurazioneŽ¡CMDLINE=`/bin/cat‘?¬/proc/cmdline`Ž¡for–?¬Parameter“in“$CMDLINE;“doŽ¡‘þ°Parameter=$(–?¬IFS='=';“echo“${Parameter}“)Ž¡‘þ°case–?¬$Parameter“inŽ¡‘)ý`Raid*)–?¬SplitKernelArg“$Parameter;;Ž¡‘þ°esacŽ¡doneŽ¡¡#–?¬controlla“'required“raid“boot'Ž¡if–?¬[“-z“"${Raid_Conf}"“];“thenŽ¡‘þ°Warning–?¬Kernel“command“line“\'Raid_Conf\'“missingŽ¡‘þ°FaultExitŽ¡fiŽ¡SplitConfArgs‘?¬$Raid_ConfŽ¡¡#–?¬monta“temporaneamente“la“partizione“di“bootŽ¡/bin/mount–?¬-t“${RaidBootType}“${RaidBootDevice}“/mntŽ¡¡#–?¬prende“i“file“della“directory“etc“dal“sistema“raid“primarioŽ¡pushd‘?¬/etcŽ¡¡#–?¬questo“verr€à“decompresso“nella“directory“/etc“(vedi“rc.6)Ž¡if–?¬[“!“-f“/mnt/${RaidConfigPath}/raidboot.etc“];“thenŽ¡#–?¬cattive“notizie,“questo“file“dovrebbe“esserciŽ¡‘þ°Warning–?¬required“file“\'raidboot.etc\'“\Ž¡‘þ°missing–?¬from“${RaidBootDevice}/${RaidConfigPath}“\\n“\Ž¡‘þ°\\tUsing–?¬rescue“system“defaultsŽ¡elseŽ¡‘þ°/bin/tar–?¬-xf“/mnt/${RaidConfigPath}/raidboot.etcŽ¡fiŽ¡#–?¬cerca“il“'vero'“dispositivo“raidboot“per“questo“bootŽ¡#–?¬il“percorso“dello“stato“e“il“nome“di“raidX.confŽ¡if–?¬[“!“-f“/mnt/${RaidConfigPath}/raidboot.cfg“];“thenŽ¡#–?¬cattive“notizie,“questo“file“dovrebbe“esserciŽ¡‘þ°Warning–?¬required“file“'raidboot.cfg'“\Ž¡‘þ°missing–?¬from“${RaidBootDevice}/${RaidConfigPath}\\n“\Ž¡‘þ°\\tUsing–?¬rescue“system“defaultsŽ¡#–?¬Prendi“il“primo“nome“di“file“raidX.conf“in“$RArg1Ž¡‘þ°RaidBootDevs=$RaidBootDeviceŽ¡‘þ°RaidStatusPath=$RaidConfigPathŽ¡‘þ°for–?¬RaidConfigEtc“in“$(“ls“raid*.conf“)Ž¡‘þ°do–?¬break;“doneŽŽŽŒ‹ß Û_2 ý ~?Ÿ„€ÕÁGŽÃ4.‘ñ8initrd–Õ-“Ricette“pšQÂer“il“RAID“mon®>tato“come“ro˜ot’Èšþ¹18ŽŽ ÕÁ ýV¯ºelseŽ¤ ®‘þ°{Ž¡‘þ°read‘?¬RaidBootDevsŽ¡‘þ°read‘?¬RaidStatusPathŽ¡‘þ°read‘?¬RaidConfigEtcŽ¡‘þ°}–?¬<“/mnt/${RaidConfigPath}/raidboot.cfgŽ¡¡fiŽ¡popdŽ¡/bin/umount‘?¬/mntŽ¡¡#–?¬Nel“caso“in“cui“non“trovi“il“file“di“stato“raid“setta“un“flagŽ¡#Ž¡RAIDOWN="raidboot.ro–?¬not“found"Ž¡RAIDREF="raidgood.ref–?¬not“found"Ž¡echo–?¬"Reading“md0“shutdown“status."Ž¡¡#–?¬cerca“lo“stato“di“shutdown“raidŽ¡for–?¬Device“in“${RaidBootDevs}Ž¡doŽ¡#–?¬i“tipi“di“questi“filesystem“dovrebbero“essere“in“'fstab'Ž¡#‘ Xle–?¬partizioni“devono“essere“montate“per“avere“uno“shutdown“raid“pulitoŽ¡‘þ°/bin/mount–?¬${Device}“/mntŽ¡‘þ°if–?¬[“-f“/mnt/${RaidStatusPath}/raidboot.ro“];“thenŽ¡‘)ý`RAIDOWN=`/bin/cat‘?¬/mnt/${RaidStatusPath}/raidboot.ro`Ž¡‘)ý`RAIDREF=`/bin/cat‘?¬/mnt/${RaidStatusPath}/raidgood.ref`Ž¡‘)ý`/bin/umount‘?¬/mntŽ¡‘)ý`breakŽ¡‘þ°fiŽ¡‘þ°/bin/umount‘?¬/mntŽ¡doneŽ¡#–?¬Controlla“che“lo“shutdown“sia“avvenuto“in“modo“pulitoŽ¡if–?¬[“"${RAIDOWN}"“!=“"${RAIDREF}"“];“thenŽ¡‘þ°Warning–?¬shutdown“ERROR“${RAIDOWN}Ž¡‘þ°FaultExitŽ¡fiŽ¡¡#–?¬L'array“raid“€è“pulito,“rimuovi“i“file“di“stato“di“shutdownŽ¡for–?¬Device“in“${RaidBootDevs}Ž¡doŽ¡‘þ°/bin/mount–?¬${Device}“/mntŽ¡‘þ°/bin/rm–?¬-f“/mnt/${RaidStatusPath}/raidboot.roŽ¡‘þ°/bin/umount‘?¬/mntŽ¡doneŽ¡¡#–?¬Scrivi“un“superblock“pulito“su“tutti“i“dispositivi“raidŽ¡¡echo–?¬"write“clean“superblocks"Ž¡/sbin/mkraid–?¬-f“--only-superblock“/etc/${RaidConfigEtc}Ž¡ŽŽŒ‹ç« Û_2 ý ~?Ÿ„€ÕÁGŽÃ4.‘ñ8initrd–Õ-“Ricette“pšQÂer“il“RAID“mon®>tato“come“ro˜ot’Èšþ¹19ŽŽ ÕÁ ýV¯º#–?¬Attiva“gli“array“raidŽ¤ ®if–?¬[“-z“"$Raid_ALT"“];“thenŽ¡‘þ°/sbin/mdadd‘?¬-arŽ¡elseŽ¡‘þ°/sbin/mdadd‘?¬$Raid_ALTŽ¡fiŽ¡¡#‘ XSe–?¬ci“sono“errori“-“ESCI“e“lascia“funzionante“il“sistema“di“recuperoŽ¡if–?¬[“$?“-ne“0“];“thenŽ¡‘¿Warning–?¬some“RAID“device“has“errorsŽ¡‘¿FaultExitŽ¡fiŽ¡¡#–?¬Tutto“va“bene,“fai“montare“/dev/md0“al“kernelŽ¡#–?¬e“d€ì“al“kernel“di“assumere“/dev/md0“come“il“dispsitivo“rootŽ¡#–?¬Il“valore“0x900“€è“il“numero“di“dispositivo“calcolato“come:Ž¡#‘ X256*numero_major–?¬+“numero_minorŽ¡echo–?¬"/dev/md0“mounted“on“root"Ž¡echo‘?¬0x900>/proc/sys/kernel/real-root-devŽ¡#–?¬umount“/proc“to“deallocate“initrd“device“ram“spaceŽ¡/bin/umount‘?¬/procŽ¡exitŽ¡#------------------–?¬end“linuxrc“----------------------ŽŸ,¹Aggiungi–U 'lin¸èuxrc'“al“device“di“b•Go“ot‘U initrdŽ©ÜI‘)ý`ºcd‘?¬/root/raidbootŽ¡‘)ý`chmod–?¬777“linuxrcŽ¡‘)ý`cp–?¬-p“linuxrc“mntŽŸ"çnÆ4.12Ž‘%}¨Moš_údicare–¸gli“script“rc“p˜er“lo“sh• utdo“wnŽŸMª¹P¸èer–ø(completare“l'installazione,‘ ÀmošGdica“gli“script“rc“in“mo˜do“da“salv‘ÿqÐare“lo“stato“degli“md“sul“v¸èero“disp˜ositiv¸èoŽ¡di–U roGot“quando“si“vš¸èerica“lo“sh˜utdo˜wn.Ž¦ºNella–?¬slackware“questi“script“sono“rc.0“->“rc.6Ž¡Nella–?¬debian“'bo'“sono“sia“'halt'“che“'reboot'Ž¡¡Se–?¬implementi“questo“in“un'altra“distribuzione,“per“favore“invia“perŽ¡e-mail–?¬le“istruzioni“e“file“di“esempio“in“modo“che“possano“essere“inclusi“qui.Ž¦¹Ho–TmošGdicato“leggermen¸ète“il“meto˜do“p˜er“lo“stop“raid“di“Boh¸èumil“Chalupa.‘n La“sua“soluzione“originale“€èŽ¡presen¸ètata–U in“8“(AppGendice“A).Ž©ؼP•¸èoic“h€é–Œnon“ci“sono“partizioni“lin¸èux“libšGere“sul“sistema“di“pro˜duzione“tranne“Ãmd0¹,‘™Íle“partizioni“di“b˜o˜ot“sonoŽ¡usate–¿²pGer“memorizzare“lo“stato“ÃraidOK‘O†readonly¹.‘±5Ho“scelto“di“scrivš¸èere“su“ogn˜una“copia“della“partizioneŽ¡di›|±b•Go“ot˜un˜le˜con•¸ètenen“te˜lo˜stato˜dell'arra“y˜md˜allo˜sh“utdo“wn˜il˜cui˜signicato˜€è:‘À¢il˜dispGositiv“o˜md˜€è˜statoŽ¡rimonš¸ètato––ÿin“sola“lettura.‘7Questo“fa“s€ì“c˜he“il“sistema“pGossa“con˜tin˜uare“a“funzionare“anc˜he“nel“caso“c˜he“unoŽ¡dei–U drivš¸èe“m˜uoia.Ž¦Lo–¸#script“di“sh•¸èutdo“wn–¸#€è“stato“mošGdicato“in“mo˜do“da“ricš¸èhiamare“13“(rc.raido˜wn),‘Ðãc˜he“salv‘ÿqÐa“le“informazioniŽ¡necessarie–JpšGer“eettuare“eettuare“il“reb˜o˜ot“e“mon¸ètare“il“disp˜ositivš¸èo“raid.‘/ŽAlcuni“esempi“di“script“di“sh˜utdo˜wnŽŽŽŒ‹î Û_2 ý ~?Ÿ„€ÕÁGŽÃ4.‘ñ8initrd–Õ-“Ricette“pšQÂer“il“RAID“mon®>tato“come“ro˜ot’Èšþ¹20ŽŽ ÕÁ ýV¯pGer–U v‘ÿqÐarie“distribuzioni“di“linš¸èux“si“tro˜v‘ÿqÐano“in“9“(AppGendice“B).ŽŸؼPš¸èer–Å®catturare“lo“stato“allo“sh˜utdo˜wn“dell'arra˜y“raid“inserisci“una“c˜hiamata“a“13“(rc.raido˜wn)“dopGo“tutte“leŽ¤ ®istruzioni–ö0Ãcase“¹(se“presenš¸èti)“ma“prima“dell'inizio“dello“sh˜utdo˜wn“v˜ero“e“proprio“(kill,‘ -salv‘ÿqÐataggi“di“stato“ecc.)Ž¡e–U prima“cš¸èhe“i“lesystem“siano“smon˜tati.Ž©y‰º############–?¬Salva“informazioni“di“boot“raid“e“stato“##############Ž¡#Ž¡‘ Xif–?¬[“-x“/etc/rc.d/rc.raidown“];“thenŽ¡‘þ°/etc/rc.d/rc.raidownŽ¡‘ XfiŽ¡##################–?¬fine“del“boot“raid“#########################Ž¦¹Una–tt–U ¹e“sul“sistema“usato“pšGer“lo“svilupp˜o“se“si“troš¸èv‘ÿqÐa“sulla“stessa“macc˜hina.Ž¦MošGdica–'¿Ãetc/fstab“¹sul“lesystem“di“recup˜ero“in“mo˜do“opp˜ortuno“ed“assicurati“c¸èhe“Ãmdtab“¹sul“lesystem“diŽ¡recupGero–U sia“corretto.Ž¦Aš¸èdesso–Æcopia“il“disco“di“recupGero“sulla“tua“partizione“dos,‘re“tutto“do˜vrebbGe“essere“pron˜to“pšGer“eseguire“il“b˜o˜otŽ¡con–U il“dispšGositiv¸èo“raid“come“ro˜ot.Ž©y‰‘)ý`ºumount‘?¬mntŽ¡‘)ý`losetup–?¬-d“/dev/loop0Ž¡‘)ý`gzip–?¬-9“rescueŽ¦¹Copia–U rescue.gz“sulle“tue“partizioni“di“b•Go“ot.ŽŸؼT‘ÿ*¸utto–ÛGci€ò“cš¸èhe“rimane“€è“creare“il“le“di“congurazione“Ãraidb•QÂo“ot.conf–ÛG¹e“con˜trollare“il“n˜uo˜v˜o“le“systemŽ¡eseguendo–U il“reb•Go“ot.ŽŸ# FÆ4.13Ž‘%}¨Congurare–¸RAIDBOOT“-“raidb•_úo“ot.confŽŸMª¹I‘•écommen•¸èti›•úc“he˜seguono˜il˜le˜di˜congurazione˜di˜esempio˜spiegano˜ciascuna˜delle˜tre˜linee.‘4Questo˜le˜diŽ¡esempio–p@€è“relativš¸èo“ad“un“arra˜y“scsi“raid5“con“4“driv˜e“con“partizioni“di“b•Go“ot–p@duplicate“sui“driv˜e“sda1“e“sdb1.Ž¡Sostituisci›U in•¸èv“ece˜i˜parametri˜relativi˜ai˜tuoi˜le˜system.Ž¦‘ Xº/dev/sda1‘?¬/dev/sdb1Ž¡‘ XlinuxŽ¡‘ Xraid5.confŽŽŽŒ‹ø Û_2 ý ~?Ÿ„€ÕÁGŽÃ4.‘ñ8initrd–Õ-“Ricette“pšQÂer“il“RAID“mon®>tato“come“ro˜ot’Èšþ¹21ŽŽ ÕÁ ýV¯º#–?¬i“commenti“possono“essere“messi“solo“'dopo'“le“treŽ¤ ®#–?¬linee“di“configurazione.Ž¡#Ž¡#–?¬Questo“€è“'raidboot.conf'Ž¡#Ž¡#–?¬linea“uno,“le“partizioni“contenenti“il“sistema“raid-rescue“'initrd'Ž¡#‘$½´Non–?¬€è“necessario“eseguire“il“boot“da“queste“partizioni;“comunque,Ž¡#‘$½´poich€é–?¬il“sistema“di“recupero“non“entra“su“un“solo“floppy,“€èŽ¡#‘$½´necessario–?¬sapere“quali“partizioni“devono“essere“usate“per“caricareŽ¡#‘$½´il–?¬sistema“di“recuperoŽ¡#Ž¡#–?¬linea“due,“il“percorso“del“file“di“configurazione“raidbootŽ¡#‘$½´La–?¬posizione“dello“stato“di“shutdown,“ecc...“a“tempo“di“bootŽ¡#‘$½´NON–?¬include“le“informazioni“sul“punto“di“mount,“solo“il“'percorso'Ž¡#‘$½´/punto_di_mount/'percorso'Ž¡#Ž¡#–?¬linea“tre,“il“nome“del“file“di“configurazione“raidŽ¡#‘$½´Il–?¬file“di“configurazione“raid“corrente,“ad“esempioŽ¡#‘$½´raid1.conf,‘?¬raid5.confŽŸ"çkÆ4.14Ž‘%}¨Le–¸v‘ÿ@ ariabili“del“k ernel“p_úer“RESCUE“e“RAIDŽŸMª¹Ci–U sono“due“v‘ÿqÐariabili“del“k¸èernel“pšGer“il“sistema“di“recup˜ero“e“RAID,“solo“la“prima“dev¸èe“essere“sp˜ecicata.ŽŸÜ;‘¸ŽŽŽ‘¹Raid_Conf=msdos,/dev/sda1,raidb•Go“otŽ©/Ó‘=ÿQuesta–yv‘ÿqÐariabile“punš¸èta“al“dispGositiv˜o“raid“di“b•Go“ot–ye“al“le“di“congurazione.‘\óP˜er“il“opp˜yŽ¡‘/di›Ôb•Go“ot˜di˜recup“ero˜puoi˜sp“ecicarla˜alla˜linea˜di˜comando˜del˜k¸èernel˜o˜nei˜le˜di˜b“o“ot˜diŽ¡‘/loadlin–U o“di“lilo.Ž¤ð³‘=ÿformato:‘q€º'filesystem-type,device,path-to-config-from-mountpoint'Ž¡‘¸ŽŽŽ‘¹Raid_AL‘ÿ*¸T=-r,-p5,/dev/md0,/dev/sda3–U /dev/sdb3“/dev/sdc3“/dev/sdd3Ž¦‘=ÿP¸èarametri–Îalternativi“pšGer“mdadd“necessari“quando“si“eettua“il“b˜o˜ot“con“arra¸èy“raid“nonŽ¤ ®‘/ridondan¸èti.‘zQQuesti–­fsono“i“parametri“da“linea“di“comando,›Ãwseparati“da“virgole,˜pGer“Ãmdadd¹.Ž¡‘/A‘Û¼meno–ÛÛcš¸èhe“non“siano“necessari“pGer“a˜vviare“un“arra˜y“malfunzionan˜te/non“ridondan˜te,‘ôCOM-Ž¡‘/MENT–ÿ*¸A“TELI–U O“SPECIFICA‘ÿ*¸TELI“CON“UN“'NULL'.ŽŸð³‘=ÿi.e.‘q€Raid_AL‘ÿ*¸T=Ž©Ü:En•¸ètram“bi–ÿïquesti“parametri“pšGossono“essere“sp˜ecicati“nel“le“di“b˜o˜ot“di“lilo“o“loadlin“o“nella“linea“di“comandoŽ¡del–‹nkš¸èernel“di“loadlin.‘iBisogna“fare“attenzione,–™com˜unque,“a–‹nnon“eccedere“la“lunghezza“massima“di“linea“nelŽ¡caso–U si“usi“la“linea“di“comando“(128“caratteri).ŽŸؼEseguendo–U il“b•Go“ot–U con“Ãlilo¹,“i“parametri“sono“inclusi“nel“le“di“congurazione“di“lilo“nella“forma:Ž¦ºappend="Raid_Conf=msdos,/dev/sda1,raidboot"Ž¡append="Raid_ALT=-r,-p5,/dev/md0,/dev/sda3–?¬/dev/sdb3“/dev/sdc3“/dev/sdd3"Ž¦¹V‘ÿ*¸edi–U Ãman‘Õlilo.conf“¹pGer“informazioni“pi€ù“dettagliate.ŽŸؼP•¸èoic“h€é–ºÃho“dell'hardwš¸èare“c˜he“ric˜hiede“utilit˜y“di“congurazione“DOS,“ho“una“piccola“partizione“dos“nel“sistema.Ž¡Quindi,‘Kuso–Hxloadlin“pšGer“eseguire“il“b˜o˜ot“del“sistema“raid5“dalla“partizione“dos“con“un“mirror“(una“copia)“delŽŽŽŒ‹ Û_2 ý ~?Ÿ„€ÕÁGŽÃ4.‘ñ8initrd–Õ-“Ricette“pšQÂer“il“RAID“mon®>tato“come“ro˜ot’Èšþ¹22ŽŽ ÕÁ ýV¯disco.‘IŠUn–Ý>“NOTA!!“la“sola“differenza“fra“forzare“l'esecuzione“del“sistemaŽ¡‘)ý`di–?¬recupero“e“montare“il“dispositivo“raid“€è“il“parametro“di“loadlinŽ¡¡‘SúÀroot=/dev/ram0‘4|¸per–?¬il“sistema“di“recuperoŽ¡‘SúÀroot=/dev/md0‘9¼dper‘?¬RAIDŽ¡¡‘SúÀCon–?¬root=/dev/ram0“il“dispositivo“RAID“non“sar€à“montatoŽ¡‘SúÀe–?¬il“sistema“di“recupero“partir€à“incondizionatamente.ŽŸؼ¹Se–U l'arraš¸èy“RAID“fallisce,“il“sistema“di“recupGero“viene“lasciato“mon˜tato“e“funzionan˜te.ŽŸ(ÀœÂ5Ž‘ÁCongurare–G\il“sistema“RAID.ŽŸèÆ5.1Ž‘¾Sp_úecicš he–Ââdi“sistema.‘ÉSono“stati“congurati“due“sistemi“con“sc˜hede“madriŽŸõ‘¾iden• tic“he.Ž©Mª’²tغRaid-1‘4|¸Raid-5Ž¡Motherboard:‘þ°Iwill–?¬P55TU‘>\dual“ide‘)ý`adaptec“scsiŽ¡Processore:‘>\Intel‘?¬P200Ž¡Dischi:’ƒ7Ì2ea‘ X7–?¬gig‘~4“ea“Segate“4.2“gigŽ¡’§õ€Maxtors‘/= wide‘?¬scsiiŽŸؼ¹I‘Ôƒdrivš¸èe–Ô¤sono“indicati“da“lin˜ux“con“i“nomi“da“'sda'“a“'sdd'“sul“sistema“raid5“e“da“'hda'“a“'hdc'“sul“sistema“raid1.ŽŸ#ÃÆ5.2Ž‘¾Pš artitionare–¸i“disc˜hi“rigidi.Ž¦¹P•¸èoic“h€é–°átestare“un“grosso“arraš¸èy“raid“di“roGot“mon˜tabile“€è“dicile“a“causa“del“problema“di“reb•Go“ot–°ácausato“daŽ¡cš¸èkraid,‘ího–Ó ripartizionato“il“mio“spazio“di“sw˜ap“in“mošGdo“da“includere“una“partizione“RAID‘Òìpi€ù“piccola“a“scop˜oŽ¡di›†ctest,–’³sda6,“sdb6,“sdc6,“sdd6˜e˜una˜piccola˜coppia˜di˜partizioni,“ro•Got˜e˜/usr/src˜p“er˜sviluppare˜e˜testare˜ilŽ¡kš¸èernel–U raid“e“gli“strumen˜ti.‘q€F‘ÿ*¸orse“ti“pu€ò“essere“utile.ŽŸؼ‘)ý`º\dos–?¬boot‘)ý`16“meg˜partizione“di“bootŽŽŽŒ‹ˆ Û_2 ý ~?Ÿ„€ÕÁGŽÃ5.‘ñ8Congurare–Õil“sistema“RAID.’%Ö;¹24ŽŽ ÕÁ ýV¯º*–?¬/dev/sda2‘>\extended‘)ý`130“meg“(vedi“sotto)Ž¤ ®‘ X/dev/sda3‘>\linux–?¬native‘þ°4“gig‘¿raid5-1“primarioŽ¡----------------------sda2------------------------------Ž¡*–?¬/dev/sda5‘>\linux“swap‘~113“meg“spazio“di“swapŽ¡*–?¬/dev/sda6‘>\linux“native‘þ°16“meg‘ Xtest“raid5-1Ž¡========================================================Ž¡› X/dev/sdb1‘>\dos–?¬boot‘)ý`16“meg˜copia“partizione“di“bootŽ¡*–?¬/dev/sdb2‘>\extended‘)ý`130“meg“(vedi“sotto)Ž¡‘ X/dev/sdb3‘>\linux–?¬native‘þ°4“gig‘¿raid5-2“primarioŽ¡----------------------sdb2------------------------------Ž¡*–?¬/dev/sdb5‘>\linux“swap‘~113“meg“spazio“di“swapŽ¡*–?¬/dev/sdb6‘>\linux“native‘þ°16“meg‘ Xtest“raid5-2Ž¡========================================================Ž¡*–?¬/dev/sdc2‘>\extended‘)ý`146“meg“(vedi“sotto)Ž¡‘ X/dev/sdc3‘>\linux–?¬native‘þ°4“gig‘¿raid5-3“primarioŽ¡----------------------sdc2------------------------------Ž¡*–?¬/dev/sdc5‘>\linux“swap‘~130“meg“partiz.“di“root“di“sviluppoŽ¡*–?¬/dev/sdc6‘>\linux“native‘þ°16“meg‘ Xtest“raid5-3Ž¡========================================================Ž¡*–?¬/dev/sdd2‘>\extended‘)ý`146“meg“(vedi“sotto)Ž¡‘ X/dev/sdd3‘>\linux–?¬native‘þ°4“gig‘¿raid5-4“primarioŽ¡----------------------sdd2------------------------------Ž¡*–?¬/dev/sdd5‘>\linux“swap‘~130“meg“/usr/src“di“sviluppoŽ¡*–?¬/dev/sdd6‘>\linux“native‘þ°16“meg‘ Xtest“raid5-4Ž¡¡¡‘)ý`\dos‘D;¼16meg‘¿partizione–?¬di“bootŽ¡*–?¬/dev/hda2‘>\extended‘)ý`126m‘þ°(vedi“sotto)Ž¡‘ X/dev/hda3‘>\linux‘9¼d126m‘þ°partizione–?¬root“di“sviluppoŽ¡‘ X/dev/hda4‘>\linux‘9¼d6+gig‘¿raid1-1Ž¡----------------------hda2------------------------------Ž¡*–?¬/dev/hda5‘>\linux‘>ü26m‘þ°test“raid1-1Ž¡*–?¬/dev/hda6‘>\linux“swap‘~100mŽ¡========================================================Ž¡¡‘ X/dev/hdc1‘>\€è–?¬semplicemente“una“copia“esatta“di“hda1“cos€ì“cheŽ¡‘SúÀla–?¬partizione“pu€ò“essere“resa“attiva“se“hda“fallisceŽ¡*–?¬/dev/hdc2‘>\extended‘)ý`126m‘þ°(vedi“sotto)Ž¡‘ X/dev/hdc3‘>\linux‘9¼d126m‘þ°/usr/src–?¬di“sviluppoŽ¡‘ X/dev/hdc4‘>\linux‘9¼d6+gig‘¿raid1-2Ž¡----------------------hdc2------------------------------Ž¡*–?¬/dev/hdc5‘>\linux‘>ü26m‘þ°test“raid1-2Ž¡*–?¬/dev/hdc6‘>\linux“swap‘~100mŽŸؼ¹Le–ð†partizioni“sdx2“e“hdx3“sono“state“denite“'sw¸èap'“dopšGo“lo“svilupp˜o“di“questa“utilit¸èy‘ÿ*¸.‘C³A‘þã vrei“p˜otuto“farlaŽ¡su–ZXun'altra“macc•¸èhina,›[¥com“unque,˜le–ZXlibrerie“e“i“kš¸èernel“sono“v˜ecc˜hi“di“un“anno“o“pi€ù“sulle“mie“altre“macc˜hineŽ¡linš¸èux,–U e“ho“preferito“costruirla“sulla“macc˜hina“target.ŽŽŽŒ‹Ñ Û_2 ý ~?Ÿ„€ÕÁGŽÃ6.‘ñ8Costruire–Õil“le“system“RAID.’!Çè¹25ŽŽ ÕÁ ýV¯Lo–¨8scš¸èhema“di“partizionamen˜to“€è“stato“scelto“in“moGdo“tale“c˜he,‘¼ÿnel“caso“c˜he“uno“qualsiasi“dei“disc˜hi“falliscaŽ¤ ®catastrocamenš¸ète,‘ü¯il–æ“sistema“con˜tin˜ui“a“funzionare“e“sia“ancora“pšGossibile“eseguire“il“b˜o˜ot“con“il“minimo“sforzoŽ¡e–U senza“pGerdita“di“dati.ŽŸؼ‘¸ŽŽŽ‘¹Se–ß:un“qualsiasi“driv¸èe“fallisce,‘Ála“prošGcedura“di“b˜o˜ot“terminer€à“e“v¸èerr€à“fatto“partire“il“sistema“di“recu-Ž¡‘pšGero.‘oÖL'esame–P!dei“messaggi“su“sc¸èhermo“o“/dos½x‘40¹/raidb˜o˜ot/raidstat.ro“informer€à“l'op˜eratore“sullo“statoŽ¡‘dell'arra¸èy‘ÿ*¸.Ž©®‘¸ŽŽŽ‘¹Se–ÓÔsda1“(raid5)“o“hda1“(raid1)“fallisce,‘í°la“partizione“di“b•Go“ot–ÓÔdi“bacš¸èkup“del“dos“dev˜e“essere“resa“'attiv‘ÿqÐa'“eŽ¡‘il–"tbios“devš¸èe“riconoscere“la“n˜uo˜v‘ÿqÐa“partizione“come“dispGositiv˜o“di“b•Go“ot–"to“dev˜e“essere“spGostato“sicamen˜teŽ¡‘alla–U pGosizione“½x‘40¹da.ŽŸ®‘In–5òalternativ‘ÿqÐa,‘<.il“sistema“p•Gotrebb“e–5òessere“fatto“partire“con“un“opp¸èy“disk“usando“l'immagine“initrd“sulŽ¡‘b•Go“ot–U drivš¸èe“di“bac˜kup“c˜he“rimane.‘q€Il“sistema“raid“pu€ò“pGoi“essere“reso“attiv˜o“ancora“con:Ž¤®‘H=º"/sbin/mkraid–?¬/etc/raid“/dosx/raidboot/raidgood.refŽ¦¦‘Býbshutdown–?¬-r“nowŽ¡‘¹pšGer–U fare“un“reb˜o˜ot“pulito,“e“il“sistema“€è“ancora“in“funzione.ŽŸ(ÀœÂ6Ž‘ÁCostruire–G\il“le“system“RAID.ŽŸ¿:¹Questa–Ó¦€è“la“descrizione“dei“miei“sistemi“RAID‘Ó†di“cui“parlo“nelle“spšGecic¸èhe“di“sistema.‘FXIl“tuo“sistema“p˜otrebb˜eŽ¦a•¸èv“ere›wèun'arc“hitettura˜RAID‘w°div“ersa,‘¤'p•Gerci€ò˜app“orta˜le˜mo“dic¸èhe˜opp“ortune.‘'ÃLeggi˜anc•¸èhe˜le˜pagine˜di˜man“ualeŽ¦e–U Quicš¸èkStart.RAID“c˜he“€è“incluso“nei“raidtoGols-0.42.ŽŸ#ÃÆ6.1Ž‘¾/etc/raid5.confŽŸMª‘)ý`º#–?¬raid-5:“configurazioneŽ¦‘)ý`raiddev‘Y:l/dev/md0Ž¦‘)ý`raid-level‘I{h5Ž¦‘)ý`nr-raid-disks‘9¼d4Ž¦‘)ý`chunk-size‘I{h32Ž¦¦‘)ý`#–?¬Parity“placement“algorithmŽ¦–)ý`parity-algorithm“left-symmetricŽ¦¦‘)ý`#–?¬Spare“disks“for“hot“reconstructionŽ¦‘)ý`#nr-spare-disks‘/= 0ŽŽŽŒ‹)ü Û_2 ý ~?Ÿ„€ÕÁGŽÃ6.‘ñ8Costruire–Õil“le“system“RAID.’!Çè¹26ŽŽ ÕÁ ýV¯¤ ®‘)ý`ºdevice‘^z/dev/sda3Ž¡‘)ý`raid-disk‘N»0Ž¡¡‘)ý`device‘^z/dev/sdb3Ž¡‘)ý`raid-disk‘N»1Ž¡¡‘)ý`device‘^z/dev/sdc3Ž¡‘)ý`raid-disk‘N»2Ž¡¡‘)ý`device‘^z/dev/sdd3Ž¡‘)ý`raid-disk‘N»3Ž©"ÄuÆ6.2Ž‘¾/etc/raid1.confŽŸMª‘)ý`º#–?¬raid-1“configurazioneŽ¡‘)ý`raiddev‘Y:l/dev/md0Ž¡‘)ý`raid-level‘I{h1Ž¡‘)ý`nr-raid-disks‘9¼d2Ž¡‘)ý`nr-spare-disks‘4|¸0Ž¡¡‘)ý`device‘^z/dev/hda4Ž¡‘)ý`raid-disk‘N»0Ž¡¡‘)ý`device‘^z/dev/hdc4Ž¡‘)ý`raid-disk‘N»1Ž¦Æ6.3Ž‘¾Pro•_úcedure›¸p“er˜la˜costruzione˜passo˜a˜passo˜di˜un˜le˜system˜RAID.ŽŸMª¹P¸èer–U il“mio“sistema“RAID5“ho“fatto“un'installazione“completa“di:Ž©9Ê‘)ý`ºSlackware-3.4‘¿qualsiasi–?¬distribuzione“recente“dovrebbe“andare“beneŽ¡‘)ý`linuxthreads-0.71Ž¡‘)ý`raidtools-0.42Ž¡‘)ý`linux-2.0.33–?¬con“la“patch“raid145“e“la“patch“di“GadiŽ¦¹Crea–U e“formatta“il“dispGositiv¸èo“raid.Ž¦‘)ý`ºmkraid‘?¬/etc/raid5.confŽ¡‘)ý`mdcreate–?¬raid5“/dev/md0“/dev/sda3“/dev/sdb3“/dev/sdc3“/dev/sdd3Ž¡‘)ý`mdadd‘?¬-arŽ¡‘)ý`mke2fs‘?¬/dev/md0Ž¡‘)ý`mkdir‘?¬/mdŽ¡‘)ý`mount–?¬-t“ext2“/dev/md0“/mdŽ¦¹Crea–U i“le“di“riferimenš¸èto“c˜he“v˜erranno“usati“da“reb•Go“ot,–U ci“p•Gotrebb“ero–U essere“delle“dierenze“sul“tuo“sistema.Ž¦‘)ý`ºcat–?¬/proc/mdstat“|“grep“md0“>“/dosa/raidboot/raidgood.refŽ¡‘)ý`cat–?¬/proc/mdstat“|“grep“md0“>“/dosb/raidboot/raidgood.refŽ¦¹Usa›U Slac•¸èkw“are-3.4˜o˜un'altra˜distribuzione˜pGer˜costruire˜il˜tuo˜SOŽŽŽŒ‹4: Û_2 ý ~?Ÿ„€ÕÁGŽÃ6.‘ñ8Costruire–Õil“le“system“RAID.’!Çè¹27ŽŽ ÕÁ ýV¯‘)ý`ºsetupŽ¤×6¹SpGecica–5'/md'“come“target,‘;€e“il“sorgenš¸ète“c˜he“usi“normalmen˜te.‘fÓScegli“ed“installa“i“diskset“c˜he“ti“in˜teressanoŽ© ®tranne–U il“kš¸èernel.‘q€Congura“il“sistema,“ma“salta“la“sezione“su“lilo“e“sul“b•Go“ot–U del“k˜ernel.‘q€Esci“da“setup.ŽŸؼInstalla‘U 'pthreads'Ž¡‘)ý`ºcd‘?¬/usr/src/linuxthreads-0.71Ž¡¹mošGdica–U il“Mak¸èele“e“sp˜ecicaŽ¡‘)ý`ºBUILDIR=/mdŽ¦¦‘)ý`makeŽ¦‘)ý`make‘?¬installŽ¡¹Installa‘U 'raidtoGols'Ž¡‘)ý`ºcd‘?¬/usr/src/raidtools-0.42Ž¦‘)ý`configure–?¬--sbindir=/md/sbin“--prefix=/md/usrŽ¡¹correggi–U l'errore“dei“raidtoGols“cš¸èhe“si“v˜erica“al“mak˜e“installŽ¡‘)ý`ºcd‘?¬/md/sbinŽ¦‘)ý`rm‘?¬mdrunŽ¦‘)ý`rm‘?¬mdstopŽ¦‘)ý`ln–?¬-s“mdadd“mdrunŽ¦‘)ý`ln–?¬-s“mdadd“mdstopŽ¡¹Crea‘U /dev/mdxŽ¡‘)ý`ºcp–?¬-a“/dev/md*“/md/devŽ¡¹Aggiungi–U la“congurazione“del“sistema“dal“sistema“corren¸ète“(ignora“gli“errori).Ž¡‘)ý`ºcp–?¬-dp“/etc/*“mnt/etcŽ¦‘)ý`cp–?¬-dp“/etc/rc.d/*“mnt/etc/rc.d‘/= (include“il“nuovo“rc.6)Ž¦‘)ý`mkdir‘ Xmnt/lib/modulesŽ¦‘)ý`cp–?¬-a‘ X/lib/modules/2.x.x“mnt/lib/modules“<---“il“2.x.x“correnteŽ¡¹Aš¸èdatta–U i“le“seguen˜ti“al“tuo“le“systemŽ¡‘)ý`ºcd‘?¬/mdŽ¦¦Non-networkŽ¦‘)ý`etc/fstab‘$½´inserisci–?¬i“dispositivi“di“root“e“raid“corretti.Ž¦‘)ý`etc/mdtab‘$½´dovrebbe‘?¬funzionareŽ¦NetworkŽ¦‘)ý`etc/hostsŽ¦‘)ý`etc/resolv.confŽ¦‘)ý`etc/hosts.equiv‘/= e–?¬file“correlatiŽ¦‘)ý`etc/rc.d/rc.inet1‘$½´correggi–?¬il“numero“ip#,“mask,“gateway,“ecc...ŽŽŽŒ‹:G Û_2 ý ~?Ÿ„€ÕÁGŽÃ7.‘ñ8Un'ultima‘Õcosa.’kѹ28ŽŽ ÕÁ ýV¯‘)ý`ºetc/rc.d/rc.S‘9¼dtogli–?¬tutta“la“sezione“sulloŽ¤ ®’§õ€stato–?¬del“file“systemŽ¡‘SúÀda:Ž¡‘}ø #–?¬Test“to“see“if“the“root“partition“isread-onlyŽ¡‘SúÀa,–?¬ma“non“incluso:Ž¡‘}ø #–?¬remove“/etc/mtab*“so“that“mount“will“.....Ž¡’§õ€Questo–?¬evita“il“fastidioso“avvertimentoŽ¡’§õ€sul–?¬fatto“che“il“ramdisk“€è“montato“rw.Ž¡‘)ý`etc/rc.d/rc.xxxxx‘$½´altri–?¬se“necessarioŽ¡‘)ý`root/.rhosts‘>üse‘?¬presenteŽ¡‘)ý`home/xxxx/xxxx‘4|¸altri–?¬se“necessarioŽ¡¡–?¬ATTENZIONE:‘þ°La“procedura“sopra“muove“i“tuoi“file“password“e“shadowŽ¡‘SúÀsul–?¬nuovo“file“system!!!!!Ž¡¡–?¬ATTENZIONE:‘þ°Puoi“non“volerlo“fare“per“ragioni“di“sicurezza.Ž©ؼ¹Crea–{hle“directory“necessarie“a“monš¸ètare“/dev/disk...‘äXQueste“sono“spGecic˜he“del“sistema.‘äXNel“mio“ho“bisognoŽ¡di:Ž¦‘)ý`ºcd–?¬/md‘4|¸<---“nuovo“root“del“file“systemŽ¡‘)ý`mkdir–?¬dosa‘sxÈpunto“di“mount“della“partizione“dosŽ¡‘)ý`mkdir–?¬dosb‘sxÈpunto“di“mount“del“mirror“dosŽ¦¹Il›«Bn•¸èuo“v“o˜le˜system˜€è˜completo.‘sæAssicurati˜di˜salv‘ÿqÐare˜lo˜stato˜di˜riferimen“to˜di˜md˜sul˜'v“ero'˜dispGositiv“o˜diŽ¡rošGot–U e“sei“pron¸èto“ad“eettuare“il“b˜o˜ot.ŽŸؼmon¸èta–U le“partizioni“dos“su“dosa“e“dosbŽ¦‘)ý`ºcat–?¬/proc/mdstat“|“grep“md0“>“/dosa/raidboot/raidgood.refŽ¡‘)ý`cat–?¬/proc/mdstat“|“grep“md0“>“/dosb/raidboot/raidgood.refŽ¡¡‘)ý`mdstop‘?¬/dev/md0Ž©(ÀœÂ7Ž‘ÁUn'ultima‘G\cosa.ŽŸ¿:¹Ricorda–Ò—c¸èhe“un“espšGerto“€è“una“p˜ersona“c¸èhe“ne“sa“almeno“l'1%“pi€ù“di“te“riguardo“a“un“particolare“soggetto.Ž¡Tienilo– ”in“menš¸ète“se“decidi“di“c˜hiedermi“aiuto“pGer“e-mail.‘XRPro˜v˜er€ò,‘°ma“ho“fatto“queste“cose“solo“una“v˜olta“pGerŽ¡raid1–U e“una“v¸èolta“pGer“raid5!ŽŸؼMic•¸èhael›U Robin“ton˜½Michael@bzs.or‘ÿ}/gŽ¦Â8Ž‘ÁAppšpœendice–G\A.“-“Lo“sh•cutdo“wn–G\p˜er“md0“di“Bohcumil“ChalupaŽŸ¿:¹Il–¼epGost“di“Bohš¸èumil“Chalupa“sulla“lista“lin˜ux“raid“a“propšGosito“della“soluzione“del“problema“di“mdstop“p˜er“raid1Ž¡e–u5.‘JLa“sua“soluzione“non“tiene“conš¸èto“della“pGossibilit€à“c˜he“il“dispGositiv˜o“raid“v˜enga“corrotto“allo“sh˜utdo˜wn.Ž¡Cos€ì–ÜAho“aggiunš¸èto“un“semplice“confron˜to“di“stato“eettuato“al“b•Go“ot–ÜAcon“un“buono“stato“di“riferimen˜to.‘I6QuestoŽ¡p•Germette››all'op“eratore˜di˜in•¸èterv“enire˜se˜un˜disco˜nell'arra“y˜ha˜dei˜problemi.‘DÇUna˜descrizione˜di˜tutto˜ci€ò˜siŽ¡troš¸èv‘ÿqÐa–U nella“parte“principale“di“questo“stesso“doGcumen˜to.ŽŽŽŒ‹@‹ Û_2 ý ~?Ÿ„€ÕÁGŽÃ8.‘ñ8AppšQÂendice–ÕA.“-“Lo“sh•®>utdo“wn–Õp˜er“md0“di“Boh®>umil“Chalupa’‘n¹29ŽŽ ÕÁ ýV¯º>–?¬From:“Bohumil“Chalupa“Ž¤ ®>–?¬Sono“riuscito“ad“eseguire“il“boot“di“initrd“e“ad“usare“linuxrc“per“farŽ¡>–?¬partire“l'array“RAID1,“per“poi“far“diventare“root“/dev/md0.Ž¡>Ž¡>–?¬Non“conosco,“per€ò,“un“modo“per“_fermare_“in“modo“pulito“l'array.Ž¡¡Beh,–?¬dovr€ò“rispondermi“da“solo“:-)Ž¡¡>–?¬Date:“Mon,“29“Dec“1997“02:21:38“-0600“(CST)Ž¡>–?¬From:“Edward“Welbon“Ž¡>–?¬Subject:“Re:“smontare“il“dispositivo“raid“di“rootŽ¡>Ž¡>–?¬Per“dispositivi“md“diversi“da“raid0,“lo“stato“che“deve“essere“salvatoŽ¡>–?¬€è“noto“probabilmente“solo“una“volta“che“tutte“le“operazioni“di“scritturaŽ¡>–?¬sono“state“completate.“Un“tale“stato“non“pu€ò“essere“naturalmente“salvatoŽ¡>–?¬sulla“directory“root“una“volta“montata“in“sola“lettura.“In“tal“caso,Ž¡>–?¬dovresti“poter“montare“un“filesystem“scrivibile“"X"“sul“root“in“solaŽ¡>–?¬lettura“e“poter“scrivere“su“"X"“(ricordo“di“aver“fatto“una“cosa“delŽ¡>–?¬genere“durante“le“operazioni“di“"recupero",“ma“non“come“proceduraŽ¡>‘?¬automatica)Ž¡>Ž¡>–?¬Il“filesystem“"X"“sar€à“presumibilmente“un“dispositivo“di“boot“da“cuiŽ¡>–?¬il“raid“(durante“l'esecuzione“di“linuxrc“via“initrd)“prender€à“il“suoŽ¡>–?¬stato“iniziale.“Fortunatamente“raid0“non“deve“scrivere“nessuno“statoŽ¡>–?¬(anche“se“sarebbe“piacevole“poter“scrivere“i“checksum“su“mdtab“dopoŽ¡>–?¬un“mdstop).“Giocher€ò“un“po'“con“queste“cose“che“non“sembrano“troppoŽ¡>–?¬difficili,“anche“se“il“"diavolo"“€è“sempre“nei“"dettagli".Ž¡¡Gi€à,–?¬€è“cos€ì.Ž¡Ho–?¬gi€à“avuto“questa“idea,“ma“non“ho“avuto“tempo“per“provare.“L'hoŽ¡fatto–?¬ieri,“e“funziona.Ž¡¡Con–?¬il“mio“RAID1“(mirror),“non“salvo“nessun“dato“di“checksum“oŽ¡superblock–?¬raid.‘ XSalvo“solo“un'informazione“sulla“"vera"“partizioneŽ¡di–?¬boot,“che“il“volume“di“root“md“€è“stato“rimontato“in“sola“letturaŽ¡durante–?¬lo“shutdown.“Poi,“durante“il“boot,“lo“script“linuxrc“esegueŽ¡mkraid–?¬--only-superblock“se“trova“questa“informazione,“altrimentiŽ¡esegue‘?¬ckraid.Ž¡Questo–?¬significa“che“le“informazioni“del“superblock“raid“non“vengonoŽ¡aggiornate–?¬durante“lo“shutdown;“sono“aggiornate“a“tempo“di“boot.‘ XNonŽ¡€è–?¬una“cosa“molto“pulita,“temo,“:-(“ma“funziona.Ž¡¡Uso–?¬Slackware“e“initrd.md“di“Edward“Welbon“per“eseguire“il“boot“delŽ¡dispositivo–?¬raid“di“root.Ž¡Per–?¬quanto“mi“ricordo“ora,“gli“unici“file“modificati“sono“mkdisk“eŽ¡linuxrc,–?¬e“lo“script“di“shutdown“/etc/rc.d/rc.6“E“lilo.conf,Ž¡naturalmente.Ž¡¡Seguono–?¬le“parti“pi€ù“importanti.Ž¡ŽŽŒ‹Jp Û_2 ý ~?Ÿ„€ÕÁGŽÃ8.‘ñ8AppšQÂendice–ÕA.“-“Lo“sh•®>utdo“wn–Õp˜er“md0“di“Boh®>umil“Chalupa’‘n¹30ŽŽ ÕÁ ýV¯ºBohumil‘?¬ChalupaŽ¤ ®¡---------------–?¬segue“mio.linuxrc‘ X-----------------Ž¡#!/bin/shŽ¡#–?¬ci“serve“/procŽ¡/bin/mount‘?¬/procŽ¡#–?¬avvia“il“dispositivo“md0.“Lascia“fare“il“resto“agli“script“/etc/rc.dŽ¡#–?¬Si“dovrebbe“fare“il“meno“possibile“quiŽ¡#‘?¬________________________________________Ž¡#–?¬shutdown“test“e“ricreazione“di“root“raid1Ž¡#–?¬/start“deve“essere“creato“sull'immagine“rd“in“my.mkdiskŽ¡echo–?¬"preparing“md0:“mounting“/start"Ž¡/bin/mount–?¬/dev/sda2“/start“-t“ext2Ž¡echo–?¬"reading“saved“md0“state“from“/start"Ž¡if–?¬[“-f“/start/root.raid.ok“];“thenŽ¡–?¬echo“"raid“ok,“modyfying“superblock"Ž¡–?¬rm“/start/root.raid.okŽ¡–?¬/sbin/mkraid“/etc/raid1.conf“-f“--only-superblockŽ¡elseŽ¡–?¬echo“"raid“not“clean,“runing“ckraid“--fix"Ž¡–?¬/sbin/ckraid“--fix“/etc/raid1.confŽ¡fiŽ¡echo–?¬"unmounting“/start"Ž¡/bin/umount‘?¬/startŽ¡#‘?¬_________________________________________Ž¡#Ž¡echo–?¬"adding“md0“for“root“file“system"Ž¡/sbin/mdadd–?¬/dev/md0“/dev/sda1“/dev/sdb1Ž¡echo–?¬"starting“md0"Ž¡/sbin/mdrun–?¬-p1“/dev/md0Ž¡#–?¬d€ì“al“kernel“che“vogliamo“far“diventare“/dev/md0“il“dispositivo“di“rootŽ¡#–?¬arriviamo“al“valore“0x900“come“256*numero_di_dispositivo_major“+“numero_minorŽ¡echo–?¬"setting“real-root-dev"Ž¡/bin/echo‘?¬0x900>/proc/sys/kernel/real-root-devŽ¡#‘ Xsmonta–?¬/proc“in“modo“da“poter“deallocare“il“ram“diskŽ¡echo–?¬"unmounting“/proc"Ž¡/bin/umount‘?¬/procŽ¡/bin/echo–?¬"We“are“hopefully“ready“to“mount“/dev/md0“(major“9,“minor“0)“asŽ¡root"Ž¡exitŽ¡---------------–?¬fine“di“mio.linuxrc“----------------------------------Ž¡¡¡-----------–?¬segue“un“estratto“da“/etc/rc.d/rc.6‘ X-----------------Ž¡‘ X#–?¬Disattiva“lo“swap“poi“smonta“i“file“system“locali.Ž¡‘ Xecho–?¬"Turning“off“swap."Ž¡‘ Xswapoff‘?¬-aŽ¡‘ Xecho–?¬"Unmounting“local“file“systems."Ž¡‘ Xumount–?¬-a“-tnonfsŽ¡‘ X#–?¬Non“rimontare“i“volumi“root“UMSDOS:ŽŽŽŒ‹Tê Û_2 ý ~?Ÿ„€ÕÁGŽÃ8.‘ñ8AppšQÂendice–ÕA.“-“Lo“sh•®>utdo“wn–Õp˜er“md0“di“Boh®>umil“Chalupa’‘n¹31ŽŽ ÕÁ ýV¯‘ Xºif–?¬[“!“"`mount“|“head“-1“|“cut“-d“'“'“-f“5`"“=“"umsdos"“];“thenŽ¤ ®‘þ°mount–?¬-n“-o“remount,ro“/Ž¡‘ XfiŽ¡¡‘ X#–?¬Salva“lo“stato“raidŽ¡‘ Xecho–?¬"Saving“RAID“state"Ž¡‘ X/bin/mount–?¬-n“/dev/sda2“/start“-t“ext2Ž¡‘ Xtouch‘?¬/start/root.raid.okŽ¡‘ X/bin/umount–?¬-n“/startŽ¡¡--------------–?¬fine“dell'estratto“da“rc.6“------------------------Ž¡¡¡------------------–?¬segue“una“parte“di“mio.mkdisk“----------------------Ž¡#Ž¡#‘ Xadesso–?¬abbiamo“un“filesystem“pronto“da“riempire,“e“dobbiamo“metterciŽ¡#‘ Xalcune–?¬directory“importanti.“Ho“avuto“tantissimi“guai“finch€é“non“hoŽ¡#› Xcreato–?¬un“mtab“intatto.˜Nel“mio“caso,“€è“conveniente“sovrascrivereŽ¡#‘ X/etc/mdtab,–?¬in“questo“modo“posso“attivare“md“con“un“sempliceŽ¡#‘ X"/sbin/mdadd–?¬-ar"“in“linuxrc.Ž¡cp–?¬-a“$ROOT/etc“$MOUNTPNT“2>cp.stderr“1>cp.stdoutŽ¡rm–?¬-rf“$MOUNTPNT/etc/mtabŽ¡rm–?¬-rf“$MOUNTPNT/etc/ppp*Ž¡rm–?¬-rf“$MOUNTPNT/etc/termcapŽ¡rm–?¬-rf“$MOUNTPNT/etc/sendmail*Ž¡rm–?¬-rf“$MOUNTPNT/etc/rc.dŽ¡rm–?¬-rf“$MOUNTPNT/etc/dos*Ž¡cp–?¬-a“$ROOT/sbin“$ROOT/dev“$ROOT/lib“$ROOT/bin“$MOUNTPNT“2>>cp.stderrŽ¡1>>cp.stdoutŽ¡#‘?¬_____________________________________________________________________Ž¡#‘ XRAID:–?¬servono“mkraid“e“ckraidŽ¡cp–?¬-a“$ROOT/usr/sbin/mkraid“$ROOT/usr/sbin/ckraid“$MOUNTPNT/sbinŽ¡2>>cp.stderr‘?¬1>>cp.stdoutŽ¡#‘?¬---------------------------------------------------------------------Ž¡#‘ Xsembra–?¬che“init“non“funzioni“se“non“ha“utmp.“Forse“ci“si“pu€ò“lavorareŽ¡#‘ Xmolto.–?¬Non“dir€ò“qual“€è“il“vero“problema“8-).Ž¡#Ž¡mkdir–?¬$MOUNTPNT/var“$MOUNTPNT/var/log“$MOUNTPNT/var/run“$MOUNTPNT/initrdŽ¡touch–?¬$MOUNTPNT/var/run/utmp“$MOUNTPNT/etc/mtabŽ¡chmod–?¬a+r“$MOUNTPNT/var/run/utmp“$MOUNTPNT/etc/mtabŽ¡ln–?¬-s“/var/run/utmp“$MOUNTPNT/var/log/utmpŽ¡ln–?¬-s“/var/log/utmp“$MOUNTPNT/etc/utmpŽ¡ls–?¬-lstrd“$MOUNTPNT/etc/utmp“$MOUNTPNT/var/log/utmp“$MOUNTPNT/var/run/utmpŽ¡#Ž¡#‘ Xpoich€é–?¬voglio“cambiare“il“punto“di“mount,“ho“bisogno“di“questoŽ¡#‘ Xnonostante–?¬avessi“potuto“fare“un“"mkdir“/proc"“in“linuxrc.Ž¡#Ž¡mkdir‘?¬$MOUNTPNT/procŽ¡chmod–?¬555“$MOUNTPNT/procŽ¡#ŽŽŽŒ‹ ] Û_2 ý ~?Ÿ„€ÕÁGŽÃ9.‘ñ8AppQÂendice–ÕB.“-“Script“di“SHUTDO®>WN“di“esempio’ºÂ¹32ŽŽ ÕÁ ýV¯º#‘ X------------------------------------------------------Ž¤ ®#‘ Xmonteremo–?¬il“vero“dispositivo“di“boot“in“/start“temporaneamenteŽ¡#‘ Xper–?¬verificare“lo“stato“del“root“raid“salvato“durante“lo“shutdownŽ¡#Ž¡mkdir‘?¬$MOUNTPNT/startŽ¡#‘ X-------------------------------------------------------Ž¡#Ž¡#› Xci–?¬serve“linuxrc˜(dopo“tutto,“€è“il“punto“focale“di“questo“esercizio).Ž¡#Ž¡if–?¬[“-x“./my.linuxrc“];“thenŽ¡‘ Xcp–?¬-a“./my.linuxrc“$MOUNTPNT/linuxrcŽ¡‘ Xchmod–?¬777“$MOUNTPNT/linuxrcŽ¡elseŽ¡‘¿ln–?¬-s“/bin/sh“$MOUNTPNT/linuxrcŽ¡fiŽ¡#Ž¡-----------------–?¬fine“di“parte“di“mio.mkdisk“-----------------ŽŸ(`¢Â9Ž‘ÁApppœendice–G\B.“-“Script“di“SHUTDOcWN“di“esempioŽŸ%‘¸ŽŽŽ‘¹9.1‘U (Slac•¸èkw“are)ŽŸÏ‘¸ŽŽŽ‘¹9.2‘U (Debian)ŽŸ"½ÉÆ9.1Ž‘¾Slac• kw“are–¸-“/etc/rc.d/rc.6ŽŸMªº#!‘?¬/bin/shŽ¡#Ž¡#–?¬rc.6‘4|¸This“file“is“executed“by“init“when“it“goes“into“runlevelŽ¡#‘N»0–?¬(halt)“or“runlevel“6“(reboot).“It“kills“all“processes,Ž¡#‘N»unmounts–?¬file“systems“and“then“either“halts“or“reboots.Ž¡#Ž¡#‘?¬Version:–~@(#)/etc/rc.d/rc.6“1.50‘þ°1994-01-15Ž¡#Ž¡#–?¬Author:‘$½´Miquel“van“Smoorenburg“Ž¡#–?¬Modified“by:‘ XPatrick“J.“Volkerding,“Ž¡#Ž¡#–?¬Modified“by:‘ XMichael“A.“Robinton“<“michael@bizsystems.com“>Ž¡#‘N»to–?¬add“call“to“rc.raidownŽ¡‘ X#–?¬Set“the“path.Ž¡‘ XPATH=/sbin:/etc:/bin:/usr/binŽ¡¡‘ X#–?¬Set“linefeed“mode“to“avoid“staircase“effect.Ž¡‘ Xstty‘?¬onlcrŽ¡¡‘ Xecho–?¬"Running“shutdown“script“$0:"Ž¡¡‘ X#–?¬Find“out“how“we“were“called.Ž¡‘ Xcase–?¬"$0"“inŽ¡‘)ý`*0)ŽŽŽŒ‹!f1 Û_2 ý ~?Ÿ„€ÕÁGŽÃ9.‘ñ8AppQÂendice–ÕB.“-“Script“di“SHUTDO®>WN“di“esempio’ºÂ¹33ŽŽ ÕÁ ýV¯‘SúÀºmessage="The–?¬system“is“halted."Ž¤ ®‘SúÀcommand="halt"Ž¡‘SúÀ;;Ž¡‘)ý`*6)Ž¡‘SúÀmessage="Rebooting."Ž¡‘SúÀcommand=rebootŽ¡‘SúÀ;;Ž¡‘)ý`*)Ž¡‘SúÀecho–?¬"$0:“call“me“as“\"rc.0\"“or“\"rc.6\"“please!"Ž¡‘SúÀexit‘?¬1Ž¡‘SúÀ;;Ž¡‘ XesacŽ¡¡#####–?¬Salva“informazioni“sul“boot“e“sullo“stato“raid“#####Ž¡#Ž¡if–?¬[“-x“/etc/rc.d/rc.raidown“];“thenŽ¡‘¿/etc/rc.d/rc.raidownŽ¡fiŽ¡##################–?¬fine“raid“boot“########################Ž¡¡‘ X#–?¬Kill“all“processes.Ž¡‘ X#–?¬INIT“is“supposed“to“handle“this“entirely“now,“but“this“didn't“alwaysŽ¡‘ X#–?¬work“correctly“without“this“second“pass“at“killing“off“the“processes.Ž¡‘ X#–?¬Since“INIT“already“notified“the“user“that“processes“were“being“killed,Ž¡‘ X#–?¬we'll“avoid“echoing“this“info“this“time“around.Ž¡‘ Xif–?¬[“"$1"“!=“"fast"“];“then“#“shutdown“did“not“already“kill“all“processesŽ¡‘þ°killall5‘?¬-15Ž¡‘þ°killall5‘?¬-9Ž¡‘ XfiŽ¡¡‘ X#–?¬Try“to“turn“off“quota“and“accounting.Ž¡‘ Xif–?¬[“-x“/usr/sbin/quotaoff“]Ž¡‘ XthenŽ¡‘)ý`echo–?¬"Turning“off“quota."Ž¡‘)ý`/usr/sbin/quotaoff‘?¬-aŽ¡‘ XfiŽ¡‘ Xif–?¬[“-x“/sbin/accton“]Ž¡‘ XthenŽ¡‘)ý`echo–?¬"Turning“off“accounting."Ž¡‘)ý`/sbin/acctonŽ¡‘ XfiŽ¡¡‘ X#–?¬Before“unmounting“file“systems“write“a“reboot“or“halt“record“to“wtmp.Ž¡‘ X$command‘?¬-wŽ¡¡‘ X#–?¬Save“localtimeŽ¡‘ X[–?¬-e“/usr/lib/zoneinfo/localtime“]“&&“cp“/usr/lib/zoneinfo/localtime“/etcŽ¡¡‘ X#–?¬Asynchronously“unmount“any“remote“filesystems:Ž¡‘ Xecho–?¬"Unmounting“remote“filesystems."ŽŽŽŒ‹"m: Û_2 ý ~?Ÿ„€ÕÁGŽÃ9.‘ñ8AppQÂendice–ÕB.“-“Script“di“SHUTDO®>WN“di“esempio’ºÂ¹34ŽŽ ÕÁ ýV¯‘ Xºumount–?¬-a“-tnfs“&Ž¤ ®¡‘ X#–?¬Turn“off“swap,“then“unmount“local“file“systems.Ž¡‘ Xecho–?¬"Turning“off“swap."Ž¡‘ Xswapoff‘?¬-aŽ¡‘ Xecho–?¬"Unmounting“local“file“systems."Ž¡‘ Xumount–?¬-a“-tnonfsŽ¡‘ X#–?¬Don't“remount“UMSDOS“root“volumes:Ž¡‘ Xif–?¬[“!“"`mount“|“head“-1“|“cut“-d“'“'“-f“5`"“=“"umsdos"“];“thenŽ¡‘þ°mount–?¬-n“-o“remount,ro“/Ž¡‘ XfiŽ¡¡################–?¬per“gli“array“raid“#########################Ž¡#–?¬Ferma“tutti“gli“array“raid“conosciuti“(tranne“root)Ž¡if–?¬[“-x“/sbin/mdstop“];“thenŽ¡‘ Xecho–?¬"Stopping“raid"Ž¡‘ X/sbin/mdstop‘?¬-aŽ¡fiŽ¡##########################################################Ž¡¡‘ X#–?¬See“if“this“is“a“powerfail“situation.Ž¡‘ Xif–?¬[“-f“/etc/powerstatus“];“thenŽ¡‘þ°echo–?¬"Turning“off“UPS,“bye."Ž¡‘þ°/sbin/powerd‘?¬-qŽ¡‘þ°exit‘?¬1Ž¡‘ XfiŽ¡¡‘ X#–?¬Now“halt“or“reboot.Ž¡‘ Xecho‘?¬"$message"Ž¡‘ X[–?¬!“-f“/etc/fastboot“]“&&“echo“"On“the“next“boot“fsck“will“be“FORCED."Ž¡‘ X$command‘?¬-fŽ¡###############–?¬end“rc.6“#################################ŽŸ#ÃÆ9.2Ž‘¾Debian–¸bš_úo“-“/etc/init.d/halt“and“/etc/init.d/reb˜o˜otŽ©Mª¹Le–&ÙmošGdic¸èhe“mostrate“di“seguito“p˜er“i“le“b˜o“halt“e“reb˜o˜ot“di“Debian“NON–&ÍSONO“TEST–ÿ*¸A“TE.–&ÙSe“le“testate,Ž¡pGer›U fa•¸èv“ore˜in“viatemi˜una˜e-mail˜in˜moGdo˜c“he˜io˜pGossa˜togliere˜questo˜commen“to.ŽŸ ÖÃ9.2.1Ž‘#!\/etc/init.d/haltŽ¦º#!‘?¬/bin/shŽ¡#Ž¡#–?¬halt‘4|¸The“commands“in“this“script“are“executed“as“the“lastŽ¡#‘N»step–?¬in“runlevel“0,“ie“halt.Ž¡#Ž¡#‘?¬Version:‘~@(#)halt– X1.10“26-Apr-1997“miquels@cistron.nlŽ¡#Ž¡¡PATH=/sbin:/bin:/usr/sbin:/usr/binŽ¡ŽŽŒ‹#sÍ Û_2 ý ~?Ÿ„€ÕÁGŽÃ9.‘ñ8AppQÂendice–ÕB.“-“Script“di“SHUTDO®>WN“di“esempio’ºÂ¹35ŽŽ ÕÁ ýV¯º#####–?¬Salva“informazioni“sul“boot“e“sullo“stato“raid“#####Ž¤ ®#Ž¡if–?¬[“-x“/etc/rc.d/rc.raidown“];“thenŽ¡‘¿/etc/rc.d/rc.raidownŽ¡fiŽ¡##################–?¬fine“raid“boot“########################Ž¡¡#–?¬Kill“all“processes.Ž¡echo–?¬-n“"Sending“all“processes“the“TERM“signal...“"Ž¡killall5‘?¬-15Ž¡echo‘?¬"done."Ž¡sleep‘?¬5Ž¡echo–?¬-n“"Sending“all“processes“the“KILL“signal...“"Ž¡killall5‘?¬-9Ž¡echo‘?¬"done."Ž¡¡#–?¬Write“a“reboot“record“to“/var/log/wtmp.Ž¡halt‘?¬-wŽ¡¡#–?¬Save“the“random“seed“between“reboots.Ž¡/etc/init.d/urandom‘?¬stopŽ¡¡echo–?¬-n“"Deactivating“swap...“"Ž¡swapoff‘?¬-aŽ¡echo‘?¬"done."Ž¡¡echo–?¬-n“"Unmounting“file“systems...“"Ž¡umount‘?¬-aŽ¡echo‘?¬"done."Ž¡¡mount–?¬-n“-o“remount,ro“/Ž¡¡################–?¬per“gli“array“raid“#########################Ž¡#–?¬Ferma“tutti“gli“array“raid“conosciuti“(tranne“root)Ž¡if–?¬[“-x“/sbin/mdstop“];“thenŽ¡‘ Xecho–?¬"Stopping“raid"Ž¡‘ X/sbin/mdstop‘?¬-aŽ¡fiŽ¡##########################################################Ž¡¡#–?¬See“if“we“need“to“cut“the“power.Ž¡if–?¬[“-x“/etc/init.d/ups-monitor“]Ž¡thenŽ¡‘)ý`/etc/init.d/ups-monitor‘?¬poweroffŽ¡fiŽ¡¡halt–?¬-d“-fŽ¡#############–?¬end“halt“####################ŽŽŽŒ‹$zÙ Û_2 ý ~?Ÿ„€ÕÁGŽÃ9.‘ñ8AppQÂendice–ÕB.“-“Script“di“SHUTDO®>WN“di“esempio’ºÂ¹36ŽŽ ÕÁ ýV¯Ã9.2.2Ž‘#!\/etc/init.d/reb•QÂo“otŽŸMªº#!‘?¬/bin/shŽ¤ ®#Ž¡#–?¬reboot‘)ý`The“commands“in“this“script“are“executed“as“the“lastŽ¡#‘N»step–?¬in“runlevel“6,“ie“reboot.Ž¡#Ž¡#‘?¬Version:‘~@(#)reboot– X1.9“02-Feb-1997“miquels@cistron.nlŽ¡#Ž¡¡PATH=/sbin:/bin:/usr/sbin:/usr/binŽ¡¡#####–?¬Salva“informazioni“sul“boot“e“sullo“stato“raid“#####Ž¡#Ž¡if–?¬[“-x“/etc/rc.d/rc.raidown“];“thenŽ¡‘¿/etc/rc.d/rc.raidownŽ¡fiŽ¡##################–?¬fine“raid“boot“########################Ž¡¡#–?¬Kill“all“processes.Ž¡echo–?¬-n“"Sending“all“processes“the“TERM“signal...“"Ž¡killall5‘?¬-15Ž¡echo‘?¬"done."Ž¡sleep‘?¬5Ž¡echo–?¬-n“"Sending“all“processes“the“KILL“signal...“"Ž¡killall5‘?¬-9Ž¡echo‘?¬"done."Ž¡¡#–?¬Write“a“reboot“record“to“/var/log/wtmp.Ž¡halt‘?¬-wŽ¡¡#–?¬Save“the“random“seed“between“reboots.Ž¡/etc/init.d/urandom‘?¬stopŽ¡¡echo–?¬-n“"Deactivating“swap...“"Ž¡swapoff‘?¬-aŽ¡echo‘?¬"done."Ž¡¡echo–?¬-n“"Unmounting“file“systems...“"Ž¡umount‘?¬-aŽ¡echo‘?¬"done."Ž¡¡mount–?¬-n“-o“remount,ro“/Ž¡¡################–?¬per“gli“array“raid“#########################Ž¡#–?¬Ferma“tutti“gli“array“raid“conosciuti“(tranne“root)Ž¡if–?¬[“-x“/sbin/mdstop“];“thenŽ¡‘ Xecho–?¬"Stopping“raid"Ž¡‘ X/sbin/mdstop‘?¬-aŽ¡fiŽŽŽŒ‹%€H Û_2 ý ~?Ÿ„€ÕÁGŽÃ10.‘ñ8AppQÂendice–ÕC.“-“altri“le“di“setup’»†¹37ŽŽ ÕÁ ýV¯º##########################################################Ž¤ ®¡echo–?¬-n“"Rebooting...“"Ž¡reboot–?¬-d“-f“-iŽŸ(ÀœÂ10Ž‘¬%Apppœendice–G\C.“-“altri“le“di“setupŽ©èÆ10.1Ž‘%}¨linš uxrc–¸4.11“(lin˜uxrc“le)Ž¤•X10.2Ž‘%}¨loadlin–¸“linš ux.bat“le“-“b•_úo“ot.par–¸4.14“(lin˜ux.bat“le“-“b•_úo“ot.par)Ž¡10.3Ž‘%}¨lin• uxthreads›¸Mak“ele.di˜4.6˜(lin“uxthreads˜Mak“ele.di‘:—)Ž¡10.4Ž‘%}¨raid1.conf–¸6.2“(raid1.conf‘:—)Ž¡10.5Ž‘%}¨raid5.conf–¸6.1“(raid5.conf‘:—)Ž¡10.6Ž‘%}¨raidb•_úo“ot.conf–¸4.13“(raidb•_úo“ot.conf‘:—)Ž¡10.7Ž‘%}¨rc.raidoš wn–¸13“(rc.raido˜wn)ŽŸ $´Â11Ž‘¬%Apppœendice–G\D.“-“script“linšcuxrc“e“sh˜utdo˜wn“obsoletiŽ¦Æ11.1Ž‘%}¨La• v“oro–¸obsoleto“-“lin uxrcŽŸMª¹Questo–U le“lin¸èuxrc“funziona“bšGenissimo“con“la“pro˜cedura“di“sh•¸èutdo“wn–U mostrata“di“seguito.ŽŸؼ–?¬º----------------------“linuxrc“--------------------Ž¤ ®#!/bin/shŽ¡#–?¬ver“1.07“2-12-98Ž¡#–?¬linuxrc“-“for“raid1“using“small“dos“partition“and“loadlinŽ¡#Ž¡¡#–?¬mount“the“proc“file“systemŽ¡/bin/mount‘?¬/procŽ¡¡#–?¬This“may“vary“for“your“system.Ž¡#–?¬Mount“the“dos“partitions,“try“bothŽ¡#–?¬in“case“one“disk“is“deadŽ¡/bin/mount‘?¬/dosaŽ¡/bin/mount‘?¬/doscŽ¡¡#–?¬Set“a“flag“in“case“the“raid“status“file“is“not“foundŽ¡#–?¬then“check“both“drives“for“the“status“fileŽ¡RAIDOWN="raidstat.ro–?¬not“found"Ž¡/bin/echo–?¬"Reading“md0“shutdown“status."Ž¡if–?¬[“-f“/dosa/raidboot/raidstat.ro“];“thenŽ¡‘ XRAIDOWN=`/bin/cat‘?¬/dosa/raidboot/raidstat.ro`Ž¡‘ XRAIDREF=`/bin/cat‘?¬/dosc/raidboot/raidgood.ref`ŽŽŽŒ‹&…РÛ_2 ý ~?Ÿ„€ÕÁGŽÃ11.‘ñ8AppQÂendice–ÕD.“-“script“linš®>uxrc“e“sh˜utdo˜wn“obsoleti’¹ɹ38ŽŽ ÕÁ ýV¯ºelseŽ¤ ®‘ Xif–?¬[“-f“/dosc/raidboot/raidstat.ro“];“thenŽ¡‘þ°RAIDOWN=`/bin/cat‘?¬/dosc/raidboot/raidstat.ro`Ž¡‘þ°RAIDREF=`/bin/cat‘?¬/dosc/raidboot/raidgood.ref`Ž¡‘ XfiŽ¡fiŽ¡¡#–?¬Test“for“a“clean“shutdown“with“all“disks“operationalŽ¡if–?¬[“"${RAIDOWN}“!=“${RAIDREF}"“];“thenŽ¡‘ Xecho–?¬"ERROR“${RAIDOWN}"Ž¡#‘ XUse–?¬the“next“2“lines“to“BAIL“OUT“and“leave“rescue“runningŽ¡‘¿/bin/echo‘?¬0x100>/proc/sys/kernel/real-root-devŽ¡‘¿exit‘Y:l#–?¬leaving“the“error“files“in“dosa/raidboot,etc...Ž¡fiŽ¡¡#–?¬The“raid“array“is“clean,“proceed“by“removingŽ¡#–?¬status“file“and“writing“a“clean“superblockŽ¡/bin/rm‘?¬/dosa/raidboot/raidstat.roŽ¡/bin/rm‘?¬/dosc/raidboot/raidstat.roŽ¡/sbin/mkraid–?¬/etc/raid1.conf“-f“--only-superblockŽ¡¡/bin/umount‘?¬/dosaŽ¡/bin/umount‘?¬/doscŽ¡¡#–?¬Mount“raid“arrayŽ¡echo–?¬"Mounting“md0,“root“filesystem"Ž¡/sbin/mdadd‘?¬-arŽ¡¡#‘ XIf–?¬there“are“errors“-“BAIL“OUT“and“leave“rescue“runningŽ¡if–?¬[“$?“-ne“0“];“thenŽ¡‘¿echo–?¬"RAID“device“has“errors"Ž¡#‘ XUse–?¬the“next“3“lines“to“BAIL“OUTŽ¡‘¿/bin/rm–?¬/etc/mtab‘>ü#“remove“bad“mtabŽ¡‘¿/bin/echo‘?¬0x100>/proc/sys/kernel/real-root-devŽ¡‘¿exitŽ¡fiŽ¡¡#–?¬else“tell“the“kernel“to“switch“to“/dev/md0“as“the“/root“deviceŽ¡#–?¬The“0x900“value“the“device“number“calculated“by:Ž¡#‘ X256*major_device_number–?¬+“minor_device“numberŽ¡/bin/echo‘?¬0x900>/proc/sys/kernel/real-root-devŽ¡¡#–?¬umount“/proc“to“deallocate“initrd“device“ram“spaceŽ¡/bin/umount‘?¬/procŽ¡/bin/echo–?¬"/dev/md0“mounted“as“root"Ž¡exitŽ¡#------------------–?¬end“linuxrc“----------------------ŽŽŽŒ‹'Œ† Û_2 ý ~?Ÿ„€ÕÁGŽÃ11.‘ñ8AppQÂendice–ÕD.“-“script“linš®>uxrc“e“sh˜utdo˜wn“obsoleti’¹ɹ39ŽŽ ÕÁ ýV¯Æ11.2Ž‘%}¨La• v“oro–¸obsoleto“-“script“di“sh• utdo“wnŽŸMª¹Questa–U prošGcedura“di“sh•¸èutdo“wn–U funziona“b˜enissimo“con“Ãlin®>uxrc“¹indicato“in“precedenzaŽ©ؼPš¸èer–3øcatturare“lo“stato“di“sh˜utdo˜wn“dell'arra˜y“raid,‘:™inserisci“subito“prima“c˜he“i“le“system“v˜engano“smon˜tati:Ž¤ؼ‘)ý`ºRAIDSTATUS=`/bin/cat–?¬/proc/mdstat“|“/usr/bin/grep“md0`Ž¡¹DopGo–U cš¸èhe“tutti“i“le“system“sono“smon˜tati“(il“le“system“di“roGot“non“v˜err€à“smon˜tato)“aggiungi:Ž¡‘)ý`º#–?¬il“dispositivo“di“root“rimane“montato“ROŽ¤ ®‘)ý`#–?¬monta“i“file“system“dos“RWŽ¡‘)ý`mount–?¬-n“-o“remount,ro“/Ž¡‘)ý`echo–?¬"Writing“RAID“read-only“boot“FLAG(s)."Ž¡‘)ý`mount–?¬-n“/dosaŽ¡‘)ý`mount–?¬-n“/doscŽ¡‘)ý`#–?¬create“raid“mounted“RO“flag“in“duplicateŽ¡‘)ý`#–?¬containing“the“shutdown“status“of“the“raid“arrayŽ¡‘)ý`echo–?¬${RAIDSTATUS}“>“/dosa/raidboot/raidstat.roŽ¡‘)ý`echo–?¬${RAIDSTATUS}“>“/dosc/raidboot/raidstat.roŽ¡¡‘)ý`umount–?¬-n“/dosaŽ¡‘)ý`umount–?¬-n“/doscŽ¡¡‘)ý`#–?¬Ferma“tutti“gli“array“raid“(tranne“root)Ž¡‘)ý`echo–?¬"Stopping“raid"Ž¡‘)ý`mdstop‘?¬-aŽŸؼ¹Questo–Èúfermer€à“in“mošGdo“pulito“tutti“i“disp˜ositivi“raid“eccetto“ro˜ot.‘BÉLo“stato“di“ro˜ot“viene“passato“al“prossimoŽ¡b•Go“ot–U in“Ãraidstat.ro¹.Ž¦Quello–Sêcš¸èhe“segue“€è“l'in˜tero“script“di“sh˜utdo˜wn“preso“dal“mio“v˜ecc˜hio“sistema“raid1“Slac˜kw˜are,‘T(ho“aggiornatoŽ¡raid1–U alla“n•¸èuo“v‘ÿqÐa–U prošGcedura“con“il“le“/etc/raidb˜o˜ot.confŽŸؼº#!‘?¬/bin/shŽ¡#Ž¡#–?¬rc.6‘4|¸This“file“is“executed“by“init“when“it“goes“into“runlevelŽ¡#‘N»0–?¬(halt)“or“runlevel“6“(reboot).“It“kills“all“processes,Ž¡#‘N»unmounts–?¬file“systems“and“then“either“halts“or“reboots.Ž¡#Ž¡#‘?¬Version:–~@(#)/etc/rc.d/rc.6“1.50‘þ°1994-01-15Ž¡#Ž¡#–?¬Author:‘$½´Miquel“van“Smoorenburg“Ž¡#–?¬Modified“by:‘ XPatrick“J.“Volkerding,“Ž¡#–?¬Modified“by:‘ XMichael“A.“Robinton,““for“RAID“shutdownŽ¡¡‘ X#–?¬Set“the“path.Ž¡‘ XPATH=/sbin:/etc:/bin:/usr/binŽ¡¡‘ X#–?¬Set“linefeed“mode“to“avoid“staircase“effect.Ž¡‘ Xstty‘?¬onlcrŽ¡ŽŽŒ‹(“| Û_2 ý ~?Ÿ„€ÕÁGŽÃ11.‘ñ8AppQÂendice–ÕD.“-“script“linš®>uxrc“e“sh˜utdo˜wn“obsoleti’¹ɹ40ŽŽ ÕÁ ýV¯‘ Xºecho–?¬"Running“shutdown“script“$0:"Ž¤ ®¡‘ X#–?¬Find“out“how“we“were“called.Ž¡‘ Xcase–?¬"$0"“inŽ¡‘)ý`*0)Ž¡‘SúÀmessage="The–?¬system“is“halted."Ž¡‘SúÀcommand="halt"Ž¡‘SúÀ;;Ž¡‘)ý`*6)Ž¡‘SúÀmessage="Rebooting."Ž¡‘SúÀcommand=rebootŽ¡‘SúÀ;;Ž¡‘)ý`*)Ž¡‘SúÀecho–?¬"$0:“call“me“as“\"rc.0\"“or“\"rc.6\"“please!"Ž¡‘SúÀexit‘?¬1Ž¡‘SúÀ;;Ž¡‘ XesacŽ¡¡‘ X#–?¬Kill“all“processes.Ž¡‘ X#–?¬INIT“is“supposed“to“handle“this“entirely“now,“but“this“didn't“alwaysŽ¡‘ X#–?¬work“correctly“without“this“second“pass“at“killing“off“the“processes.Ž¡‘ X#–?¬Since“INIT“already“notified“the“user“that“processes“were“being“killed,Ž¡‘ X#–?¬we'll“avoid“echoing“this“info“this“time“around.Ž¡‘ Xif–?¬[“"$1"“!=“"fast"“];“then“#“shutdown“did“not“already“kill“all“processesŽ¡‘þ°killall5‘?¬-15Ž¡‘þ°killall5‘?¬-9Ž¡‘ XfiŽ¡¡‘ X#–?¬Try“to“turn“off“quota“and“accounting.Ž¡‘ Xif–?¬[“-x“/usr/sbin/quotaoff“]Ž¡‘ XthenŽ¡‘)ý`echo–?¬"Turning“off“quota."Ž¡‘)ý`/usr/sbin/quotaoff‘?¬-aŽ¡‘ XfiŽ¡‘ Xif–?¬[“-x“/sbin/accton“]Ž¡‘ XthenŽ¡‘)ý`echo–?¬"Turning“off“accounting."Ž¡‘)ý`/sbin/acctonŽ¡‘ XfiŽ¡¡‘ X#–?¬Before“unmounting“file“systems“write“a“reboot“or“halt“record“to“wtmp.Ž¡‘ X$command‘?¬-wŽ¡¡‘ X#–?¬Save“localtimeŽ¡‘ X[–?¬-e“/usr/lib/zoneinfo/localtime“]“&&“cp“/usr/lib/zoneinfo/localtime“/etcŽ¡¡‘ X#–?¬Asynchronously“unmount“any“remote“filesystems:Ž¡‘ Xecho–?¬"Unmounting“remote“filesystems."Ž¡‘ Xumount–?¬-a“-tnfs“&Ž¡ŽŽŒ‹)œc Û_2 ý ~?Ÿ„€ÕÁGŽÃ11.‘ñ8AppQÂendice–ÕD.“-“script“linš®>uxrc“e“sh˜utdo˜wn“obsoleti’¹ɹ41ŽŽ ÕÁ ýV¯‘ Xº#–?¬you“must“have“issuedŽ¤ ®‘ X#–?¬'cat“/proc/mdstat“|“grep“md0“>“{your“boot“vol}/raidboot/raidgood.ref'Ž¡‘ X#–?¬before“linuxrc“will“execute“properly“with“this“infoŽ¡‘ XRAIDSTATUS=`/bin/cat–?¬/proc/mdstat“|“/usr/bin/grep“md0“#“capture“raid“status`Ž¡¡‘ X#–?¬Turn“off“swap,“then“unmount“local“file“systems.Ž¡‘ X#–?¬clearing“mdtab“as“wellŽ¡‘ Xecho–?¬"Turning“off“swap."Ž¡‘ Xswapoff‘?¬-aŽ¡‘ Xecho–?¬"Unmounting“local“file“systems."Ž¡‘ Xumount–?¬-a“-tnonfsŽ¡¡‘ X#–?¬Don't“remount“UMSDOS“root“volumes:Ž¡‘ Xif–?¬[“!“"`mount“|“head“-1“|“cut“-d“'“'“-f“5`"“=“"umsdos"“];“thenŽ¡‘þ°mount–?¬-n“-o“remount,ro“/Ž¡‘ XfiŽ¡¡‘ X#–?¬root“device“remains“mountedŽ¡‘ X#–?¬mount“dos“file“systems“RWŽ¡‘ Xecho–?¬"Writing“RAID“read-only“boot“FLAG(s)."Ž¡‘ Xmount–?¬-n“/dosaŽ¡‘ Xmount–?¬-n“/doscŽ¡‘ X#–?¬create“raid“mounted“RO“flag“in“duplicateŽ¡‘ X#–?¬containing“the“shutdown“status“of“the“raid“arrayŽ¡‘ Xecho–?¬${RAIDSTATUS}“>“/dosa/raidboot/raidstat.roŽ¡‘ Xecho–?¬${RAIDSTATUS}“>“/dosc/raidboot/raidstat.roŽ¡¡‘ Xumount–?¬-n“/dosaŽ¡‘ Xumount–?¬-n“/doscŽ¡¡‘ X#–?¬Stop“all“the“raid“arrays“(except“root)Ž¡‘ Xecho–?¬"Stopping“raid"Ž¡‘ Xmdstop‘?¬-aŽ¡¡‘ X#–?¬See“if“this“is“a“powerfail“situation.Ž¡‘ Xif–?¬[“-f“/etc/power_is_failing“];“thenŽ¡‘þ°echo–?¬"Turning“off“UPS,“bye."Ž¡‘þ°/sbin/powerd‘?¬-qŽ¡‘þ°exit‘?¬1Ž¡‘ XfiŽ¡¡‘ X#–?¬Now“halt“or“reboot.Ž¡‘ Xecho‘?¬"$message"Ž¡‘ X[–?¬!“-f“/etc/fastboot“]“&&“echo“"On“the“next“boot“fsck“will“be“FORCED."Ž¡‘ X$command‘?¬-fŽŽŽŒ‹*¢À Û_2 ý ~?Ÿ„€ÕÁGŽÃ12.‘ñ8AppšQÂendice–ÕE.“-“La“patc®>h“di“Gadi“p˜er“il“raid“stop“p˜er“il“kš®>ernel“lin˜ux‘aÏI¹42ŽŽ ÕÁ ýV¯Â12Ž‘¬%Appšpœendice–+DE.“-“La“patcch“di“Gadi“p˜er“il“raid“stop“p˜er“il“kcernelŽŸ…‘¬%lincuxŽ©¿:º---–?¬linux/drivers/block/md.c.old‘)ý`Fri“Nov“21“13:37:11“1997Ž¤ ®+++–?¬linux/drivers/block/md.c‘þ°Sat“Dec‘ X6“13:34:28“1997Ž¡@@–?¬-622,8“+622,13“@@Ž¡‘$½´return–?¬do_md_run“(minor,“(int)“arg);Ž¡¡‘>\case‘?¬STOP_MD:Ž¡-‘~return–?¬do_md_stop“(minor,“inode);Ž¡-Ž¡+‘~err–?¬=“do_md_stop(minor,“inode);Ž¡+‘~if–?¬(err)“{Ž¡+‘)ý`printk("md:–?¬enabling“auto“mdstop“for“%s\n",Ž¡kdevname(inode->i_rdev));Ž¡+‘)ý`md_dev[minor].auto_mdstop–?¬=“1;Ž¡+‘~}Ž¡+‘~return‘?¬err;Ž¡+Ž¡‘>\case–?¬BLKGETSIZE:‘¿/*“Return“device“size“*/Ž¡‘>\if– X(!arg)“return‘?¬-EINVAL;Ž¡‘>\err=verify_area–?¬(VERIFY_WRITE,“(long“*)“arg,“sizeof(long));Ž¡@@–?¬-692,6“+697,10“@@Ž¡¡‘¿sync_dev‘?¬(inode->i_rdev);Ž¡‘¿md_dev[minor].busy--;Ž¡+‘ Xif–?¬(!md_dev[minor].busy“&&“md_dev[minor].auto_mdstop)“{Ž¡+‘$½´do_md_stop(minor,‘?¬inode);Ž¡+‘$½´md_dev[minor].auto_mdstop–?¬=“0;Ž¡+‘ X}Ž¡‘?¬}Ž¡¡–?¬static“int“md_read“(struct“inode“*inode,“struct“file“*file,Ž¡---–?¬linux/include/linux/md.h~‘¿Fri“Nov“21“13:29:14“1997Ž¡+++–?¬linux/include/linux/md.h‘þ°Fri“Nov“21“13:29:14“1997Ž¡@@–?¬-260,6“+260,7“@@Ž¡‘¿int‘^zrepartition;Ž¡‘¿int‘^zbusy;Ž¡‘¿int‘^znb_dev;Ž¡+‘ Xint‘^zauto_mdstop;Ž¡‘¿void‘Y:l*private;Ž¡‘?¬};ŽŸ(ÀœÂ13Ž‘¬%Apppœendice–G\F.“-“rc.raidocwnŽ¦¹Copia–U il“testo“c¸èhe“segue“nello“script“Ãrc.raido®>wn“¹e“salv‘ÿqÐalo“in“Ã/etc/rc.d¹.ŽŸؼº#!‘?¬/bin/shŽ¡#ŽŽŽŒ‹+©q Û_2 ý ~?Ÿ„€ÕÁGŽÃ13.‘ñ8AppQÂendice–ÕF.“-“rc.raido®>wn’/æP¹43ŽŽ ÕÁ ýV¯º#–?¬rc.raidown‘þ°This“file“is“executed“by“init“when“it“goes“into“runlevelŽ¤ ®#‘N»0–?¬(halt)“or“runlevel“6“(reboot).“It“saves“the“status“ofŽ¡#‘N»a–?¬root“mounted“raid“array“for“subsequent“re-bootŽ¡#Ž¡#–?¬Version:‘~1.08‘þ°3-25-98“Michael“A.“Robinton“<“michael@bizsystems.com“>Ž¡#Ž¡############–?¬Save“raid“boot“and“status“info“##############Ž¡if–?¬[“-f“/etc/raidboot.conf“]Ž¡thenŽ¡‘ X{Ž¡‘ Xread‘?¬RaidBootDevsŽ¡‘ Xread‘?¬RaidStatusPathŽ¡‘ Xread‘?¬RaidConfigEtcŽ¡‘ X}–?¬<“/etc/raidboot.confŽ¡¡#–?¬you“must“have“issuedŽ¡#‘$½´cat–?¬/proc/mdstat“|“grep“md0“>Ž¡#‘N»{your–?¬boot“vol“mnt(s)}/{RaidStatusPath}/raidgood.refŽ¡#–?¬before“linuxrc“will“execute“properly“with“this“infoŽ¡#Ž¡#‘$½´capture–?¬raid“statusŽ¡‘ XRAIDSTATUS=`/bin/cat–?¬/proc/mdstat“|“/usr/bin/grep“md0`Ž¡‘ Xmkdir‘?¬/tmp/raid$$Ž¡‘ Xecho–?¬"Writing“RAID“read-only“boot“FLAG(s)."Ž¡‘ Xfor–?¬Device“in“${RaidBootDevs}Ž¡‘ XdoŽ¡#–?¬get“mount“point“for“raid“boot“device“or“use“tmpŽ¡‘þ°RBmount=$(–?¬cat“/proc/mounts“|“/usr/bin/grep“${Device}“)Ž¡‘þ°if–?¬[“-n“${RBmounts}“];“thenŽ¡‘~RBmount=$(–?¬echo“${RBmount}“|“cut“-f“2“-d“'“'“)Ž¡‘þ°elseŽ¡‘~RBmount="/tmp/raid$$"Ž¡‘~mount–?¬${Device}“${RBmount}Ž¡‘þ°fiŽ¡‘ Xif–?¬[“-d“${RBmount}/${RaidStatusPath}“];“thenŽ¡#–?¬Create“raid“mounted“RO“flag“=“shutdown“status“of“raid“arrayŽ¡‘þ°echo–?¬${RAIDSTATUS}“>“${RBmount}/${RaidStatusPath}/raidboot.roŽ¡#–?¬Don't“propagate“'fstab'“from“ramdiskŽ¡‘þ°if–?¬[“-f“/linuxrc“];“thenŽ¡‘~FSTAB=Ž¡‘þ°elseŽ¡‘~FSTAB=fstabŽ¡‘þ°fiŽ¡‘þ°pushd‘?¬/etcŽ¡#–?¬Save“etc“files“for“rescue“systemŽ¡‘þ°/bin/tar–?¬--ignore-failed-read“\Ž¡‘)ý`-cf–?¬${RBmount}/${RaidStatusPath}/raidboot.etc“\Ž¡‘)ý`raid*.conf–?¬mdtab*“${FSTAB}“lilo.confŽ¡‘þ°popdŽ¡#–?¬Create“new“raidboot.cfgŽŽŽŒ‹,°# Û_2 ý ~?Ÿ„€ÕÁGŽÃ14.‘ñ8AppQÂendice–ÕG.“-“teoria“del“funzionamenš®>to“di“lin˜uxrc’².,¹44ŽŽ ÕÁ ýV¯‘þ°º{Ž¤ ®‘þ°/bin/echo‘?¬${RaidBootDevs}Ž¡‘þ°/bin/echo‘?¬${RaidStatusPath}Ž¡‘þ°/bin/echo‘?¬${RaidConfigEtc}Ž¡‘þ°}–?¬>“${RBmount}/${RaidStatusPath}/raidboot.cfgŽ¡‘þ°/bin/umount‘?¬${RBmount}Ž¡‘ XfiŽ¡‘ XdoneŽ¡‘ Xrmdir‘?¬/tmp/raid$$Ž¡‘ Xecho–?¬"Raid“boot“armed"Ž¡fiŽ¡##################–?¬end“raid“boot“#########################ŽŸ(EÂ14Ž‘¬%Apppœendice–G\G.“-“teoria“del“funzionamenšcto“di“lin˜uxrcŽŸ¿:¹Questa–0¿€è“la“forma“complessa“del“le“linš¸èuxrc“pGer“raid“mon˜tato“come“roGot.‘e`Dev˜e“essere“elabGorato“con“'bash'“oŽ¡una–U shell“c¸èhe“riconosce“le“funzioni“di“shell.Ž©ؼIl–Kîv‘ÿqÐanš¸ètaggio“sta“nel“fatto“c˜he“€è“generico“e“non“dipGende“dai“le“di“startup“e“dai“parametri“c˜he“si“tro˜v‘ÿqÐanoŽ¡nell'immagine‘U ÃinitrdŽ¦¹Un–‰7parametro“ÃRaid_Conf“¹passato“a“Ãlin®>uxrc“¹dal“kš¸èernel“al“b•Go“ot–‰7da“lilo“o“loadlin“con˜tiene“un“pun˜tatore“aiŽ¡dispšGositivi–üýdi“b˜o˜ot“e“alla“p˜osizione“dei“2“le“raidb˜o˜ot“necessari“p˜er“Ãlin®>uxrc“¹(½r–ÿ}/aidb“o“ot.etc–Bše“r–ÿ}/aidb“o“ot.cfg‘BšscrittiŽ¡dal‘‚Ðlo–“°script“di“shutdown‘ÄU¹).ŽŸê/‘'ÿÃraidb•QÂo“ot.etc›U ¹con•¸ètenen“te˜i˜le˜'tar'-ati:Ž©¿‡‘Býbºraid*Ž¡‘Býbmdtab*Ž¡‘BýbfstabŽ¡‘Býblilo.conf‘N»(–?¬se“applicabile“)Ž¦‘'ÿ¹del–‘sistema“primario“cš¸èhe“v˜engono“trasferiti“sulla“directory“initrd“Ã/etc“¹duran˜te“lo“startup.Ž¡‘Con–1„cura,›8£questo“le“pu€ò“essere“moGdicato,˜se“necessario,˜quando“il“tuo“sistema“ha“dei“guai“seri.Ž¡‘Ãraidb•QÂo“ot.cfg–O¹conš¸ètiene“il“nome“della“partizione“di“b•Go“ot–Oin“uso“e“i“bac˜kup“applicabili,‘#¬cos€ì“come“ilŽ¡‘p•Gercorso›w=p“er˜il˜resto˜del˜le˜di˜startup˜di˜raid˜usato˜da˜Ãlin®>uxrc¹.‘×ÖQuesto˜le˜viene˜normalmen¸èteŽ¡‘creato–U dal“le“di“sh•¸èutdo“wn–U e“pu€ò“essere“creato“man•¸èualmen“te–U se“necessario.Ž¡‘'ÿÃraidb•QÂo“ot.cfg–U ¹€è“della“forma:‘q€3“linee“-“nessun“commen¸ètoŽ¦‘Býbº/dev/bootdev1–?¬/dev/bootdev2“[/dev/bootdev3“...“e“cos€ì“via]Ž¡‘Býbpercorso_di/raid-statusŽ¡‘Býbnome_del_file_raidX.confŽ¦‘=ÿÃpQÂercorso_di/raid-status– 0œ¹non“comprende“il“nome“del“punš¸èto“di“moun˜tŽ¡‘/Ãnome_del_le_raidX.conf– ³¹€è“quello“cš¸èhe“si“tro˜v‘ÿqÐa“in“/etc“ed“€è“normalmen˜te“usatoŽ¡‘/pGer–U Ãc®>kraid“¹e“Ãmkraid¹.Ž©ê/I‘W8seguenš¸èti–W9le“addizionali“si“tro˜v‘ÿqÐano“sulle“partizioni“di“b•Go“ot–W9raid“pGermanen˜ti.‘wËQuesto“€è“solitamen˜te“lo“stessoŽ¡di–²sopra,›Ò±ma“nelle“situazioni“di“emergenza“pu€ò“essere“caricato“da“do¸èvunque“sia“dispGonibile,˜come“da“un“opp¸èyŽ¡di‘U b•Go“ot.Ž¦‘¸ŽŽŽ‘Ãraidgo•QÂo“d.ref–1Þ¹creato“dal“comando“cat“/prošGc/mdstat“¸j“¹grep“md0“ó  b> cmmi10µ>“¹/¸f¹raid_status_path¸g¹/raidgo˜o˜d.refŽŸrq‘vš¸èedi–U 4.12“(script“di“sh˜utdo˜wn)“pGer“salv‘ÿqÐare“questo“le“ed“il“prossimoŽŽŽŒ‹-·¼ Û_2 ý ~?Ÿ„€ÕÁGŽÃ14.‘ñ8AppQÂendice–ÕG.“-“teoria“del“funzionamenš®>to“di“lin˜uxrc’².,¹45ŽŽ ÕÁ ýV¯‘¸ŽŽŽ‘Ãraidstat.ro–Ô‘¹creato“ad“ogni“sh•¸èutdo“wn–Ô‘dal“le“di“sh•¸èutdo“wn–Ô‘rc,‘îGsalv‘ÿqÐando“lo“stato“di“uscita“dell'arra¸èy“raid.ŽŽŽŒøÃ@ƒ’À;èÛ_2ÕÁG-ó”ñÖ• ecbi1200ó¥!¢N ecbx1200óë ecbi1000ó]fŒ ecbx1000ó&Lt$ffffecbx1440óø8‹ ecsi1000ó»y&³ ecsx1000óŒ6 ecss1000ó½HЃ ecti1000óþÖëI½q½qecss2074óqLË ectt1000ó 1ê± ecrm1000ó !",š cmsy10ó  b> cmmi10ùÄ|ßßßßß