.ISOããã³ä»®æ³åãªãã§Linuxãã€ã³ã¹ããŒã«ãã
å€§æ ¹ã¹ã¯ãªããã䜿çšããŠããã¡ã€ã«ã·ã¹ãã ãäœæããDebianããã³Ubuntuãã€ã³ã¹ããŒã«ããã³ã¯ããŒã³ããŸãã
1.å€§æ ¹ã¹ã¯ãªããã®ç®çãšæ©èœ
éåžžãLinuxã·ã¹ãã ã¯ããã£ã¹ããªãã¥ãŒã·ã§ã³ã®éçºè
ãæäŸããã€ã³ã¹ããŒã©ãŒããã°ã©ã ãå®è¡ããããšã«ããã€ã³ã¹ããŒã«ãããŸãã ããã¯ãã€ã³ã¹ããŒã«ãå®è¡ãããã³ã³ãã¥ãŒã¿ãŒäžã§çŽæ¥è¡ããããããŸãã¯ä»®æ³åã䜿çšãããªã©ã®éé¢ãããç°å¢ã§è¡ãããŸãã 以äžã§èª¬æããæé ã¯ããããã®ååã«åŸã£ãŠãæå°éå¿
èŠãªåœ¢åŒã§ã®ã¿å®è¡ãããŸãã ã·ã¹ãã ã€ã¡ãŒãžãäœæããå Žåãã€ã³ã¹ããŒã©ãŒã¯æå°éã®debootstrapã·ã¹ãã ãžã§ãã¬ãŒã¿ãŒãšaptããã±ãŒãžãããŒãžã£ãŒã€ã³ã¿ãŒãã§ã€ã¹ïŒäž¡æ¹ãšãdpkgããã±ãŒãžãããŒãžã£ãŒã®äžïŒã«çž®å°ãããä»®æ³åã®ä»£ããã«chrootã䜿çšãããŸãã
ããã€ã¹ãžã®ãã£ã¹ã¯ã€ã¡ãŒãžã®ã€ã³ã¹ããŒã«ã¯ãã€ã³ã¹ããŒã©ãŒãŸãã¯ããã±ãŒãžãããŒãžã£ãŒããŸã£ãã䜿çšããªãæå°éã®ã¹ã¯ãªããã§è¡ãããŸããããã£ã¹ã¯ã€ã¡ãŒãžã§ããã±ãŒãžãããŒãžã£ãŒã«ãã£ãŠå®å
šã«å¶åŸ¡ãããæ§æãäœæããŸã-ããŒãããŒããŒãã«ãŒãã«ãªã©ãã€ã³ã¹ããŒã«ããããã¹ãŠã®ã³ã³ããŒãã³ãã¯ãåããããŒãžã£ãŒã¢ã¯ã·ã§ã³ã§æŽæ°ããã³çœ®æã§ããŸãæšæºé
åžã€ã³ã¹ããŒã©ãŒã«ãã£ãŠã€ã³ã¹ããŒã«ãããã·ã¹ãã ã§äœ¿çšãããããã±ãŒãžã
ã¹ã¯ãªããã¯GithubãµãŒããŒã«ããã ãã¡ãããå
¥æã§ããŸã ã
1.1ã å¶éäºé
ã¹ã¯ãªããã¯ãDebianããã±ãŒãžãããŒãžã£ãŒã«åºã¥ããŠãDebianãUbuntuãªã©ã®ãã£ã¹ããªãã¥ãŒã·ã§ã³çšã«éçºãããŸããã ååãšããŠãrpmãRed Hatããã±ãŒãžãããŒãžã£ãŒããŸãã¯ãã®ä»ã®ããŸãäžè¬çã§ãªãã¡ã«ããºã ã«åºã¥ãããã£ã¹ããªãã¥ãŒã·ã§ã³ãžã®åãæé ã®ç§»æ€ã劚ããæ ¹æ¬çãªå¶éã¯ãããŸããã ãã ããäœè
ã¯äž»ã«DebianãšUbuntuã®ãµããŒããå¿
èŠãšããŠããããããã®æ¹åã§éçºãè¡ãããŸããã
å¥ã®æ¢åã®å¶éã¯ãææ°ã®GPTã§ã¯ãªããMBRããŒãã£ã·ã§ã³ã®ããŒããšããŒãã£ã·ã§ã³åã®ã¡ã«ããºã ã®äœ¿çšã«é¢é£ããŠããŸãã ããã«ãããããŒãããã€ã¹ã®ãµã€ãºã2ãã©ãã€ãã«å¶éãããx86ããã€ã¹ã§é©åãªBIOSèšå®ãå¿
èŠã«ãªããŸãã GPT / UEFIã®ãµããŒãã劚ããåºæ¬çãªå¶éã¯ãããŸããããäœæè
ã¯ãããŒããã£ã¹ã¯ä»¥å€ã®ãã®ã«çžãããªãåçŽãªæ§æãäœæãããšããç®æšãèšå®ããŸããã x86ã¢ãŒããã¯ãã£ã§ã¯ãMBRã«ã¯ãã¹ãŠã®æ¬ ç¹ãšå¶éãããã1ã€ã®æçšãªç¹æ§ããããŸããBIOSãMBRãæèŒãããã£ã¹ã¯ãããŒãããã€ã¹ãšããŠéžæããå ŽåãåŸç¶ã®ããŒãããã»ã¹å
šäœã¯ããã®ããã€ã¹ã«ããããŒãããŒããŒã®ã¹ããŒãžã®ãã§ãŒã³ã«ãã£ãŠæä»çã«å¶åŸ¡ãããåãããã€ã¹äžã®ãã¡ã€ã«ããæ§æãåãåããŸãã ã©ããããå°æ¥çã«ã¯GPTãšUEFIã®ãµããŒããè¿œå ããããšã¯çã«ããªã£ãŠããŸãã幞ããªããšã«ãUEFIã®éæšæºã®åäœã«é¢ããåé¡ã¯ãçŸåšã®äžä»£ã®æ©åšã§å€§å¹
ã«æžå°ããŠããŸãã
1.2ã ãã£ã¹ã¯ã€ã¡ãŒãžã®ã¢ã»ã³ãã«æé ããã®å€æŽãããã³ããŒãããã€ã¹ãžã®ã€ã³ã¹ããŒã«
ã€ã³ã¹ããŒã«æé ã¯ããã£ã¹ã¯ã€ã¡ãŒãžã®äœæãšããã€ã¹ãžã®ã€ã³ã¹ããŒã«ãšãã2ã€ã®æ®µéã§æ§æãããŸãã ããã«ããã®ãããªãã£ã¹ã¯ã€ã¡ãŒãžãã€ã³ã¹ããŒã«ãããŠããåããã€ã¹ã¯ãx86ã¢ãŒããã¯ãã£ïŒåæã¢ã»ã³ããªã«å¿ããŠ32ããããŸãã¯64ãããïŒã®ã³ã³ãã¥ãŒã¿ãŒã§èµ·åå¯èœã«ãªããŸãã ãã¡ã€ã«ã·ã¹ãã ã€ã¡ãŒãžãã€ã³ã¹ããŒã«ããæé ã«ã¯ããã¡ã€ã«ã·ã¹ãã ã®äžæã®èå¥åïŒUUIDïŒã®äœæãå«ãŸããŸããããã«ãããèµ·åäžã®æ··ä¹±ãšãåãããŒãã£ã·ã§ã³ã®è€æ°ã®ããã€ã¹ãèµ·åæã«åãã³ã³ãã¥ãŒã¿ãŒã«æ¥ç¶ãããŠããå Žåã«çºçããå¯èœæ§ãããã·ã¹ãã æŽæ°ãæé€ã§ããŸãã
ã«ãŒãïŒ /
ïŒããã³ããŒãïŒ /boot
ïŒãã¡ã€ã«ã·ã¹ãã ã¯ãä»ã®ããã€ã¹ïŒãã©ã€ãããã³ããŒãã£ã·ã§ã³ïŒã®ååšãŸãã¯èå¥é åºã«äŸåããªãããã«ããããã«ãUUIDã«ãã£ãŠGRUBæ§æããã³/etc/fstab
èå¥ãããŸãã GRUBã¯åžžã«ç¬èªã®æ§æãèªã¿åããŸãïŒBIOSã¯åžžã«ãMBRã®æåã®GRUBã¹ããŒãžãå«ãããŒããã£ã¹ã¯ãã€ã³ã¹ããŒã«ãããã®æ©èœãä»ããŠã¢ã¯ã»ã¹ãããšãã®ãæåã®ããŒããã£ã¹ã¯ãïŒãGRUBæ§æã«ã¯ã«ãŒããã¡ã€ã«ã·ã¹ãã ã®UUIDãå«ãŸããã³ãã³ãã©ã€ã³çµç±ã§ã«ãŒãã«ã«æž¡ãããŸãã ããŒãããã»ã¹ã¯ãã®èå¥åã䜿çšããŠ/
ãšããŠããŠã³ããããããã€ã¹ãèå¥ãããã¡ã€ã«/etc/fstab
ãåãããã€ã¹ããèªã¿åãããŸãããã®ããã€ã¹ãããUUIDã«ãã£ãŠãã¡ã€ã«ã·ã¹ãã ã決å®ãããå¿
èŠã«å¿ããŠ/ bootãšããŠããŠã³ããããŸãïŒããšãã°ãã«ãŒãã«ãŸãã¯ããŒãããŒããŒãæŽæ°ãããšãïŒã ãŸãã /etc/fstab
ã®ã«ãŒããã¡ã€ã«ã·ã¹ãã ã®UUIDã¯ã /
ïŒããã³ãã¡ã€ã«èªäœãå«ãïŒãšããŠããŠã³ãããããã¡ã€ã«ã·ã¹ãã ã®UUIDãšäžèŽããããšãä¿èšŒãããŠããŸãã è€æ°ã®æ¥ç¶ããã€ã¹ã«ãã¡ã€ã«ã·ã¹ãã ã®åãUUIDãå«ãŸããŠããå Žåãããã€ã¹ã®1ã€ããèµ·åããåŸãåãUUIDãæã€ä»ã®ããã€ã¹ãããã¡ã€ã«ã·ã¹ãã ãããŠã³ããããå¯èœæ§ããããŸãã UUIDãäžæã§ãããGRUBããã³/etc/fstab
æ§æå
ã®åç©çããã€ã¹ã«ç¬èªã®ããŒãã£ã·ã§ã³ã®UUIDãžã®ãªã³ã¯ãå«ãŸããŠããå Žåããã®ç¶æ³ã¯äžå¯èœã§ãã
äžè¬ã«ãå€§æ ¹ã¹ã¯ãªãããã€ã³ã¹ããŒã«ããããã£ã¹ã¯ã€ã¡ãŒãžãšããã€ã¹ã¯ãããŒããŠã§ã¢ãšBIOSã®æ§æããããã®ããã€ã¹ããã®åŸæ¥ã®ïŒMBRãä»ããïŒããŒãã«å¹²æžããªãéããããŒããŠã§ã¢ãšã®æ倧ã®äºææ§ãå®çŸããå¹
åºãå¯èœãªæ§æã§æäœæ§ãç¶æããããã«èšèšãããŠããŸãã
å¿
èŠã«å¿ããŠããŠãŒã¶ãŒã¯ãã£ã¹ã¯ã€ã¡ãŒãžã解åãããã¡ã€ã«ãšããã±ãŒãžãè¿œå ããå±éãããã£ã¹ã¯ã€ã¡ãŒãžãchrootã§å®è¡ãããããã®å€æŽåŸã«æ°ãããã£ã¹ã¯ã€ã¡ãŒãžãåéã§ããŸãã ãŸãããŠãŒã¶ãŒã¯ããã€ã¹ã«ãã£ã¹ã¯ã€ã¡ãŒãžãã€ã³ã¹ããŒã«ããããããèµ·åããéåžžã®æ¹æ³ã§äœ¿çšããŠãããç°¡åãªæé ã䜿çšããŠãã¯ããŒãã³ã°æã«ãŠãŒã¶ãŒãããã€ã¹ãã³ããŒããç¶æ
ã§ããã€ã¹ã®ã³ããŒãäœæãããã£ã¹ã¯ã€ã¡ãŒãžãäœæã§ããŸãã ãã®å ŽåããŠãŒã¶ãŒãåºæ¬çãªã¡ã«ããºã ïŒããŒãæ¹æ³ãããŒããŠã§ã¢ã¢ãŒããã¯ãã£ãªã©ïŒãå€æŽããŠããªããã°ãã€ã³ã¹ããŒã«æé ã¯å€æŽãããŸããã
1.3ã ãã£ã¹ã¯ã€ã¡ãŒãžã䜿çšããŠããã¯ã¢ãããã埩å
ããåäœäžã®æ§æãæ°ããããŒããŠã§ã¢ã«è»¢éãã
åŸè
ã䜿çšãããšãããã¯ã¢ããããèµ·åå¯èœãªããã€ã¹ã埩å
ããåé¡ã解決ã§ããŸãããã®æ¹æ³ã§äœæãããããã€ã¹ã®ã³ããŒãããã£ã¹ã¯ã€ã¡ãŒãžãäœæããããã€ã¹äžã®ããã€ã¹ãžã®ã€ã¡ãŒãžã®ã€ã³ã¹ããŒã«ãéå§ããŸãã ãã®æé ã®åŸã®ãã¡ã€ã«ã»ãããšããŒãã¡ã«ããºã ã®äž¡æ¹ããæ©èœçã«ããã¯ã¢ããã®äœæå
ã®ããã€ã¹ã®ã³ããŒã«ãªããŸãã ããŸããŸãªæ©åšã»ãããšã®äºææ§ã«ããããµãŒããŒã«é害ãçºçããå ŽåããŸãã¯æ°ããæ©åšãšäº€æããå Žåã«æ©åšãå®å
šã«äº€æããæåã§æ§æããã«å®è¡å¯èœãªããŒãå¯èœãªã·ã¹ãã ãååŸã§ããŸãã ãã®å Žåã1ã€ã®èŠä»¶ãæºããå¿
èŠããããŸã-å°ãªããšãå®è¡å¯èœãªæ§æã®1ã€ã§ã¯ãã·ã¹ãã ã¯ä¿åããããªãã¬ãŒãã£ã³ã°ã·ã¹ãã æ§æã«ãã£ãŠèªèããã1ã€ã®ãã£ã¹ã¯ããèµ·åå¯èœã§ãªããã°ãªããŸããã
ã€ãŸããRAIDã¢ã¬ã€ããããŒãããããµãŒããŒããã®ãã£ã¹ã¯ã€ã¡ãŒãžã¯ãå®å
šã«ç°ãªãæ§æã«ãªã«ããªããåŸã¯èµ·åã§ãããããŒããŠã§ã¢ããœãããŠã§ã¢ã§ãµããŒããããã¢ã¬ã€ãããŒãã£ã·ã§ã³ãããã³è«çããªã¥ãŒã ã®è¿œå æ§æãå¿
èŠã«ãªãããšããããŸãã ãããè¡ãã«ã¯ãMBRãããŒãã£ã·ã§ã³ãããã³ãã¡ã€ã«ã·ã¹ãã ãå«ããã·ã³ãã«ãªãæ§æã®ããã€ã¹ãå°ãªããšã1ã€çšæããéåžžã®ãµãŒããŒæäœäžã«èµ·åå¯èœãªããã€ã¹ã§ã¯ãªãå Žåã§ããèµ·åå¯èœãªã·ã¹ãã ã®ã³ããŒãç¶æããããšãçã«ããªã£ãŠããŸãã 次ã«ãæ©åšãå€æŽããåŸãæåã«ãã®ããã€ã¹ã®åŸ©å
ãããã³ããŒãéå§ãããã®åŸæåã§ãŸãã¯èªåçã«æ®ãã®æ§æã埩å
ããããšãã§ããŸãã
1.4ã ã¢ã»ã³ããªãå®è¡ãããã³ã³ãã¥ãŒã¿ãŒã®ã¢ãŒããã¯ãã£ãšã¯ç°ãªãããã»ããµã¢ãŒããã¯ãã£ã®ãã£ã¹ã¯ã€ã¡ãŒãžãäœæãã
çŸæç¹ã§ã¯ãå€§æ ¹ã¯ãå€éšãã¢ãŒããã¯ãã£çšã®ãã¡ã€ã«ã·ã¹ãã ãå®å
šã«äœæããããšã¯ã§ããŸããããå¿
èŠãªã¢ãŒããã¯ãã£ãåããããã€ã¹äžã§å®è¡ãããœãŒã¹ãã£ã¬ã¯ããªããªãŒãæ§ç¯ããéšåã§äœ¿çšããåä¿¡ããããŸã§ãã®ããã€ã¹ïŒå®ãŸãã¯ãšãã¥ã¬ãŒãïŒã§æ§ç¯æé ãå®äºã§ããŸãå®å
šã«æ©èœãããã¡ã€ã«ã·ã¹ãã ã
ããã¯å€§æ ¹ã®æãéçºãããŠããªãéšåã§ããã«ãããããããããŸããŸãªããã€ã¹ã®çµã¿èŸŒã¿ãœãããŠã§ã¢ããŒãããäœæããããã®ã¹ã¯ãªããã«å«ããã®ã«éåžžã«é©ããŠããŸã-æå°éã®ãã¡ã€ã«ã·ã¹ãã ã®äœæãè¿œå ããŠå€§æ ¹ãèµ·åããã ãã§ãïŒããšãã°ãbusyboxã«åºã¥ããŠã·ã¹ãã ãã³ã³ãã€ã«ããïŒãããŒãããŒããŒã®èšå®ãããã³å€§æ ¹ãäœæãããã¡ã€ã«ãããã€ã¹ã«ã³ããŒããæé ïŒããšãã°ãããŒããã¡ã€ã«ã·ã¹ãã ã«å«ãããssh / scpãªã©ã䜿çšïŒã
2.è¡åã®åå
radishã¯ãradish-buildããã³radish-installã®åœ¢åŒã§å®è£
ãããŸããbashã·ã§ã«ã¹ã¯ãªããã¯ãæå°éã®Linuxæ§æã«å«ãŸããå°ããªãŠãŒãã£ãªãã£ã»ãããšãããã«åºæã®ããã€ãã®ãŠãŒãã£ãªãã£ã䜿çšããŸãã å€§æ ¹èªäœã«ã¯ããããã®ãŠãŒãã£ãªãã£ã®ãªã¹ãããããŸãã ãã¡ã€ã«ã·ã¹ãã ãæ§ç¯ããããã«äœ¿çšãããŸãïŒ
bzip2
cat
chroot
cut
dd
echo
fgrep
grep
kill
mktemp
mount
mv
pwd
readlink
rm
rmdir
sleep
umount
debootstrap
mkfs.ext4
fsck.ext4
resize2fs
partclone.ext4
å€§æ ¹ã¯èµ·åæã«ãããã®ååšããã§ãã¯ããäžè¶³ããŠãããã®ããããšå€±æããŸãã åæã«ãã·ã§ã«èªäœãçµã¿èŸŒã¿ã³ãã³ããšããŠããããå®è£
ããå Žåã§ãããŠãŒãã£ãªãã£èªäœãååšããªããã°ãªããªããšããä»®å®ãè¡ãããŸã-åæ§ã®ä»®å®ã¯ãã·ã§ã«ã®ããŒãžã§ã³ãšå®è£
ãå€æŽãããšãã®ãšã©ãŒãåé¿ããçŸä»£ã®Linuxãã£ã¹ããªãã¥ãŒã·ã§ã³ã®å
žåçãªæ§æãBusyboxã«åºã¥ãæå°ã®ãã®ã§ã察å¿ããŸãã
ãããã®ãã¡ã€ã«ã®ãã¡5ã€ã¯ãDebianãã£ã¹ããªãã¥ãŒã·ã§ã³ã䜿çšãããã¡ã€ã«ã·ã¹ãã ã®äœæã«åºæã®æ©èœãå®è¡ããŸãã
debootstrap
ããã¯ããªããžããªãžã®ã¢ã¯ã»ã¹ãèšå®ããåºæ¬çãªã·ã¹ãã ããã±ãŒãžãã€ã³ã¹ããŒã«ããã¡ã€ã³ã¹ã¯ãªããã§ãã ããŸããŸãªDebianäºæã·ã¹ãã ã®æ°ããããŒãžã§ã³ã§é©åã«ç¶æããã³æŽæ°ãããŠããŸãã ãŸããDebianãšäºææ§ã®ãªãå€ãã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ã®æšæºãªããžããªã§é
åžãããŠãããDebianãšäºææ§ã®ããäœæ¥ã·ã¹ãã ãå«ããã£ã¬ã¯ããªããªãŒãäœæããŠããããã®äžã§å®è¡ã§ããŸãã ãã®æäœã®å¯äžã®èŠä»¶ã¯ãããŒããŠã§ã¢ãã«ãŒãã«ãããã³å¯Ÿå¿ããã¢ãŒããã¯ãã£çšã®æå°éã®Linuxæ§æã®å¯çšæ§ãããã³ãªããžããªãžã®ã¢ã¯ã»ã¹ã§ããmkfs.ext4
ããã³fsck.ext4
ãããã®ãŠãŒãã£ãªãã£ã¯ãLinuxã®ããŒã/ã«ãŒãããã€ã¹ã«äžè¬çã«äœ¿çšãããEXT4ãã¡ã€ã«ã·ã¹ãã ãäœæããã³ãã¹ãããŸãã å€§æ ¹ã¯Linuxã§å®å
šã«æ©èœãããããåŸæ¥ã¯ãã¹ãŠã®Linuxãã£ã¹ããªãã¥ãŒã·ã§ã³ãšæ§æã§ãµããŒããããŠããEXT4ãã圢åŒã®å€æãã³ããŒãªãã§ãã¹ãŠã®æäœã«äœ¿çšã§ããŸããresize2fs
ã ãã®ãŠãŒãã£ãªãã£ã¯ãã¢ã»ã³ãã«ãããEXT2ãEXT3ããŸãã¯EXT4ãã¡ã€ã«ã·ã¹ãã ã®ãµã€ãºãå€æŽããŸãã ãã¡ã€ã«ã·ã¹ãã ã®ã¢ã»ã³ããªäžã«ãæåã«ãã¡ã€ã«ã·ã¹ãã ã€ã¡ãŒãžã®ãµã€ãºãããŒãžã³ä»ãã§éžæãããŸãã ã¢ã»ã³ããªã®æåŸã«ããã¡ã€ã«ã·ã¹ãã ã¯æå°ãµã€ãºã«å§çž®ããããã®åœ¢åŒã§ã¯ããŒãã¯ããŒã³åœ¢åŒã«å€æãããŸãã ããã€ã¹ã«ã€ã³ã¹ããŒã«ããå Žåãæåã«partcloneã䜿çšããŠãæå°ãµã€ãºã®ãã®ãã¡ã€ã«ã·ã¹ãã ã€ã¡ãŒãžãã€ã³ã¹ããŒã«ããã次ã«ãã®ãã¡ã€ã«ã·ã¹ãã ãããã€ã¹äžã®ããŒãã£ã·ã§ã³ã®ãµã€ãºã«æ¡åŒµãããŸãã ããã«ãããããŸããŸãªãµã€ãºã®ããã€ã¹ã«ã€ã³ã¹ããŒã«ããéã®åé¡ãåé¿ãããŸã-ã€ã¡ãŒãžã¯åžžã«ãã€ã³ã¹ããŒã«ããããã¡ã€ã«ã®åèšãµã€ãºïŒäžå®å
šãªãããã¯ããã£ã¬ã¯ããªãã¡ã¿ããŒã¿ïŒã§æ±ºãŸããµããŒããããæå°ãµã€ãºã«å¯Ÿå¿ããŸãããã€ã³ã¹ããŒã«åŸã¯ããã€ã¹å
šäœã䜿çšãããŸããpartclone.ext4
ãã¡ã€ã«ã·ã¹ãã ã®ã€ã¡ãŒãžããããŒã¿ãå æããŠãããããã¯ã®ã¿ãä¿åã§ãã圢åŒã§ã³ããŒããããã®ãŠãŒãã£ãªãã£ã ã³ããŒã¯ãã¡ã€ã«ã·ã¹ãã ã®å§çž®åŸã«è¡ãããããããã®ãŠãŒãã£ãªãã£ã®ä»£ããã«ddã䜿çšã§ããŸãããddã¯ã³ããŒããããã£ã¹ã¯ã€ã¡ãŒãžãå®å
šãã©ãããå€æã§ãããäœããã®çç±ã§ãã¡ã€ã«ãåãæšãŠãããå Žåãpartcloneã¯ãšã©ãŒãè¿ããŸãã
ã€ã³ã¹ããŒã«ã«ã¯ä»¥äžã䜿çšãããŸãã
bzip2
clear
cut
dd
echo
head
id
mount
sed
sleep
sort
stat
sync
tail
tempfile
umount
uniq
wc
xargs
blockdev
dialog
fsck.ext4
partclone.ext2
parted
resize2fs
tune2fs
blkid
ãã®ãªã¹ãã«ã¯ããã®ã¹ã¯ãªããã«ãã£ãŠå®è¡ãããæäœã«åºæã®ãŠãŒãã£ãªãã£ãããã€ããããŸãã
blockdev
ã ãã®ãŠãŒãã£ãªãã£ã䜿çšãããšããããã¯ããã€ã¹ã§ã«ãŒãã«æäœãã¯ãšãªã§ããŸãããã®å ŽåãããŒãã£ã·ã§ã³ããŒãã«ãåèªã¿èŸŒã¿ããŸããdialog
ããã¹ãç»é¢ã«ã·ã³ãã«ãªãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ãå®è£
ãããŠãŒãã£ãªãã£ã ããã€ã¹ãéžæããŠããã¹ããå
¥åããããã«äœ¿çš-ãã·ã³åããã¹ã¯ãŒããparted
ã ãã£ã¹ã¯ããŒãã£ã·ã§ã³ããŒãã«ãäœæããã³ç·šéãããŠãŒãã£ãªãã£ã ãã®å ŽåãGPRããµããŒãããŠããŸãããMBRã䜿çšãã圢åŒã®ã¢ãŒãã§ã®ã¿äœ¿çšãããŸããtune2fs
ã ãã¡ã€ã«ã·ã¹ãã ãã©ã¡ãŒã¿ãç·šéãããŠãŒãã£ãªãã£ã äœæããããã¡ã€ã«ã·ã¹ãã ã®äžæã®èå¥åïŒUUIDïŒãäœæããããã«äœ¿çšãããŸãã è€è£œåŸãå
ã®èå¥åã¯ä¿åãããŸãããåãã³ã³ãã¥ãŒã¿ãŒã§åæã«å©çšå¯èœãªè€æ°ã®ãã¡ã€ã«ã·ã¹ãã ã®èå¥åãäžèŽããå¯èœæ§ãæé€ããããã«ãæ°ããèå¥åã«çœ®ãæããå¿
èŠããããŸããblkid
ã ã·ã¹ãã å
ã®ãããã¯ããã€ã¹ã®ãªã¹ããå®çŸ©ãããããã®èå¥åïŒã©ãã«ãšUUIDïŒãèŠã€ãããŠãŒãã£ãªãã£ã
2.1ã ãã¡ã€ã«ã·ã¹ãã ã€ã¡ãŒãžã®äœæ
å€§æ ¹ã®äžå¿ã«ããã®ã¯ãã·ã¹ãã ã€ã¡ãŒãžãã¡ã€ã«ã«ãããã¡ã€ã«ã·ã¹ãã äžã«ãã£ã¬ã¯ããªããªãŒãšãã¡ã€ã«ãäœæããããšã§ãããã®ãã¡ã€ã«ã¯ããã®ãã¡ã€ã«ã衚瀺ããããããã¯ããã€ã¹ïŒ /dev/loop n
ïŒãä»ããŠããŒã«ã«ãã£ã¬ã¯ããªã«ããŠã³ããããŸãã ã€ãŸããå€§æ ¹ãã«ãã¹ã¯ãªããã¯ãã¡ã€ã«ãäœæãããã¡ã€ã«ã·ã¹ãã ãšããŠãã©ãŒãããããäžæãã£ã¬ã¯ããªãäœæãããã®ãã¡ã€ã«ã·ã¹ãã ããã®äžã«ããŠã³ãããŸãã ãã®ãã£ã¬ã¯ããªã§ã¯ãæåã«æå°ã·ã¹ãã ãdebootstrapãä»ããŠã€ã³ã¹ããŒã«ããã次ã«ãµãŒããŒãŸãã¯çµã¿èŸŒã¿ã·ã¹ãã ã®æå°éã®æäœå¯èœãªæ§æã§è£å®ãããŸãïŒããã±ãŒãžã®ã»ããã¯ãŠãŒã¶ãŒãå€æŽã§ããŸãããããã«ã¯ã¹ã¯ãªããã®ç·šéãå¿
èŠã§ãïŒã ãã®äœæ¥ãã©ãŒã ã§ã¯ããã¡ã€ã«ã·ã¹ãã ã¯ããŒãã¯ããŒã³åœ¢åŒã«å€æãããbzip2ã䜿çšããŠå§çž®ãããŸãã ãã®åŸããã¡ã€ã«ã·ã¹ãã ãã¢ã³ããŠã³ãããããœãŒã¹ã€ã¡ãŒãžãã¡ã€ã«ãšãã£ã¬ã¯ããªãåé€ãããpartclone圢åŒã®å§çž®ãã¡ã€ã«ãæ®ããå€§æ ¹âã€ã³ã¹ããŒã«ã¹ã¯ãªããã«ããã€ã³ã¹ããŒã«ã®æºåãæŽããŸãã
å€§æ ¹ãéçºãããšãã®ç®æšã¯ãä»»æã«éžæãããDebianããã±ãŒãžãããœãããŠã§ã¢ãã€ã³ã¹ããŒã«ããæ©èœãæäŸããããšã§ããã Debianããã±ãŒãžã¯ãå®å
šã«æ©èœããã·ã¹ãã ãæ¢ã«ã€ã³ã¹ããŒã«ãããŠããã³ã³ãã¥ãŒã¿ãŒã«ã€ã³ã¹ããŒã«ãããããã«èšèšãããŠããŸãã åããã±ãŒãžãã€ã³ã¹ããŒã«ããæçµæ®µéã§ããæ§æ段éã¯ããã®ããã±ãŒãžãäŸåãããã¹ãŠã®ããã±ãŒãžãã€ã³ã¹ããŒã«ããåŸã«éå§ããããããã®ååšã«äŸåã§ããŸãã ããŒãããã皌åäžã®ã·ã¹ãã ã«ã€ã³ã¹ããŒã«ããå Žåããã®æ¡ä»¶ã¯åžžã«æºããããŸãããå€§æ ¹ã䜿çšããå Žåããã®ãããªåäœãä¿èšŒããããšã¯ã§ããŸããããã¡ã€ã«ã·ã¹ãã ã€ã¡ãŒãžãããŠã³ãããããã£ã¬ã¯ããªã¯çšŒåäžã®Debianã·ã¹ãã ãšå®å
šã«åçã§ã¯ãªãããã§ã ãã®ãããããã±ãŒãžã®ã€ã³ã¹ããŒã«æã«Debianã®å®è¡ã«ããªãè¿ãç°å¢ãäžæçã«äœæããããã«è¿œå ã®å¯Ÿçãå¿
èŠã§ããããããŠã³ãããããã£ã¬ã¯ããªã«ãé©åãããã€ã³ã¹ããŒã«åŸã«å®è¡äžã®ããã»ã¹ãæ®ããŸããããã®ãã£ã¬ã¯ããªã¯ã¢ã³ããŠã³ãã§ããªãããã§ãã å€æããããã«ãã»ãšãã©ã®å Žåãããã±ãŒãžãæ£ããã€ã³ã¹ããŒã«ããã«ã¯ãããã§ååã§ãã
- chrootã®äžã®ãã¡ã€ã«ã·ã¹ãã ã®ããŠã³ããããã€ã¡ãŒãžã§ãã¹ãŠã®æäœãå®è¡ããŸãã
- ç¹å¥ãªãã¡ã€ã«ã·ã¹ãã
/proc
ããã³/sys
ããŠã³ãããŸãïŒ /dev
ãdebootstrapã®å®è¡æã«äœæããã圢åŒã§æ©èœããŸãïŒã - ã€ã³ã¹ããŒã«ãéå§ããåã«ãããã®ã¹ã¯ãªãããã·ã¹ãã ã«ã€ã³ã¹ããŒã«ãããŠããå Žåã
/sbin/initctl
ïŒSysV initããïŒããã³/sbin/initctl
ïŒupstartããïŒã®ååãå€æŽããã€ã³ã¹ããŒã«ã®å®äºåŸã«ãããã®ãã¡ã€ã«ã®ååãå€æŽããŸãã systemdã䜿çšããã·ã¹ãã ã§ã¯ããã®ã€ã³ã¹ããŒã«æé ã«ã€ããŠãchrootã®äžã§ç¬èªã®ããã»ã¹ãšã€ã³ã¿ãŒãã§ãŒã¹ãèŠã€ãããªããããå€æŽã¯å¿
èŠãããŸãããã·ã¹ãã ããããŒããããããšãã«ã®ã¿èµ·åããŸãã
ããã±ãŒãžãã€ã³ã¹ããŒã«ããåŸã«å®è¡äžã®ããã»ã¹ããªãããšãå®å
šã«ä¿èšŒããããã«ãã¹ã¯ãªããã«ã¯chrootïŒ termprocesses()
é¢æ°ïŒã®äžã§å®è¡äžã®ããã»ã¹ãèŠã€ããæé ãå«ãŸããŠããŸãã èŠã€ãã£ãããã»ã¹ã®ãã¡ã€ã«ã®ååãå€æŽããïŒèªååèµ·åãé²ãããïŒãããã»ã¹ã¯æåã«TERMã·ã°ãã«ã§çµäºããååãå€æŽãããŸãã 5ç§åŸã«å®äºããªãã£ãå ŽåïŒããã»ã¹ãç¶æ
ã®åŸ©å
ããã¡ã€ã«ã®åé€ãªã©ã«æéãããããšæ³å®ãããïŒãKILLã·ã°ãã«ã§æé ãç¹°ãè¿ãããããã«çµäºããŸãã
ãã®ãããªã€ã³ã¹ããŒã«æé ãå®äºãããšããã¡ã€ã«ã·ã¹ãã ãã¢ã³ããŠã³ããããresize2fsãŠãŒãã£ãªãã£ã«ãã£ãŠå§çž®ãããbzip2ã«ãã£ãŠå§çž®ãããpartclone圢åŒã«å€æãããŸãã ãã®åœ¢åŒã§ãã¡ã€ã«ãäœæããåŸããã¡ã€ã«ã·ã¹ãã ã€ã¡ãŒãžãšäžæãã£ã¬ã¯ããªãå«ãå
ã®ãã¡ã€ã«ã¯åé€ãããŸãã
ã³ãã³ãã©ã€ã³åŒæ°ãšããŠãradish-buildã¯ãã£ã¹ããªãã¥ãŒã·ã§ã³ããŒãžã§ã³ã®ååãåããŸããããšãã°ãUbuntu 17.10ã®å Žåã¯ãartfulããDebian 9ã®å Žåã¯ãstretchãã§ããã¹ã¯ãªããã¯root-image.binãã¡ã€ã«ãäœæããŸãã
2.2ã ã·ã¹ãã ãã€ã¡ãŒãžããããã€ã¹ã«ã€ã³ã¹ããŒã«ãã
radish-installã¹ã¯ãªããã¯ãã·ã¹ãã ãããã€ã¹ã«ã€ã³ã¹ããŒã«ãããã®ããã€ã¹ãèµ·åããããã«æ§æããŸãã ãã®ã¹ã¯ãªããïŒ
- ã€ã³ã¹ããŒã«ã«é©ãããªã¹ãããããã€ã¹ã察話çã«èŠæ±ããŸãã ã€ã³ã¹ããŒã«ã«é©ããããã€ã¹ã®ãªã¹ãã¯ã
/sys/class/block/sd*
ããäœæãããŸãããã ããäºæ³ããããµã€ãºç¯å²å€ã«ããããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã«ãã£ãŠä¿®æ£ãããŠãããšèŠãªãããããŠã³ããããããŒãã£ã·ã§ã³ãå«ãããã€ã¹/sys/class/block/sd*
äŸå€ã§ãã ãããã®åºæºïŒå€§æ ¹-äžèšã®ãã¹ã¯ã®ããã€ã¹ãã¹ãã£ã³ããåŸã®ã€ã³ã¹ããŒã«ã«ãããŸãïŒã¯ãæããã«ãå€ãã®å Žåãå€æŽããå¿
èŠããããŸãã - ããŒãããŒããŒãšã«ãŒããã¡ã€ã«ã·ã¹ãã ã®2ã€ã®ã»ã¯ã·ã§ã³ãäœæããŸãã
- ããŒãããŒããŒãã¡ã€ã«ã·ã¹ãã ããã©ãŒãããããŸãã
- æºåãããã€ã¡ãŒãžãã«ãŒããã¡ã€ã«ã·ã¹ãã ã«ã³ããŒãããã¡ã€ã«ã·ã¹ãã ã®æ°ããUUIDãäœæããŸãã
- ãã¡ã€ã«ã·ã¹ãã ãããŠã³ãããã€ã³ã¹ããŒã«ãããã«ãŒããã/ bootãã£ã¬ã¯ããªãããŒãããŒããŒãã¡ã€ã«ã·ã¹ãã ã«è»¢éããŸãã
- æ§æãã¡ã€ã«
/etc/fstab
ã /etc/inittab
ãŸãã¯/etc/init/ttyS0.conf
äœæããŸãã - chrootã®äžãããã®ããŒãããŒããŒã®ã€ã³ã¹ããŒã«æžã¿ãã¡ã€ã«ã䜿çšããŠãããã€ã¹ã«GRUBããŒãããŒããŒãã€ã³ã¹ããŒã«ããŸãã ã€ã³ã¹ããŒã«ã®ãã®æ®µéã§ã®ã¿ãã·ã¹ãã ããŒãããŒããŒãMBRãšããŒãã£ã·ã§ã³ã®éå§åã®ã¹ããŒã¹ãã€ãŸãããã¡ã€ã«ã·ã¹ãã ã§ã«ããŒãããŠããªãããã€ã¹ã®éšåã«èšé²ãããŸãã ããã«ãããããŒãããŒããŒã»ã¯ã·ã§ã³ã«ãããã¡ã€ã«ã·ã¹ãã ã«ããŒãããŒããŒãã¡ã€ã«ãã€ã³ã¹ããŒã«ãããŸãã ãããã®æé ã¯ãGRUBããã±ãŒãžã«ä»å±ããŠããåãããã°ã©ã ã«ãã£ãŠäœæãããããã以éã®æŽæ°ã§GRUBãã€ã³ã¹ããŒã«ããããšãšå®å
šã«åçã§ãã å¯äžã®éãã¯ããã®å Žåãchrootã®äžããèµ·åãããããšã§ãã
- ãã¡ã€ã«ã·ã¹ãã ãã¢ã³ããŠã³ãããŸãã
- ã«ãŒããã¡ã€ã«ã·ã¹ãã ãããã€ã¹ããŒãã£ã·ã§ã³ã®ãµã€ãºãŸã§æ¡åŒµããå床ããŠã³ãããŸãã
- äºåå®çŸ©ãããã«ãŒãããã³ãŠãŒã¶ãŒãŠãŒã¶ãŒã®ãã·ã³åãšãã¹ã¯ãŒããèŠæ±ãã
/etc/hostname
ãã¡ã€ã«ãäœæããchpasswdãŠãŒãã£ãªãã£ã䜿çšããŠãŠãŒã¶ãŒãã¹ã¯ãŒããç·šéããŸãã - çµæã®ã«ãŒããã¡ã€ã«ã·ã¹ãã ã®ããŠã³ãã解é€ãããã¹ãŠã®ãããã¡ãããã€ã¹ã«æžã蟌ã¿ãŸãã
ãããã®ãã¹ãŠã®æé ã®åŸãããã€ã¹ã䜿çšããŠã皌åäžã®Linuxã·ã¹ãã ãèµ·åã§ããŸãã ãã¡ã€ã«ã·ã¹ãã èå¥åã¯GRUBããã³/etc/fstab
ã®æ§æã«å¯Ÿå¿ããŸããã€ãŸããLinuxãŸãã¯BIOSã®çªå·ãšããã€ã¹åã«é¢ä¿ãªããããŒãããã·ãŒãžã£ã¯ç¬èªã®ãã¡ã€ã«ã·ã¹ãã ãæ£ããèªèããŸãã èµ·ååŸãDebianããã±ãŒãžãããŒãžã£ãŒã«ããå€æŽãªãã«ã·ã¹ãã ãæŽæ°ãããªã¢ãŒããªããžããªããã®åæãšæŽæ°ããµããŒããããã¹ãŠã®ãŠãŒãã£ãªãã£ã䜿çšã§ããŸãã
å¿
èŠã«å¿ããŠïŒååãªç©ºãé åãããå ŽåïŒãå€§æ ¹èªäœãšããã®ããã€ã¹ã®ã€ã³ã¹ããŒã«å
ã®å§çž®ãã£ã¹ã¯ã€ã¡ãŒãžããã®ããã€ã¹ã®ãã£ã¬ã¯ããªã«ã³ããŒã§ããŸãã ãã®å Žåãå€§æ ¹ã¹ã¯ãªããã§äœ¿çšãããè¿œå ã®ãŠãŒãã£ãªãã£ãã€ã³ã¹ããŒã«ããå¿
èŠããããŸãã ãããã£ãŠãçµæã®ã·ã¹ãã ã¯åæç¶æ
ã®ã³ããŒãããã«äœæã§ããããã«ãªããŸããããã¯ããœãããŠã§ã¢ãã€ã³ã¹ããŒã«ããããã¡ã€ã«ã·ã¹ãã ã®ããµã³ãã«ãããŠãŒã¶ãŒã«é
åžãããŠãŒã¶ãŒãç¬èªã®ã³ããŒãäœæã§ããå Žåã«äŸ¿å©ã§ãã
2.3ã äœæãããã¡ã€ã«ã·ã¹ãã ã€ã¡ãŒãžã®å€æŽ
radish-buildã¹ã¯ãªããã䜿çšããŠãã¡ã€ã«ã·ã¹ãã ã€ã¡ãŒãžãã¡ã€ã«ãäœæããåŸããœãããŠã§ã¢ãŸãã¯äžéšã®ããŒã¿ãæåã§ã€ã³ã¹ããŒã«ããã³æ§æããå¿
èŠãããå ŽåããããŸãã ç»åãã¡ã€ã«èªäœã¯ç·šéã«ã¯é©ããŠããŸãããããã®ãããªç·šéç»åãäœæããã«ã¯å°ãªããšã2ã€ã®æ¹æ³ããããŸãã
2.3.1ã ç©çããã€ã¹ãžã®ãœãããŠã§ã¢ã®ã€ã³ã¹ããŒã«ããã®åŸã®ã¯ããŒã³äœæã®æºå
ãã¡ã€ã«ã·ã¹ãã ã€ã¡ãŒãžãã¡ã€ã«ã¯ãå®å
šãªããŒãå¯èœã·ã¹ãã ãããã€ã¹ã«ã€ã³ã¹ããŒã«ããããã«äœ¿çšããããã®ã€ã³ã¹ããŒã«åŸã«ããŒãã«äœ¿çšãããŸãã ããŠã³ããŒãåŸããŠãŒã¶ãŒã¯éåžžã®ã³ã³ãã¥ãŒã¿ãŒã«ã€ã³ã¹ããŒã«ããã®ãšåãæ¹æ³ã§ãœãããŠã§ã¢ãã€ã³ã¹ããŒã«ããã³æ§æããŸãïŒå¿
èŠã«å¿ããŠãã¹ãããŸãïŒã ããã±ãŒãžã®æŽæ°ãããã«æ°ããããŒãžã§ã³ã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ãžã®åãæ¿ãã¯ãããã±ãŒãžãããŒãžã£ãŒã®éåžžã®ã¡ã«ããºã ã«ãã£ãŠå®è¡ã§ããŸãã ããã«ãããå¿
èŠãªæ§æãå«ããã¡ã€ã«ã·ã¹ãã ãäœæãããŸãã
ç®çã®æ§æãéæãããããŠãŒã¶ãŒã¯ã³ã³ãã¥ãŒã¿ãŒãåèµ·åããå€æŽããããã¡ã€ã«ã·ã¹ãã ãæã€ããã€ã¹ãåãã³ã³ãã¥ãŒã¿ãŒãŸãã¯å¥ã®ã³ã³ãã¥ãŒã¿ãŒã«æ¥ç¶ããŸãã ããã€ã¹ã¯ã $TDEV
ãšåŒã°ãããã®ãšããŠäœ¿çšå¯èœã«ãªããŸãã , /dev/sdb
, :
TDEV= /dev/sdb
${TDEV}2 , . boot :
mount ${TDEV}2 /mnt mount ${TDEV}1 /mnt/tmp cp -a /mnt/tmp/* /mnt/boot/ umount /mnt/tmp umount /mnt
:
fsck.ext4 -f ${TDEV}2 resize2fs -M ${TDEV}2
( â ).
partclone, bzip2:
partclone.ext4 -c -s ${TDEV}2 -o - | bzip2 -9 -c > root-image.bin
:
fsck.ext4 -f ${TDEV}2 resize2fs ${TDEV}2 mount ${TDEV}2 /mnt rm -rf /mnt/boot/* umount /mnt
, rootâimage.bin , .
2.3.2.
, , /dev/loop n
, partclone, bzip2. radish-unpack-image radish-pack-image. .
/proc
, /sys
/dev
. radish-unpack-image (, radishâimageâ bbbbbbbbbb
radishâmountâ aaaaaaaaaa
):
./radish-unpack-image root-image.bin
( , )
mount --bind /proc radish-mount-aaaaaaaaaa/proc mount --bind /sys radish-mount-aaaaaaaaaa/sys mount --bind /dev radish-mount-aaaaaaaaaa/dev mount --bind /dev/pts radish-mount-aaaaaaaaaa/dev/pts mount --bind /dev/shm radish-mount-aaaaaaaaaa/dev/shm chroot radish-mount-aaaaaaaaaa /bin/bash
( chroot)
exit
( - chroot)
umount radish-mount-aaaaaaaaaa/dev/shm umount radish-mount-aaaaaaaaaa/dev/pts umount radish-mount-aaaaaaaaaa/dev umount radish-mount-aaaaaaaaaa/sys umount radish-mount-aaaaaaaaaa/proc
, :
./radish-pack-image radish-mount-aaaaaaaaaa
rootâimage.bin, . , :
umount radishâmountâaaaaaaaaaa rmdir radishâmountâaaaaaaaaaa rm radishâimageâbbbbbbbbbb
, , chroot , . , radishâpackâimage , .
, schroot . , , ,
cp -a radishâmountâaaaaaaaaaa \ /var/lib/chrootâenvironments/debianâsystemâ1
/etc/schroot.conf, :
[debian-system-1] type=directory directory=/var/lib/chrootâenvironments/debianâsystemâ1 users=user root-users=root
schroot -c debianâsystemâ1
, , - , /var/lib/chrootâenvironments/debianâsystemâ1
- ( /home/user/chrootâenvironments/debianâsystemâ1/home/user/
/home/user/
), , $HOME/.config
, $HOME/.local
, . ., , . , , , , , . .
3. ,
radish , . . , radish-install /etc/default/grub
Linux, ( "nomodeset"
) ( "console=ttyS0,115200n8"
). , . ( /etc/inittab
/etc/init/ttyS0.conf
) , /etc/default/grub
:
# Uncomment to disable graphical terminal (grub-pc only) #GRUB_TERMINAL=console GRUB_TERMINAL=serial GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
, , GRUB_TERMINAL
"console"
. , .
«» , /lib/udev/rules.d/75âpersistentânetâgenerator.rules
, , radishâbuild , . , , , , , , , , .
SSH , SSH , . , . - , , SSH, .
. , radish-install - . ( "x"
/etc/passwd
, - /etc/shadow
), /home/user/.ssh/authorized_keys
, ).
- . .