割と新しめのカーネルで、フロッピーディスク1枚に収まるLinuxディストリビューションを作る方法を解説します
খ͍͞-JOVYڥͷ࡞ΓํNaomasa Matsubayashi
View Slide
อଘ͢ΔΞΠίϯϑϩοϐʔσΟεΫ
ॳ಄ϑϩοϐʔσΟεΫʹඞཁͳ͕શ෦ೖͬͨ-JOVYσΟετϦϏϡʔγϣϯ͕ྲྀߦͬͨqPQQJY)"-UPNTSUCUIUUQDISJTTJMNPSEFIBMIUUQqPQQJYDPNIUUQXXXUPNTOFUSC
େମͲͷυϥΠϒͰಡΊΔ࠷େͷσΟεΫϑΥʔϚοτ,J#ͷ)%ΠϯνϑϩοϐʔσΟεΫͷ༰ྔ% ,J#% ,J#%% .BD ,J#%% ,J#%% .BD ,J#%% 1$ ,J#%% ,J#)% 1$ ,J#)% 1$"5 .BD ,J#&% ,J#5% ,J#
ϒʔτϩʔμʔͱ-JOVYΧʔωϧͱϢʔβϥϯυΛ߹Θͤͯ,J#ʹऩΊΕΑ͍
YσϑΥϧτͷΧʔωϧίϯϑΟάͰϏϧυͨ͠ΧʔωϧͷαΠζͷਪҠCZUFT
YϑϩοϐʔσΟεΫͷ༰ྔͷݶքݱ࣮తͳΧʔωϧαΠζͷݶք-JOVY༨༟-JOVY͍ۤ͠-JOVYઈతCZUFT
݄-JOVY։ൃऴྃIUUQTMLNMPSHMLNMDate Mon, 9 Apr 2012 15:30:50 +0200From Willy Tarreau <>Subject No more Linux 2.4 releases
σϑΥϧτͷΧʔωϧίϯϑΟάͰϏϧυͨ͠-JOVY,J#
,J#࠷খݶͷυϥΠό͚ͩͰϏϧυͨ͠-JOVY7("ίϯιʔϧ4"5"")$*64#&)$*0)$*γϦΞϧϙʔτ64#ετϨʔδ64#)*%FYU*OUFMͱ3FBMUFLͷ/*$υϥΠό*1W
$0/'*(@&91&35ΧʔωϧͷجຊతͳػೳΛແޮʹͰ͖ΔΑ͏ʹͳΔ
$0/'*(@6*%-JOVYͷϢʔβ*%͕CJU͔ΒCJUʹҠߦIUUQTXXXLFSOFMPSHEPD%PDVNFOUBUJPOIJHIVJEUYUݹ͍ιϑτΣΞͷҝʹCJUͰ6*%Λ͢γεςϜίʔϧ͕͞Ε͍ͯΔࠓͷ-JOVYڥʹͦ͏ͨ͠ιϑτΣΞ͕͍ͬͯΔ͜ͱ໓ଟʹͳ͍CJU6*%ͷγεςϜίʔϧΛαϙʔτ͢Δ
$0/'*(@,"--4:.4Χʔωϧ͕Ϋϥογϡͨ࣌͠ͷόοΫτϨʔεʹγϯϘϧ໊͕ग़ΔΑ͏ʹ͢Δ͋Δ࣌ ͳ͍࣌ਓ͕ؒಡΊΔ όΠφϦΞϯ͚͕ͩಡΊΔ
Linux version 3.12.8 (root@Grueza) (gcc version 4.7.3 (Gentoo4.7.3-r1 p1.4, pie-0.5.5) ) #2 Sat Feb 22 17:22:05 JST 2014e820: BIOS-provided physical RAM map:BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usableBIOS-e820: [mem 0x000000000009fc00-0x000000000009ffff] reservedBIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reservedBIOS-e820: [mem 0x0000000000100000-0x0000000007ffdfff] usableBIOS-e820: [mem 0x0000000007ffe000-0x0000000007ffffff] reservedBIOS-e820: [mem 0x00000000feffc000-0x00000000feffffff] reservedBIOS-e820: [mem 0x00000000fffc0000-0x00000000ffffffff] reservedNotice: NX (Execute Disable) protection cannot be enabled: non-PAE kernel!SMBIOS 2.4 present.e820: last_pfn = 0x7ffe max_arch_pfn = 0x100000PAT not supported by CPU.init_memory_mapping: [mem 0x00000000-0x000fffff]init_memory_mapping: [mem 0x07800000-0x07bfffff]init_memory_mapping: [mem 0x00100000-0x077fffff]init_memory_mapping: [mem 0x07c00000-0x07ffdfff]0MB HIGHMEM available.127MB LOWMEM available.mapped low ram: 0 - 07ffe000low ram: 0 - 07ffe000Zone ranges:DMA [mem 0x00001000-0x00ffffff]Normal [mem 0x01000000-0x07ffdfff]HighMem emptyMovable zone start for each nodeEarly memory node rangesnode 0: [mem 0x00001000-0x0009efff]node 0: [mem 0x00100000-0x07ffdfff]e820: [mem 0x08000000-0xfeffbfff] available for PCI devicesBuilt 1 zonelists in Zone order, mobility grouping on. Totalpages: 32412Kernel command line: console=ttyS0PID hash table entries: 512 (order: -1, 2048 bytes)Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)$0/'*(@13*/5,Χʔωϧ͕ίϯιʔϧʹใΛग़ྗ͢ΔػೳΔͱΧʔωϧ͕ແޱʹͳΔ͋Δ࣌ ͳ͍࣌
$0/'*(@#6(Χʔωϧ͕ҟৗΛݕͨ࣌͠ʹΞʔΩςΫνϟຖͷదͳํ๏Ͱͦͷ͜ͱΛ௨͢ΔΈΔͱυϥΠό͕ҟৗΛݕͯͦ͠ͷ··Δ
$0/'*(@4:4$5-@4:4$"--QSPDϑΝΠϧγεςϜಋೖҎલʹΘΕ͍ͯͨQSPDTZTҎԼͷύϥϝʔλʹΞΫηε͢Δํ๏ۃΊͯݹ͍ιϑτΣΞͷҝʹ͞Ε͍ͯΔ͕·ͱʹอक͞Ε͓ͯΒͣ͠͠Χʔωϧͷมߋ͔Βஔ͖ڈΓʹ͞ΕΔNBOͷઆ໌͕%POPUVTFUIJTTZTUFNDBMM
$0/'*(@&-'@$03&ϢʔβۭؒͰϓϩηε͕Ϋϥογϡͨ࣌͠ʹίΞμϯϓΛੜ͢Δػೳ$0/'*(@1$41,3@1-"5'03.1$εϐʔΧʔυϥΠό$0/'*(@#"4&@'6--ΧʔωϧͷԿΒ͔ͷߏମʹແͯ͘Կͱ͔ͳΔཁૉΛؚΊΔ͔൱͔ͷઃఆΒ͍͔͠͠͠YͰ͍ͬͯΔՕॴݟ͚ͭΒΕͳ͔ͬͨ
$0/'*(@'65&9GVUFYΛ͑ΔΑ͏ʹ͢Δڞ༗ϝϞϦΛ͏߹ʹϓϩηεΛލ͍ͰϩοΫΛߦ͏ඞཁ͕͋Δ͜ͷͨΊʹΧʔωϧ͕ఏڙ͍ͯ͠Δͷ͕GBTUVTFSTQBDFNVUFYFTུͯ͠GVUFYIUUQMXOOFU"SUJDMFTৄ͘͜͠ͷล
$0/'*(@4*(/"-'%γάφϧΛγάφϧϋϯυϥͰͳ͘ϑΝΠϧσΟεΫϦϓλͰड͚ͱΕΔΑ͏ʹ͢Δ$0/'*(@5*.&3'%ϑΝΠϧσΟεΫϦϓλͱͯ͠ѻ͑ΔλΠϚʔ$0/'*(@&7&/5'%Ϣʔβۭؒͷϓϩηεಉ࢜ΧʔωϧͱϢʔβۭؒͷϓϩηεͷؒͰΠϕϯτΛ௨͢ΔͨΊͷϑΝΠϧσΟεΫϦϓλ$0/'*(@&10--ϑΝΠϧσΟεΫϦϓλʹมԽ͕͋ͬͨࣄΛΧʔωϧ͔Β௨ͯ͠Β͏Έ
$0/'*(@4).&.ڞ༗ϝϞϦϑΝΠϧγεςϜΛΨν࣮ʹ͢Δ͔࠷খݶͷ࣮ʹ͢Δ͔ΛબΔ࠷খݶͷ࣮ͰϦιʔε੍ݶ͕ޮ͔ͳ͍TXBQΛΘͳ͍ͱ੍͍͕ͬͨ͋Δ
$0/'*(@"*0ΘΕͳ͍ࣄʹఆධͷ͋Δ-JOVYͷඇಉظ*0Λαϙʔτ͢ΔIUUQMXOOFU"SUJDMFTৄ͘͜͠ͷล
$0/'*(@7.@&7&/5@$06/5&34OS@EJSUZOS@XSJUFCBDLQHQHJOQHQHPVUQTXQJOQTXQPVUQHBMMPD@ENBQHBMMPD@ENBQHBMMPD@OPSNBMQHBMMPD@NPWBCMFQHGSFFQHBDUJWBUFQHEFBDUJWBUFQHGBVMUQHNBKGBVMUQHSFpMM@ENBQHSFpMM@ENBQHSFpMM@OPSNBMQHSFpMM@NPWBCMFQHTUFBM@LTXBQE@ENBQHTUFBM@LTXBQE@ENBQHTUFBM@LTXBQE@OPSNBMQHTUFBM@LTXBQE@NPWBCMFQHTUFBM@EJSFDU@ENBQHTUFBM@EJSFDU@ENBQHTUFBM@EJSFDU@OPSNBMQHTUFBM@EJSFDU@NPWBCMFQHTDBO@LTXBQE@ENBQHTDBO@LTXBQE@ENBQHTDBO@LTXBQE@OPSNBMQHTDBO@LTXBQE@NPWBCMFQHTDBO@EJSFDU@ENBQHTDBO@EJSFDU@ENBQHTDBO@EJSFDU@OPSNBMQHTDBO@EJSFDU@NPWBCMFQHTDBO@EJSFDU@UISPUUMF[POF@SFDMBJN@GBJMFEQHJOPEFTUFBMTMBCT@TDBOOFELTXBQE@JOPEFTUFBMLTXBQE@MPX@XNBSL@IJU@RVJDLMZLTXBQE@IJHI@XNBSL@IJU@RVJDLMZQBHFPVUSVOBMMPDTUBMMQHSPUBUFEQHNJHSBUF@TVDDFTTQHNJHSBUF@GBJMDPNQBDU@JTPMBUFEDPNQBDU@TUBMMDPNQBDU@GBJMDPNQBDU@TVDDFTTIUMC@CVEEZ@BMMPD@TVDDFTTIUMC@CVEEZ@BMMPD@GBJMVOFWJDUBCMF@QHT@DVMMFEVOFWJDUBCMF@QHT@TDBOOFEVOFWJDUBCMF@QHT@SFTDVFEVOFWJDUBCMF@QHT@NMPDLFEVOFWJDUBCMF@QHT@NVOMPDLFEVOFWJDUBCMF@QHT@DMFBSFEVOFWJDUBCMF@QHT@TUSBOEFEUIQ@GBVMU@BMMPDUIQ@GBVMU@GBMMCBDLUIQ@DPMMBQTF@BMMPDUIQ@DPMMBQTF@BMMPD@GBJMFEUIQ@TQMJUUIQ@[FSP@QBHF@BMMPDUIQ@[FSP@QBHF@BMMPD@GBJMFEOS@UMC@SFNPUF@qVTIOS@UMC@SFNPUF@qVTI@SFDFJWFEOS@UMC@MPDBM@qVTI@BMMOS@UMC@MPDBM@qVTI@POF༗ޮʹ͢ΔͱQSPDWNTUBUʹҎԼͷใ͕Ճ͞ΕΔ
$0/'*(@4-0#$0/'*(@&91&35Λ༗ޮʹ͢ΔͱՃ͞ΕΔΧʔωϧϝϞϦΞϩέʔλ4-"#Ξϩέʔλ࣮Ҏલͷ-JOVYͷΞϩέʔλʹ4-"#ΤϛϡϨʔγϣϯϨΠϠʔΛՃͯ͠4-"#ͷΘΓʹ͑ΔΑ͏ʹͨ͠ͷ4-"#ΑΓϑϥάϝϯςʔγϣϯΛى͘͜͢͠εέʔϥϏϦςΟʹ͚ܽΔ͕ඇৗʹখ͍͞ίʔυͰ࣮͞Ε͍ͯΔIUUQMXOOFU"SUJDMFTৄ͘͜͠ͷล
#-0$,%&'"6-5@/001*0εέδϡʔϥΛཁٻ͞ΕͨॱʹॲཧΛΩϡʔʹੵΉ͚ͩͷεέδϡʔϦϯά͠ͳ͍εέδϡʔϥ/PPQεέδϡʔϥͷΈαϙʔτ͢ΔΑ͏ʹ͢Δৄ͘͜͠ͷลIUUQTBDDFTTSFEIBUDPNTJUFEPDVNFOUBUJPOFO643FE@)BU@&OUFSQSJTF@-JOVYIUNM1FSGPSNBODF@5VOJOH@(VJEFDITTIUNM
,J#$0/'*(@&91&35Ͱߋʹͬͨ-JOVY7("ίϯιʔϧ4"5"")$*64#&)$*0)$*γϦΞϧϙʔτ64#ετϨʔδ64#)*%FYU*OUFMͱ3FBMUFLͷ/*$υϥΠό*1W
,J#-JOVYͰಉ༷ͷઃఆΛͨ͠߹7("ίϯιʔϧ4"5"")$*64#&)$*0)$*γϦΞϧϙʔτ64#ετϨʔδ64#)*%FYU*OUFMͱ3FBMUFLͷ/*$υϥΠό*1W
ۭ͖ྖҬʹऩ·ΔΑ͏ʹϢʔβϥϯυΛ࡞ΔϑϩοϐʔσΟεΫͷ༰ྔΧʔωϧͷαΠζ,J#,J#,J#Ϣʔβϥϯυʹ͑Δ༰ྔ-;."Ͱѹॖͨ͠ঢ়ଶͰ,J#ະຬʹͳΔJOJUSBNGTΛ࡞Δ
ϒʔτϩʔμʔΧʔωϧ JOJUSBNGTϒʔτϩʔμʔΧʔωϧϒʔτϩʔμىಈΧʔωϧىಈJOJUSBNGTͷJOJUىಈϧʔτϑΝΠϧγεςϜͷJOJUىಈJOJUSBNGT SPPUGTSPPUGTJOJUSBNGTʹඞཁͳͷΛશͯೖΕͯSPPUGTΛͳͦ͘͏
-;."Ͱѹॖͨ͠ঢ়ଶͰ,J#ະຬʹͳΔJOJUSBNGTΛ࡞ΔѹॖϑΝΠϧγεςϜΑΓখ͘͞ͳΔϑϩοϐʔσΟεΫͷυϥΠό͕ཁΒͳ͍ϑΝΠϧγεςϜͷυϥΠό͕ཁΒͳ͍
ۭ͖ྖҬʹऩ·ΔΑ͏ʹϢʔβϥϯυΛ࡞ΔMJCDTPM[NB ,J#,J#HMJCDΛ͏ͷແཧͦ͏,J#Ϣʔβϥϯυʹ͑Δ༰ྔ
͍ʹ͑͠ͷϑϩοϐʔ-JOVYୡ-JOVYMJCDΛ͍ͬͯΔ
)J (BMTBOE(VZT 5IF-JOVY$MJCSBSZJTBCVHpYJOHSFMFBTFGPSMJCD5IFSFBSFOPOFXGFBUVSFTJOUIJTSFMFBTF5IJTJTUIFMBTUSFMFBTFPGMJCDYY"MMNZNBDIJOFTBSFOPXSVOOJOH3FE)BUXIJDIJTCBTFEPOHMJCD BLBMJCD1MFBTFDIFDLUIFHMJCDXFCTJUFGPSEFUBJMTIUUQXXXHOVPSHTPGUXBSFMJCDMJCDIUNM*SFBMMZFOKPZFEXPSLJOHPOUIF-JOVY$MJCSBSZXJUIBMMUIFQFPQMFPWFSUIFZFBST8JUIPVUZPV -JOVYDBOOPUCFXIBUJUJTUPEBZ5IBOLTUPZPVSTVQQPSU XFEJEJU/PXJUJTUIFUJNFUPNPWFPOUPMJCD BLBHMJCD*XJMMCFXPSLJOHPOHMJCDBTBEFWFMPQFS CVUOPUBTBNBJOUBJOFS 6MSJDIIBTCFFOEPJOHBHSFBUKPCPONBJOUBJOJOHHMJCD*XJMMUSZUPBOTXFSBMMUIFDPODFSOTPWFSMJCDWTMJCDBTXFMMBTUIFCVHJTTVTFTSFMBUFEUPMJCDIUUQTXXXLFSOFMPSHQVCMJOVYMJCTMJCDPMESFMFBTFMJCD࠷৽ͷMJOVYMJCDͷϦϦʔεϊʔτ͜ΕMJCDYYͷ࠷ޙͷϦϦʔεͩHMJCDͷҠߦΛݕ౼ͯ͘͠Ε
&-'SFMBUFE888QBHFT IUUQXXXJOUBDDPNdDVMMZFMGIUNM IUUQXXXTKDPYBDVLVTFSTCBSMPXMJOVYHDDIUNM IUUQXXXCMBDLEPXOPSHFMGFMGIUNM&-'EPDVNFOUBUJPO GUQTVOTJUFVODFEVQVC-JOVY($$FMGQTH[ GUQTVOTJUFVODFEVQVC-JOVY($$FMGMBUFYUBSH[ GUQTVOTJUFVODFEVQVC-JOVY($$&-'EPDUBSH[)+IKM!HOVPSHIUUQTXXXLFSOFMPSHQVCMJOVYMJCTMJCDPMESFMFBTFMJCD࠷৽ͷMJOVYMJCDͷϦϦʔεϊʔτ͜ΕMJCDYYͷ࠷ޙͷϦϦʔεͩHMJCDͷҠߦΛݕ౼ͯ͘͠Ε݄-JOVYMJCD։ൃऴྃ
ଞͷখ͍͞MJCDͷબࢶIUUQXXXVDMJCDPSHV$MJCDNVTMMJCD IUUQXXXNVTMMJCDPSHIUUQXXXGFGFEFEJFUMJCDEJFUMJCDIUUQXXXFUBMBCTOFUDPNQBSF@MJCDTIUNMੑೳൺֱ͜ͷลࠓճ͜ΕΛ͏
ଞͷখ͍͞MJCDͷબࢶV$MJCDNVTMMJCDEJFUMJCDIUUQXXXFUBMBCTOFUDPNQBSF@MJCDTIUNMੑೳൺֱ͜ͷลࠓճ͜ΕΛ͏ͻͨ͢Βখ͍͞ɺ͍ɺػೳΓͯͳ͍෯͍ΞʔΩςΫνϟΛαϙʔτV$MJCDΑΓখ͘͞ɺV$MJCDΑΓ͍
#64:#09-JOVYڥͰΑ͘ΘΕΔίϚϯυΛՄೳͳݶΓখ࣮ͨ͘͞͠ͷશͯͷίϚϯυΛͭͷόΠφϦʹू͢Δ͜ͱͰಉ͡Α͏ͳ࣮͕ෳͷόΠφϦʹࢄΒΔͷΛ͙IUUQXXXCVTZCPYOFU%SPQCFBSඇৗʹখ͍͞44)αʔόɺΫϥΠΞϯτIUUQTNBUUVDDBTOBVESPQCFBSESPQCFBSIUNM
$ readelf -s a.outSymbol table '.dynsym' contains 13 entries:Num: Value Size Type Bind Vis Ndx0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND1: 0000000000000000 0 NOTYPE WEAK DEFAULT UND__gmon_start__2: 0000000000000000 0 NOTYPE WEAK DEFAULT UND_Jv_RegisterClasses3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND_ZNSt8ios_base4InitC1Ev@GLIBCXX_3.4 (2)4: 0000000000000000 0 FUNC GLOBAL DEFAULT UND__libc_start_main@GLIBC_2.2.5 (3)5: 0000000000000000 0 FUNC GLOBAL DEFAULT UND__cxa_atexit@GLIBC_2.2.5 (3)6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND_ITM_deregisterTMCloneTab7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND_ZStlsISt11char_traitsIcE@GLIBCXX_3.4 (2)8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND_ITM_registerTMCloneTable9: 0000000000000000 0 FUNC GLOBAL DEFAULT UND_ZNSolsEPFRSoS_E@GLIBCXX_3.4 (2)10: 00000000004007d0 0 FUNC GLOBAL DEFAULT UND_ZSt4endlIcSt11char_trait@GLIBCXX_3.4 (2)$ readelf -s a.outSymbol table '.dynsym' contains 13 entries:Num: Value Size Type Bind Vis NdxName0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND1: 0000000000000000 0 NOTYPE WEAK DEFAULT UND__gmon_start__2: 0000000000000000 0 NOTYPE WEAK DEFAULT UND_Jv_RegisterClasses3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND_ZNSt8ios_base4InitC1Ev@GLIBCXX_3.4 (2)4: 0000000000000000 0 FUNC GLOBAL DEFAULT UND__libc_start_main@GLIBC_2.2.5 (3)5: 0000000000000000 0 FUNC GLOBAL DEFAULT UND__cxa_atexit@GLIBC_2.2.5 (3)6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND_ITM_deregisterTMCloneTab7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND_ZStlsISt11char_traitsIcE@GLIBCXX_3.4 (2)8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND_ITM_registerTMCloneTable9: 0000000000000000 0 FUNC GLOBAL DEFAULT UND_ZNSolsEPFRSoS_E@GLIBCXX_3.4 (2)10: 00000000004007d0 0 FUNC GLOBAL DEFAULT UNDTUSJQTUSJQVOOFFEFEόΠφϦ࣮ߦՄೳόΠφϦ͔ΒγϯϘϧςʔϒϧΛআ͢ΔTUSJQTUSJQVOOFFEFE࣮ߦՄೳόΠφϦ͔ΒγϯϘϧςʔϒϧΛআ͢ΔΔલ ͬͨޙ
$ readelf -S a.outThere are no sections in this file.$ readelf -S a.outThere are 28 section headers, starting at offset 0x1180:Section Headers:[Nr] Name Type AddressOffsetSize EntSize Flags Link InfoAlign[ 0] NULL 0000000000000000000000000000000000000000 0000000000000000 0 00[ 1] .interp PROGBITS 000000000040027000000270000000000000001c 0000000000000000 A 0 01[ 2] .note.ABI-tag NOTE 000000000040028c0000028c0000000000000020 0000000000000000 A 0 04[ 3] .hash HASH 00000000004002b0000002b00000000000000048 0000000000000004 A 5 0TUSJQTUSJQVOOFFEFEόΠφϦ࣮ߦՄೳόΠφϦ͔ΒγϯϘϧςʔϒϧΛআ͢ΔTTUSJQ࣮ߦՄೳόΠφϦ͔ΒηΫγϣϯϔομΛআ͢ΔΔલ ͬͨޙIUUQXXXNVQQFUMBCTDPNdCSFBECPYTPGUXBSFFMGLJDLFSTIUNM
$ mkdir etc/$ cat <etc/init.d/rcS#!/bin/ashhostname Tinymount -t proc none /procmount -t sysfs none /sysifconfig eth0 upudhcpc eth0crondEOF$ cat <etc/inittab::sysinit:/etc/init.d/rcStty1::respawn:/sbin/getty -L tty1 38400 linuxtty2::respawn:/sbin/getty -L tty2 38400 linuxttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100::restart:/sbin/init::shutdown:/bin/umount -a -rEOF
$ mkdir -p proc sys dev root tmp var/spool/cron/crontabs/ usr/share/udhcpc/cp -rpdf /dev/{console,full,hpet,initctl,kmem,mem,null,nvram,port,ptya[0-9],ptya[a-f],random,rtc0,sda*,tty,tty[0-9],ttyS[0-1],urandom,zero} dev/$ cp /usr/share/udhcpc/default.script usr/share/udhcpc$ cat <etc/grouproot:x:0:rootbin:x:1:root,bintty:x:5:kmem:x:9:uucp:x:14:EOF$ cat <etc/passwdroot:5vqD6957XLPg2:0:0:root:/root:/bin/ashbin:x:1:1:bin:/bin:/bin/falseEOF$ ln -s bin/busybox init
ۭ͖ྖҬʹऩ·ΔΑ͏ʹϢʔβϥϯυΛ࡞Δ,J#CVTZCPY ελςΟοΫϦϯΫ,J#ESPQCFBS ελςΟοΫϦϯΫඇѹॖͷϢʔβϥϯυ,J#DQJPͯ͠M[NBJOJUSBNGTDQJPM[NB,J#,J#Ϣʔβϥϯυʹ͑Δ༰ྔΓͨ
ϑϩοϐʔσΟεΫΛϒʔτՄೳʹ͠Α͏%JSFDUqPQQZCPPUJTOPUTVQQPSUFE6TFBCPPUMPBEFSQSPHSBNJOTUFBE3FNPWFEJTLBOEQSFTTBOZLFZUPSFCPPUΧʔωϧΛϑϩοϐʔ͔Βϒʔτ͢Δͷ͏αϙʔτ͞Ε͍ͯͳ͍ͷͰɺఘΊͯϒʔτϩʔμʔΛ͍ͬͯͩ͘͞
$ mkfs.minix /dev/fd0$ mount -t auto /dev/fd0 /boot$ cp initramfs.cpio.lzma /boot$ cp $(KERNEL_DIR)/arch/x86/boot/bzImage /boot/vmlinuz$ cat </etc/lilo.confboot = /dev/fd0compactmap = /boot/mapvga = normalimage = /boot/vmlinuzlabel = "Linux"initrd = /boot/initramfs.cpio.lzmaEOF$ lilo-*-0ΛΠϯετʔϧ
LILO 23.2 Loading LinuxBIOS data check successfulstarting pid 35, tty '/dev/tty1': '/sbin/getty -L tty1 38400 linux'Tiny login:ಈ͍ͨ
# wget http://slashdot.org/Connecting to slashdot.org (216.34.181.45:80)# dmesgdmesg: klogctl: Function not implemented
44)ΫϥΠΞϯτಉࠝ൛*1WରԠ൛IUUQUDP:/24MFFNETVNECFBEBEIUUQUDPRG-Y[PLNETVNGECDGGFBE
ͰͬͺΓϑϧػೳͷ-JOVYΧʔωϧͷ্ͰσεΫτοϓڥಈ͔ͯ͠5XJUUFS͍ͨ͠ΑͶϑϩοϐʔσΟεΫ͔Βىಈ͢ΔΧʔωϧωοτϫʔΫ͔Βμϯϩʔυͨ͠ผͷΧʔωϧΛLFYFDͰىಈ͢Δ͜ͱʹಛԽͤ͞Δஈ֊ͷΧʔωϧJ4$4*λʔήοτΛSPPUGTͱͯ͠Ϛϯτ͋ͱ༰ྔͷ੍ݶͳ͍ͭ͘ͷ-JOVYڥ
LFYFD-JOVYΧʔωϧΛϒʔτϩʔμͱͯ͠ผͷ-JOVYΧʔωϧΛىಈ͢ΔΈҰൠతͳϒʔτϩʔμͰखʹෛ͑ͳ͍ॴʹஔ͔ΕͨΧʔωϧΛىಈ͍ͨ͠#*04Λܦ༝ͤͣʹߴʹϦϒʔτ͍ͨ͠Χʔωϧ͕Ϋϥογϡͨ࣌͠ʹผͷΧʔωϧͰσόοά͍ͨ͠ LEVNQͦΜͳ࣌ʹ͏
ʮํۭ͔ΒGentoo͕ʯγεςϜΫϥυLFYFD༻ΧʔωϧBVGTΛͬͯมߋ3".ʹอଘϑϧඋͳΧʔωϧJ4$4* SFBEPOMZᶃᶄIUUQUDPI'YZVTBLFO CBDEFEFCEBFFEDEEFᶅGentoo)551
ʮํۭ͔ΒGentoo͕ʯγεςϜIUUQUDPI'YZVTBLFO CBDEFEFCEBFFEDEEF
MJOVYYZ͕&0-ʹͳͬͨΒ·ͩઓ͏ज़͋Δ͜͜·ͰY@Λ͖͕ͬͯͨYʹ͢ΕएׯΧʔωϧ͕খ͘͞ͳΔ,J#ͷ߹,J#
MJOVYYZ͕&0-ʹͳͬͨΒ·ͩઓ͏ज़͋ΔϒϩοΫσόΠεΛҰαϙʔτ͠ͳ͍Α͏ʹ͢Ε/PPQεέδϡʔϥ͕ෆཁʹͳΔ,J#,J#ͷ߹
MJOVYYZ͕&0-ʹͳͬͨΒ·ͩઓ͏ज़͋Δ"$1*ͱDQVGSFRʮඞͣ༗Δͱظ͢ΔυϥΠό͕ډΔʯͨΊʹΉͳ͘༗ޮʹ͍ͯ͠Δ͜ͷΜͷυϥΠόͷιʔεΛमਖ਼͢Ε"$1*ͱDQVGSFR֎ͤΔͣ
·ͱΊ-JOVYΧʔωϧ͜ͷͰڊେԽ͚ͨ͠Ͳࠓͷ-JOVYʹڊେԽʹ߅͏खஈ๛ʹ͋Δ͔ΒετϨʔδ͕ઈతʹখͯ͘͞ෛ͚ΔͳΨϯόϨʂ
44)ಉࠝ൛*1W൛(FOUPP൛Thank you for listening.ઃఆIUUQUDPRG-Y[PLNETVNGECDGGFBEIUUQUDP:/24MFFNETVNECFBEBEIUUQUDPI'YZVTBLFONETVNCBDEFEFCEBFFEDEEFIUUQXXXVTBLVSBOFKQEFOFCDPOpHT