mkinitcpio
é¢é£èšäº
mkinitcpio ã¯ãinitramfs ã€ã¡ãŒãžãäœæããããã«äœ¿çšããã Bash ã¹ã¯ãªããã§ããåæ RAM ãã£ã¹ã¯ãã§ãŒãºã§è¡ãããåŠçã®å®è¡æ¹æ³ã«ã€ããŠã¯ã2ã€ãããŸã:
- systemd ããŒã¹ã®åæ RAM ãã¡ã€ã«ã·ã¹ãã
- systemd ã¯ãåæ RAM ãã£ã¹ã¯ãã§ãŒãºã®æåã«èµ·åãããŸããéåžžã® systemd ãŠããããã¡ã€ã«ã«ãã£ãŠãå®è¡ãããã¹ãåŠçãæ±ºå®ãããŸããsystemd bootup process ãåç §ã
- é·æ:
- systemd ãšã³ã·ã¹ãã ã®ä»ã®éšåãšå¯æ¥ã«çµ±åãããŠãããããäžè²«ããŠããŠåççãªããŒãããã»ã¹ãšãªã£ãŠããŸãã
- ç¹å®ã®ããŒãåŠçãããå¹ççã«äžŠååãããŠãããå Žåã«ãã£ãŠã¯å šäœçãªããŒãæéãããæ©ããªãããšããããŸãã
/etc/crypttab.initramfsã䜿çšãã systemd-cryptsetup-generator ã GPT ããŒãã£ã·ã§ã³ã®èªåããŠã³ããªã©ã䜿çšã§ããæ©èœã¯ããå æ¬çã§ãã
- çæ:
- äŸåé¢ä¿ãå¢ãããµã€ãºãå¢å ããŸã: äžè¬ã«ãsystemd é¢é£ã®ãã€ããªãäŸåé¢ä¿ãå«ãŸãããããinitramfs ã®ãµã€ãºã¯å¢å ããŸããããã«ãããããŒãæéããããã«å¢å ããå¯èœæ§ããããŸãã
- Busybox ããŒã¹ã®åæ RAM ãã¡ã€ã«ã·ã¹ãã
- å®è¡ãã¹ãã¹ã¯ãªãã (ã©ã³ã¿ã€ã ããã¯ãšåŒã°ããŸã) ãæ¢ãããã«åæ RAM ãã£ã¹ã¯ã®ãã¡ã€ã«ã·ã¹ãã ãã¹ãã£ã³ãã init ã¹ã¯ãªãããéå§ãããŸãã
- é·æ:
- 軜éã§ããµã€ãºãå°ãããäŸåé¢ä¿ãå°ãªãã§ãã
- Init ã¹ã¯ãªãããšã©ã³ã¿ã€ã ããã¯ã¯ãé çªã«å®è¡ãããŸããããã«ãããããŒãäžã«åé¡ãçºçããéã¯ãã©ã®ã¹ããããåå ãªã®ããããç°¡åã«ç¹å®ã§ããŸãã
ãããã¯ã/etc/mkinitcpio.conf å
ã® HOOKS é
åã« systemd ããã¯ãããããªããã§æ±ºãŸããŸãã詳现㯠#ããã¯ã®ãªã¹ã ãåç
§ããŠãã ããã
mkinitcpio ã¯ãArch Linux ã®éçºè ãã¡ãšã³ãã¥ããã£ã«ããè²¢ç®ã«ãã£ãŠéçºãããŠããŸãã
ã€ã³ã¹ããŒã«
mkinitcpio ããã±ãŒãžã¯ãã«ãŒãã«ã®ããã±ãŒãžã®äŸåé¢ä¿ãªã®ã§ãã»ãšãã©ã®ç°å¢ã§ã¯æ¢ã«ã€ã³ã¹ããŒã«ãããŠããŸãã
ã€ã¡ãŒãžäœæãšã¢ã¯ãã£ããŒã·ã§ã³
èªåçæ
ã«ãŒãã«ãã€ã³ã¹ããŒã«ãŸãã¯ã¢ããã°ã¬ãŒãããããã³ã«ãpacman ããã¯ã¯ /etc/mkinitcpio.d/ å
ã«ä¿åããã .preset ãã¡ã€ã«ãèªåçã«çæããŸããäŸãã°ãå
¬åŒã®å®å®ç linux ã«ãŒãã«ããã±ãŒãžã®å Žå㯠linux.preset ã§ããããªã»ããã¯ãæ§ã
ãªãã©ã¡ãŒã¿ãŒãåºåãã¡ã€ã«ã®å Žæãæåã§æå®ããæéãçããåæ RAM ãã£ã¹ã¯ã€ã¡ãŒãžãäœæããããã«å¿
èŠãªæ
å ±ã®ãªã¹ãã§ããããã©ã«ãã§ã¯ã以äžã®æåã®ã€ã¡ãŒãžãäœæããåœä»€ã®ã¿ãå«ãŸããŠããã2ã€ç®ã®ã€ã¡ãŒãžãäœæããã«ã¯æç€ºçã«æå¹åããå¿
èŠããããŸã:
- default RAM ãã£ã¹ã¯ã€ã¡ãŒãžããã®ã€ã¡ãŒãžã®å 容ã¯ãèšå®ã§æå®ããããã£ã¬ã¯ãã£ãã«åŸã£ãŠçæãããŸãã
- fallback RAM ãã£ã¹ã¯ã€ã¡ãŒãžãäœææã« autodetect ããã¯ãã¹ããããããããšãé€ããŠäžèšãšåãã§ãããããã»ãšãã©ã®ã·ã¹ãã ããµããŒããããã¹ãŠã®ã¢ãžã¥ãŒã«ãå«ãŸããŸãã
ããªã»ãããäœæããåŸãpacman ããã¯ã¯ãããªã»ããã§æäŸãããæ å ±ã䜿çšããŠã€ã¡ãŒãžãçæãã mkinitcpio ã¹ã¯ãªãããåŒã³åºããŸãã
æåçæ
ã¹ã¯ãªãããæåã§å®è¡ããã«ã¯ãããã¥ã¢ã«ããŒãž mkinitcpio(8) ã§æé ã確èªããŠãã ãããç¹ã«ãã«ãŒãã«ããã±ãŒãžã«ãã£ãŠæäŸãããããªã»ããã«åºã¥ã initramfs ã€ã¡ãŒãžã(å)çæããã«ã¯ã䜿çšããããªã»ããã -p/--preset ãªãã·ã§ã³ã§æå®ããŠãã ãããäŸãã°ãlinux ããã±ãŒãžã®å Žåãæ¬¡ã®ã³ãã³ãã䜿çšããŠãã ãã:
# mkinitcpio -p linux
æ¢åã®ãã¹ãŠã®ããªã»ããã«åºã¥ã initramfs ã€ã¡ãŒãžã(å)çæããã«ã¯ã-P/--allpresets ã¹ã€ããã䜿çšããŠãã ãããããã¯éåžžãã°ããŒãã«ãªèšå®ã®å€æŽåŸã«ãã¹ãŠã® initramfs ã€ã¡ãŒãžãåçæããããã«äœ¿çšãããŸã:
# mkinitcpio -P
ãŠãŒã¶ãŒã¯ãããŸããŸãªæ§æã§ initramfs ã€ã¡ãŒãžãããã€ã§ãäœæã§ããŸããçæãããã€ã¡ãŒãžã¯ãããããã®ããŒãããŒããŒã®èšå®ãã¡ã€ã«ã§æå®ããå¿ èŠããããŸãã
çæã®ã«ã¹ã¿ãã€ãº
ãŠãŒã¶ãŒã¯ã代æ¿ã®èšå®ãã¡ã€ã«ã䜿çšããŠã€ã¡ãŒãžãçæã§ããŸããæ¬¡ã®äŸã§ã¯ã/etc/mkinitcpio-custom.conf ã«èšè¿°ãããŠããæç€ºã«åŸã£ãŠåæ RAM ãã£ã¹ã¯ã€ã¡ãŒãžãçæãã/boot/initramfs-custom.img ãšããŠä¿åããŸãã
# mkinitcpio --config /etc/mkinitcpio-custom.conf --generate /boot/initramfs-custom.img
çŸåšå®è¡äžã®ã«ãŒãã«ä»¥å€ã®ã«ãŒãã«ã®ã€ã¡ãŒãžãçæããå Žåã¯ãã«ãŒãã«ãªãªãŒã¹ããŒãžã§ã³ãã³ãã³ãã©ã€ã³ã«è¿œå ããŠãã ãããã€ã³ã¹ããŒã«ãããŠããã«ãŒãã«ãªãªãŒã¹ã¯ /usr/lib/modules/ ã«ãããæ§æã¯åã«ãŒãã«ã®ã³ãã³ã uname -r ã®åºåãšäžèŽããŠããŸãã
# mkinitcpio --generate /boot/initramfs-custom2.img --kernel 5.7.12-arch1-1
ãŠããã¡ã€ãã«ãŒãã«ã€ã¡ãŒãž
mkinitcpio ã¯ãããèªäœãŸã㯠systemd-ukify çµç±ã§ãŠããã¡ã€ãã«ãŒãã«ã€ã¡ãŒãž (UKI) ãäœæããããšãã§ããŸããsystemd-ukify ãååšããªããã--no-ukify ã«ãã£ãŠæç€ºçã«ç¡å¹åãããŠããå ŽåãUKI 㯠mkinitcpio èªäœã«ãã£ãŠæ§ç¯ãããŸãããã®å Žåãukify ã®é«åºŠãªæ©èœã¯å©çšã§ããŸããã
UKI çæã«ã€ããŠã¯ ãŠããã¡ã€ãã«ãŒãã«ã€ã¡ãŒãž ãåç §ããŠãã ããã
èšå®
mkinitcpio ã®ãã©ã€ããªèšå®ãã¡ã€ã«ã¯ã/etc/mkinitcpio.conf ã§ããããããã€ã³ã®èšå®ãã¡ã€ã« (äŸ: /etc/mkinitcpio.conf.d/myhooks.conf) ããµããŒããããŠããŸã (ããããã€ã³ãã¡ã€ã«ã¯ãmkinitcpio ã -c/--config ãªãã·ã§ã³ãšå
±ã«å®è¡ãããå ŽåããALL_config ãå«ãã§ããããªã»ããã䜿çšããå Žåã«ã¯äœ¿çšãããŸãã)ãããã«ãã«ãŒãã«ããã±ãŒãžã«ãã£ãŠæäŸãããããªã»ããå®çŸ©ã /etc/mkinitcpio.d ãã£ã¬ã¯ããªã«ãããŸã (äŸ: /etc/mkinitcpio.d/linux.preset)ã
ãŠãŒã¶ãŒã¯ãèšå®ãã¡ã€ã«ã®äžã«ãã7ã€ã®å€æ°ã倿Žã§ããŸã (詳现㯠mkinitcpio.conf(5) § VARIABLES ãèŠãŠãã ãã):
MODULES- ããŒãããã¯ãå®è¡ãããåã«ããŒããããã«ãŒãã«ã¢ãžã¥ãŒã«ã
BINARIES- initramfs ã€ã¡ãŒãžã«å«ãã远å ã®ãã€ããªã
FILES- initramfs ã€ã¡ãŒãžã«å«ãã远å ã®ãã¡ã€ã«ã
HOOKS- ããã¯ã¯åæ RAM ãã£ã¹ã¯ã§å®è¡ããã¹ã¯ãªããã§ãã
COMPRESSION- initramfs ã€ã¡ãŒãžãå§çž®ããéã«äœ¿çšãããŸãã
COMPRESSION_OPTIONSCOMPRESSIONã®ããã°ã©ã ã«æž¡ã远å ã®åŒæ°ããã®èšå®ã®äœ¿çšã¯æšå¥šãããŸãããmkinitcpio ã¯å§çž®ããã°ã©ã ã«å¯Ÿããç¹æ®ãªèŠä»¶ãåŠçãããã (äŸ: xz ã«ã¯--check=crc32ãæå®ããŸã)ã誀ã£ãŠå©çšãããšã·ã¹ãã ãèµ·åã§ããªããªãå¯èœæ§ããããŸããMODULES_DECOMPRESS- ããŒãå¯èœãªã«ãŒãã«ã¢ãžã¥ãŒã«ãšãã¡ãŒã ãŠã§ã¢ã®ãã¡ã€ã«ãè§£åããŠããããããšã®å§çž®ããç¶æ ã®ãŸãŸã«ããŠããããèšå®ããŸãã
- ã·ã¹ãã ãå¿ èŠãšããå Žåãããããã¯ã®ããã€ã (lvm2ãmdadm_udevãencrypt ãªã©) ã¯ãããã©ã«ãã§æå¹åãããŠããŸãããããã«é¢ããæç€ºã¯ #HOOKS ã»ã¯ã·ã§ã³ãæ³šææ·±ãèªãã§ãã ããã
- ããŒãžã§ã³ 36 ããåã® mkinitcpio ã«ãã£ãŠäœæãããããªã»ãããã¡ã€ã«ã§ã¯ã
ALL_config倿°ãå®çŸ©ãããŠããããã®å€æ°ãååšããŠãããšããããã€ã³ã®èšå®ãã¡ã€ã«ãèªã¿èŸŒãŸããŸãããããããã€ã³ãã¡ã€ã«ãæå¹åããã«ã¯ãå€ãããªã»ãããã¡ã€ã«ã«ããALL_config="/etc/mkinitcpio.conf"è¡ãã³ã¡ã³ãã¢ãŠãããŠãã ããã
MODULES
MODULES é
åã§ã¯ãäœãä»ã®ããšãè¡ãããåã«ããŒãããã¢ãžã¥ãŒã«ãæå®ããŸãã
ã¢ãžã¥ãŒã«ã®åŸãã« ? ãä»ãããšãã¢ãžã¥ãŒã«ãèŠã€ãããªãã£ããšãã§ããšã©ãŒãæããŸãããããã¯ãããã¯ãèšå®ãã¡ã€ã«ã«ãªã¹ãã¢ãããããã¢ãžã¥ãŒã«ãå«ãã§ã³ã³ãã€ã«ããã«ã¹ã¿ã ã«ãŒãã«ã§æçãããããŸããã
- Out-of-tree ã®ãã¡ã€ã«ã·ã¹ãã ãåæãŠãŒã¶ãŒç©ºéã§ããŠã³ãããã€ããã§ãããªãã° (äŸãã°ããã®ãããªãã¡ã€ã«ã·ã¹ãã ãã«ãŒããã¡ã€ã«ã·ã¹ãã ãšããŠã䜿çšããå Žå)ããã®ãã¡ã€ã«ã·ã¹ãã ã®ã¢ãžã¥ãŒã« (
zfsãªã©) ãMODULESé åã«è¿œå ããŠãããªããã°ãªããŸããã - encrypt ã sd-encrypt ã䜿çšããã〠mkinitcpio ãå®è¡ãããã·ã¹ãã ãšçæãããã€ã¡ãŒãžã䜿çšãããã·ã¹ãã ãç°ãªãå Žåãã·ã¹ãã ã®èµ·åäžã« LUKS ããã€ã¹ãã¢ã³ããã¯ããããã«å¿
èŠãªããŒããŒãã¢ãžã¥ãŒã«ããã¡ã€ã«ã·ã¹ãã ã
MODULESé åã«è¿œå ããå¿ èŠããããŸããäŸãã°ã䜿çšããããŒãã¡ã€ã«ã ext2 ãã¡ã€ã«ã·ã¹ãã äžã«ããããmkinitcpio ãå®è¡ããããšãã«ã¯ ext2 ãã¡ã€ã«ã·ã¹ãã ãããŠã³ããããŠããªãã£ãå Žåãext2ã远å ããŠãã ããã詳现㯠Dm-crypt/ã·ã¹ãã èšå®#cryptkey ãèŠãŠãã ããã - LUKS ããã€ã¹ãã¢ã³ããã¯ããããã« USB 3 ããã®ããŒããŒãã䜿ãããå Žåã
usbhid xhci_hcdã远å ããŠãã ãããäžéšã®ããŒã PC ã§ã¯ãæèŒãããŠããããŒããŒãã䜿çšããããã«i2c_hid_acpiã¢ãžã¥ãŒã«ãå¿ èŠã§ãã - ãããã³ã°ã¹ããŒã·ã§ã³ã«æ¥ç¶ãããŠãããã£ã¹ãã¬ã€ã䜿çšããå Žåãinitrd ã®åºåãèŠããããã«ããããã«ããªãã®ã°ã©ãã£ãã¯ã«ãŒãã®ã¢ãžã¥ãŒã«ã远å ããå¿
èŠããããããããŸãã (äŸ: ã»ãšãã©ã® Intel ã«ãŒãã§ã¯
i915)ã
BINARIES ãš FILES
以äžã®ãªãã·ã§ã³ã䜿ã£ãŠã€ã¡ãŒãžã«ãã¡ã€ã«ã远å ããããšãã§ããŸããBINARIES ãš FILES ã¯ããã¯ãå®è¡ãããåã«è¿œå ãããããã¯ã«ãã£ãŠäœ¿çš/æäŸããããã¡ã€ã«ãäžæžãããããšããããŸããBINARIES ã¯æšæºã® PATH ã«èªåã§é
眮ãããäŸåé¢ä¿ãããŒã¹ãããŸããã€ãŸãå¿
èŠãªã©ã€ãã©ãªãå
šãŠè¿œå ãããŸããFILES ã¯ãã®ãŸãŸã®ç¶æ
ã§è¿œå ãããŸããäŸ:
FILES=(/etc/modprobe.d/modprobe.conf)
BINARIES=(kexec)
BINARIES ãš FILES ã¯äž¡æ¹ãšã Bash é
åã§ãããªã®ã§ãã¹ããŒã¹ã§åºåãããšã§è€æ°ã®ãšã³ããªã远å ããããšãã§ããŸãã
HOOKS
HOOKS é
åã¯ãèšå®ãã¡ã€ã«ã®äžã§æãéèŠãªèšå®ã§ããããã¯ãšã¯ãinitramfs ã€ã¡ãŒãžã«äœã远å ããããèšè¿°ãããŠããå°ããªã¹ã¯ãªããã§ããäžéšã®ããã¯ã«ã¯ãéç§°ã©ã³ã¿ã€ã ããã¯ãšãããã®ãä»ããŠãããããã¯ããŒã¢ã³ãèµ·åããããã¹ã¿ãã¯ããããã¯ããã€ã¹ãã¢ã»ã³ãã«ããããšãã£ãã¹ã¿ãŒãã¢ããæ©èœãæäŸããŠããŸãã
ããã¯ã¯ååã§æå®ããèšå®ãã¡ã€ã«å
ã® HOOKS é
åã«èšè¿°ããéãã®é çªã§å®è¡ãããŸããèªåãäœãããŠããã®ãçè§£ããŠããªãéããããã¯ã®ãªã¹ãã®æšå¥šãããé çªã«åŸãã®ãè¯ãã§ãã
ã»ãšãã©ã®ã·ã³ãã«ãªåäžãã£ã¹ã¯ç°å¢ã§ã¯ãããã©ã«ãã® HOOKS èšå®ã§ååãªã¯ãã§ããã«ãŒããã¡ã€ã«ã·ã¹ãã ããLVMãRAIDãdm-crypt ãªã©ãšãã£ããã¹ã¿ãã¯ãããã€ã¹ããŒã¹ã§ãã£ãããè€æ°ã®ããã€ã¹ã«ãŸãããå Žåã¯ãé¢é£ãã wiki ããŒãžãèŠãŠå¿
èŠãªèšå®ã調ã¹ãŠäžããã
ãã«ãããã¯
ãã«ããã㯠(ã€ã³ã¹ããŒã«ããã¯ãšã) ãšã¯ãmkinitcpio ã®å®è¡äžã« bash ã·ã§ã«ã«ãã£ãŠ source ãããã·ã§ã«ã¹ã¯ãªãããã¡ã€ã«ã§ãããéåžžãbuild ãš help ãšãã2ã€ã®é¢æ°ãå«ãã§ããŸããbuild 颿°ã«ã¯ãinitramfs ã€ã¡ãŒãžã«è¿œå ãã¹ãã¢ãžã¥ãŒã«ããã€ããªããã®ä»ã®ãã¡ã€ã«ãèšè¿°ãããŠããŸãããããã®ã¢ã€ãã ã®è¿œå ãçšæã«ãã API (mkinitcpio(8) ã«ããã¥ã¡ã³ãåãããŠããŸã) ãååšããŠããŸããhelp 颿°ã¯ããã®ããã¯ã®æ©èœãšäœ¿ç𿹿³ã®çã説ææãåºåããŸãã
ãã¹ãŠã®ããã¯ãäžèЧããã«ã¯:
$ mkinitcpio -L
ç¹å®ã®ããã¯ã®ãã«ããåºåããã«ã¯ mkinitcpio ã® -H/--hookhelp ãªãã·ã§ã³ã䜿ã£ãŠäžãããäŸãã°:
$ mkinitcpio -H udev
ãã«ãããã¯ã¯ /usr/lib/initcpio/install/ ã«ãããã«ã¹ã¿ã ã®ãã«ãããã¯ã¯ /etc/initcpio/install/ ã«çœ®ãããšãã§ããŸãã
ã©ã³ã¿ã€ã ããã¯
HOOKS ã«ãããã«ãããã¯ã«ã¯ãåãååã®ã©ã³ã¿ã€ã ããã¯ãä»å±ããŠããå ŽåããããŸããã©ã³ã¿ã€ã ããã¯ãšã¯ãinitramfs ãã§ãŒãºã§ busybox ã® ash ã·ã§ã«ã«ãã£ãŠ source ãããã·ã§ã«ã¹ã¯ãªããã§ããããã¯ãããŒã¢ã³ã®èµ·åãã¹ã¿ãã¯ããããã¯ããã€ã¹ã®ã¢ã»ã³ãã«ãšãã£ããã¹ã¿ãŒãã¢ããåŠçãæ
ããŸãããã«ãããã¯ã¯ãadd_runscript ãåŒã³åºãããšã§ã察å¿ããã©ã³ã¿ã€ã ããã¯ãã€ã³ã¹ããŒã«ããŸããã©ã³ã¿ã€ã ããã¯ã«ã¯ãè€æ°ã®æ©èœãå«ãŸããŠããããšããããŸã:
ã©ã³ã¿ã€ã ããã¯ã¯ /usr/lib/initcpio/hooks/ ã«ãããŸããã«ã¹ã¿ã ã©ã³ã¿ã€ã ããã¯ã¯ /etc/initcpio/hooks/ ã«é
眮ããŸããå
šãŠã®ã©ã³ã¿ã€ã ããã¯ã«ã¯åãååã®ãã«ãããã¯ãååšããŠããå¿
èŠãããããã®ãã«ãããã¯ã¯ add_runscript ãã³ãŒã«ããŠã©ã³ã¿ã€ã ããã¯ãã€ã¡ãŒãžã«è¿œå ããŸãããããã®ãã¡ã€ã«ã¯åæãŠãŒã¶ç©ºéã§ busybox ã® ash ã·ã§ã«ã«ãã£ãŠå®è¡ãããŸããcleanup ããã¯ãé€ããŠå
šãŠã®ããã¯ã¯ HOOKS èšå®ã®é çªã§å®è¡ãããŸããã©ã³ã¿ã€ã ããã¯ã«ã¯è€æ°ã®é¢æ°ãå«ããããšãã§ããŸã:
run_earlyhook: API ãã¡ã€ã«ã·ã¹ãã ãããŠã³ãããã«ãŒãã«ã³ãã³ãã©ã€ã³ãããŒã¹ããããšãã«ããã®ååã®é¢æ°ãå®è¡ãããŸããäžè¬çã« udev ãªã©åæãŠãŒã¶ç©ºéãå§ãŸã£ããšãã«å¿
èŠã«ãªã远å ã®ããŒã¢ã³ã¯ãã®é¢æ°ã«çœ®ããŸãã
run_hook: åæã®ããã¯ã®åŸããã«ããã®ååã®é¢æ°ãå®è¡ãããŸããäžçªäžè¬çãªããã¯ãã€ã³ãã§ãã¹ã¿ãã¯ãããã¯ããã€ã¹ã®ã¢ã»ã³ããªãªã©ã®ãªãã¬ãŒã·ã§ã³ã¯ããã§è¡ãªã£ãŠäžããã
run_latehook: root ããã€ã¹ãããŠã³ããããåŸããã®ååã®é¢æ°ãå®è¡ãããŸããroot ããã€ã¹ã®åŸã®ã»ããã¢ããã /usr ãªã©ä»ã®ãã¡ã€ã«ã·ã¹ãã ã®ããŠã³ããªã©ã«æ§ããã«äœ¿ãããŸãã
run_cleanuphook: ã§ããéãæåŸã«ããã®ååã®é¢æ°ãå®è¡ãããŸããèšå®ãã¡ã€ã«ã® HOOKS ã®é çªãšã¯éã«å®è¡ãããŸãããããã®ããã¯ã¯åæã®ããã¯ã«ãã£ãŠèµ·åããããŒã¢ã³ã®ã·ã£ããããŠã³ãªã©ãæåŸã®ã¯ãªãŒã³ã¢ããã«äœ¿ãããŸãã
run_cleanuphook ãé€ãããããã®é¢æ°ã¯ãHOOKS é
åã«èšè¿°ãããã察å¿ãããã«ãããã¯ãšåãé çªã§å®è¡ãããŸããã©ã³ã¿ã€ã ããã¯ã¯ /usr/lib/initcpio/hooks/ ã«é
眮ãããŠãããã«ã¹ã¿ã ã®ã©ã³ã¿ã€ã ããã¯ã¯ /etc/initcpio/hooks/ ã«çœ®ãããšãã§ããŸãã
HOOKS é
åã« systemd ãååšããå Žå) ã§ã¯ãã©ã³ã¿ã€ã ããã¯ã¯å®è¡ãããã代ããã« systemd ãŠãããã䜿çšãããŸãããã¹ãããã¯
ãã¹ãããã¯ãšã¯ã眲åãªã©ãšãã£ã远å ã®åŠçãè¡ãããã«ãã€ã¡ãŒãžã (å) çæãããåŸã«å®è¡ãããã·ã§ã«ã¹ã¯ãªããã§ãã
ã¹ã¯ãªããã«ã¯ã以äžã®åŒæ°ã以äžã®é çªã§æž¡ãããŸã:
- 䜿çšãããã«ãŒãã« (äžéšã®ç¶æ³ã§ã¯ç©ºã«ãªãå ŽåããããŸã)
- çæããã initramfs ã€ã¡ãŒãž
- (ãªãã·ã§ã³) çæããããŠããã¡ã€ãã«ãŒãã«ã€ã¡ãŒãž
ããã«ã以äžã®ç°å¢å€æ°ãèšå®ãããŸã:
KERNELVERSION: ã«ãŒãã«ã®å®å
šãªããŒãžã§ã³
KERNELDESTINATION: ã«ãŒãã«ãèµ·åãããããã«é
眮ãããã¹ãããã©ã«ãã®å Žæã
ãã¹ãããã¯ã¯ã/usr/lib/initcpio/post/ (ããã±ãŒãžã«ãã£ãŠæäŸãããŠããããã¯) ãš /etc/initcpio/post/ (ã«ã¹ã¿ã ã®ããã¯) ã«çœ®ãããŸãã
ããã¯ã®ãªã¹ã
以äžã¯ãããã¯ãšãããããã€ã¡ãŒãžã®äœæãšã©ã³ã¿ã€ã ã«äžãã圱é¿ããŸãšãã衚ã§ãã
| busybox init | systemd init | ãã«ããã㯠| ã©ã³ã¿ã€ã ãã㯠(busybox init ã®ã¿) |
|---|---|---|---|
| base | ä»»æ | å
šãŠã®åæãã£ã¬ã¯ããªãã»ããã¢ããããåºæ¬ã®ãŠãŒãã£ãªãã£ãšã©ã€ãã©ãªãã€ã³ã¹ããŒã«ããŸããsystemd ããã¯ã䜿çšããŠããªãå Žåã«ãã®ããã¯ã¯éèŠãª busybox init ãæäŸããã®ã§ãäœãããããšããŠãããçè§£ããŠããªãéãã¯ãã®ããã¯ãåžžã«1çªæåã«çœ®ããŠãã ããã
systemd ããã¯ã䜿çšããéã¯ããã®ããã¯ã¯ busybox ã®ãªã«ããªã·ã§ã«ãæäŸããã ããªã®ã§ãä»»æã§ããã·ã§ã«ã䜿çšããã«ã¯ãbase ãæå¹åããããšã«å ãã |
â |
| udev | systemd | ã€ã¡ãŒãžã« udevd, udevadm, ãã㊠udev ã«ãŒã«ã®å°ããªãµãã»ããã远å ããŸãã | udev ããŒã¢ã³ãèµ·åããŠãã«ãŒãã«ããã® uevent ãåŠçããŸã; ããã€ã¹ããŒããäœæããŸããããŒãããã»ã¹ã®åçŽåãšããŠãå¿ èŠãªã¢ãžã¥ãŒã«ãæç€ºçã«æå®ããå¿ èŠããªãããããudev ããã¯ã®äœ¿çšãæšå¥šãããŠããŸãã |
| usr | /usr ã®åå²ããŒãã£ã·ã§ã³ã®ãµããŒãã远å ããŸãã詳现㯠#/usr ãå¥ã®ããŒãã£ã·ã§ã³ã«åå²ãã ãèŠãŠãã ããã |
æ¬ç©ã®ã«ãŒããã¡ã€ã«ã·ã¹ãã ãããŠã³ããããåŸã« /usr ããŒãã£ã·ã§ã³ãããŠã³ãããŸãã
| |
| resume | ãã€ãããŒãã€ã¡ãŒãžã«ã«ãŒãã«ã®ã³ã³ãã€ã«æããã©ã«ã以å€ã®å§çž®ã¢ã«ãŽãªãºã ã䜿çšããéã«åŸ©åž°ã§ããããã«ããããã«ãlzo ãš lz4 ã«ãŒãã«ã¢ãžã¥ãŒã«ã (initramfs ã«) 远å ããŸããHibernateLocation UEFI 倿°ã§æå®ããããã€ãããŒãã€ã¡ãŒãžãã埩垰ã§ããããã«ããããã« systemd-hibernate-resume(8) ãã€ããªã远å ããŸãã |
"ãã€ãããŒã" (suspend to disk) ç¶æ ããã®åŸ©åž°ã詊ã¿ãŸãã詳ããèšå®æ¹æ³ã¯ ãã€ãããŒã ãèŠãŠãã ããã | |
| btrfs | â | Btrfs ãæå¹ã«ããŠãBtrfs ã§ãã©ãŒããããããè€æ°ã®ããã€ã¹ã䜿çšããããã«å¿
èŠãªã¢ãžã¥ãŒã«ãèšå®ããŸãããã®ããã¯ã䜿ãã«ã¯ãbtrfs-progs ãã€ã³ã¹ããŒã«ããå¿
èŠããããŸããåäžã®ããã€ã¹ã§ Btrfs ã䜿ãã ããªããã®ããã¯ã¯äžèŠã§ãããfilesystems ããã¯ã§ååã§ãã |
udev ããã¯ãååšããªããšãã« btrfs device scan ãå®è¡ããŠãã«ãããã€ã¹ã® Btrfs root ãã¡ã€ã«ã·ã¹ãã ãæ§ç¯ããŸãããã®ããã¯ã䜿ãã«ã¯ btrfs-progs ããã±ãŒãžãå¿
èŠã§ãã
|
| autodetect | sysfs ã®ã¹ãã£ã³ã«ãã£ãŠã¢ãžã¥ãŒã«ã®ãã¯ã€ããªã¹ããäœæã㊠initramfs ãå°ããããŸããå«ãŸããŠããã¢ãžã¥ãŒã«ãæ£ãããæ¬ ããŠãããã®ããªãã確èªããŠãã ãããèªåæ€ç¥ã®å©ç¹ã掻ããããã«ãã®ããã¯ã¯ä»ã® subsystem ããã¯ããåã«å®è¡ããŠãã ããã'autodetect' ããåã«çœ®ãããããã¯ã¯å®å šã«ã€ã³ã¹ããŒã«ãããŸãã | â | |
| microcode | Intel åã³ AMD ããã»ããµåãã®ãã€ã¯ãã³ãŒãæ©æã¢ããããŒããã¡ã€ã«ãæªå§çž® initramfs ã€ã¡ãŒãžã®å
é ã«åã蟌ã¿ãŸããããã¯ãå©çšå¯èœã§ããã° /usr/lib/firmware/amd-ucode/ ãš /usr/lib/firmware/intel-ucode/ ã«ãããã€ã¯ãã³ãŒããã¡ã€ã«ã䜿çšããŸãããããã®ãã¡ã€ã«ãå©çšã§ããªãå Žåã¯ã/boot/amd-ucode.img ãš /boot/intel-ucode.img ãå±éããŠäœ¿çšããŸãã
autodetect ããã¯ããã®ããã¯ããåã«å®è¡ãããå Žåãã€ã¡ãŒãžããã«ãããéã«äœ¿çšããã·ã¹ãã ã«æèŒãããŠããããã»ããµåãã®ãã€ã¯ãã³ãŒãã®æ©æã¢ããããŒããã¡ã€ã«ã®ã¿ã远å ãããŸãã ãã®ããã¯ã¯ãéæšå¥šãšãªã£ãŠãã |
â | |
| modconf | /etc/modprobe.d/ ãš /usr/lib/modprobe.d/ ãã modprobe èšå®ãã¡ã€ã«ãããŒãããŸãã |
â | |
| kms | KMS ã®æ©æéå§ ãæäŸãã GPU ã¢ãžã¥ãŒã«ã远å ããŸããå ããŠãäžéšã®ããŒã PC ã® LCD ããã«ã«çµã¿èŸŒãŸããŠãããã©ã€ãã·ãŒã¹ã¯ãªãŒã³ã«å¿ èŠãªã¢ãžã¥ãŒã«ã远å ããŸãã | â | |
| keyboard | ããŒããŒãããã€ã¹ã«å¿
èŠãªã¢ãžã¥ãŒã«ã远å ããŸããããªãã USB ããŒããŒãã䜿ã£ãŠããŠããããåæãŠãŒã¶ç©ºéã§äœ¿ãå¿
èŠããããšã (æå·åã®ãã¹ãã¬ãŒãºãå
¥åãããã€ã³ã¿ã©ã¯ãã£ãã·ã§ã«ã䜿ãå Žå) ã¯ãã®ããã¯ã䜿ã£ãŠäžãããå¯äœçšãšããŠããŒããŒã以å€ã®å
¥åããã€ã¹çšã®ã¢ãžã¥ãŒã«ã远å ãããããšããããŸãããå°ãããšã¯ãªãã¯ãã§ãã
ããŒã ç°ãªãããŒããŠã§ã¢æ§æã§èµ·åãããã·ã¹ãã (ããšãã°ãå€éšããŒããŒããšå
éšããŒããŒããåããã©ããããããŸã㯠ãããã¬ã¹ã·ã¹ãã ) ã®å Žåãèµ·åæã«ããŒããŒããå©çšã§ããããã«ããããã« (äŸãã°ã
encrypt ããã¯ã䜿çšãããŠããå Žåã«æå·åæžã¿ããã€ã¹ãã¢ã³ããã¯ããããã«)ããã®ããã¯ã autodetect ã®åã«é
眮ããå¿
èŠããããŸãã |
â | |
| keymap | sd-vconsole | /etc/vconsole.conf ãã initramfs ã«ãæå®ããã³ã³ãœãŒã«ããŒãããã远å ããŸããã·ã¹ãã æå·åã䜿çšããå Žå (ç¹ã«ãã«ãã£ã¹ã¯æå·å) ãencrypt ããã¯ãããåã«è¿œå ããããã«ããŠãã ããã |
åæãŠãŒã¶ç©ºéã§ /etc/vconsole.conf ããæå®ãããããŒããããããŒãããŸãã
|
| consolefont | /etc/vconsole.conf ãã initramfs ã«ãæå®ããã³ã³ãœãŒã«ãã©ã³ãã远å ããŸãã |
åæãŠãŒã¶ç©ºéã§ /etc/vconsole.conf ããæå®ãããã³ã³ãœãŒã«ãã©ã³ããããŒãããŸãã
| |
| block | ãããã¯ããã€ã¹ã®ã¢ãžã¥ãŒã«ã远å ããŸããautodetect ããã¯ããã®ããã¯ããåã«å®è¡ãããå Žåããã®ããã¯ã¯ã·ã¹ãã äžã§äœ¿çšãããŠãããããã¯ããã€ã¹ã®ã¢ãžã¥ãŒã«ã®ã¿ã远å ããŸããäŸå€ã¯ ahciãsd_modãusb_storageãuasãmmc_blockãnvmeãvirtio_scsiãvirtio_blk ã¢ãžã¥ãŒã«ã§ããããã¯ç¡æ¡ä»¶ã«å¿
ã远å ãããŸãã |
â | |
| net | æªå®è£ | ãããã¯ãŒã¯ããã€ã¹ã«å¿ èŠãªã¢ãžã¥ãŒã«ã远å ããŸãããã®ããã¯ã䜿ãã«ã¯ mkinitcpio-nfs-utils ãã€ã³ã¹ããŒã«ããªããã°ãªããŸããã詳现㯠#net ã䜿ã ãèŠãŠãã ããã | NFS ã® root ãã¡ã€ã«ã·ã¹ãã ã®ç®¡çãæäŸããŸãã |
| dmraid | ? | fakeRAID root ããã€ã¹ã®ãµããŒããæäŸããŸããããã䜿ãã«ã¯ dmraid ãã€ã³ã¹ããŒã«ããå¿ èŠããããŸããã³ã³ãããŒã©ããµããŒãããŠããå ŽåãfakeRAID ã§ã¯ mdadm_udev ããã¯ãšäžç·ã« mdadm ã䜿ãããšãæšå¥šãããŸãã詳现㯠#RAID ã䜿ã ãèŠãŠãã ããã | dmraid ã䜿çšã㊠fakeRAID ãããã¯ããã€ã¹ãæ€çŽ¢ã»æ§ç¯ããŸãã
|
| mdadm_udev | udev ã䜿ã£ãŠ RAID ã¢ã¬ã€ã®æ§ç¯ããµããŒãããŸãããã®ããã¯ã䜿ãã«ã¯ mdadm ãã€ã³ã¹ããŒã«ããå¿ èŠããããŸãã詳现㯠RAID#mkinitcpio ãèšå®ãã ãèŠãŠãã ããã | â | |
| encrypt | sd-encrypt | dm_crypt ã«ãŒãã«ã¢ãžã¥ãŒã«ãš cryptsetup ããŒã«ãã€ã¡ãŒãžã«è¿œå ããŸããããã䜿ãã«ã¯ cryptsetup ãã€ã³ã¹ããŒã«ããå¿
èŠããããŸããããŒã æå·åãããããã€ã¹ãèµ·åæã«ã¢ã³ããã¯ããããã® keyboard ããã¯ã®æ³šææžããããã¡ã€ã«ãã¢ã³ããã¯ããéã¯ãã¡ã€ã«ã·ã¹ãã ã«ã€ããŠã® #MODULES ã«ããæ³šææžããèŠãŠãã ããã |
æå·åããã root ããŒãã£ã·ã§ã³ãæ€ç¥ããŠã¢ã³ããã¯ããŸããèšå®ã«ã€ããŠã¯ #ã©ã³ã¿ã€ã ã®ã«ã¹ã¿ãã€ãº ãèŠãŠäžããã
sd-encrypt ã«ã€ããŠã¯ Dm-crypt/ã·ã¹ãã èšå®#sd-encrypt ããã¯ã䜿ããèŠãŠãã ããã |
| lvm2 | device mapper ã«ãŒãã«ã¢ãžã¥ãŒã«ãš lvm ããŒã«ãã€ã¡ãŒãžã«è¿œå ããŸããããã䜿ãã«ã¯ lvm2 ãã€ã³ã¹ããŒã«ããå¿
èŠããããŸããã«ãŒããã¡ã€ã«ã·ã¹ãã ã LVM äžã«çœ®ããŠããå Žåããã®ããã¯ã¯å¿
é ã§ãã |
â | |
| filesystems | ã€ã¡ãŒãžã«å¿
èŠãªãã¡ã€ã«ã·ã¹ãã ã¢ãžã¥ãŒã«ãå«ããŸãããã¡ã€ã«ã·ã¹ãã ã¢ãžã¥ãŒã«ã MODULES ã§æå®ããŠããªãéããã®ããã¯ãå¿
èŠã«ãªããŸãã |
â | |
| fsck | fsck ãã€ããªãšãã¡ã€ã«ã·ã¹ãã åºæã®ãã«ããŒã远å ããããŠã³ãåã«ã«ãŒãããã€ã¹ã«å¯Ÿã㊠fsck ãå®è¡ã§ããããã«ããŸããautodetect ããã¯ã®åŸãã«ãã®ããã¯ã远å ããå Žåãroot ãã¡ã€ã«ã·ã¹ãã ã®ãã«ããŒã ãã远å ãããŸãããã®ããã¯ã®äœ¿çšã¯åŒ·ãæšå¥šãããŠããã/usr ããŒãã£ã·ã§ã³ãåå²ããå Žåã¯å¿
é ã§ãããã®ããã¯ãå«ããå ŽåãåæãŠãŒã¶ç©ºéã§ããŒããŒããåäœããããšãä¿èšŒããããã«å¿
èŠãªã¢ãžã¥ãŒã«ã远å ããããšãåŒ·ãæšå¥šããŸãã
ãã®ããã¯ã䜿çšããã«ã¯ãã«ãŒãã«ã³ãã³ãã©ã€ã³ã«ãã©ã¡ãŒã¿ |
â | |
| acpi_override | /usr/initcpio/acpi_override/ ãš /etc/initcpio/acpi_override/ ãã£ã¬ã¯ããªå
ã«ãã ACPI Machine Language (.aml) ãã¡ã€ã«ãæªå§çž®æ©æ initramfs ã€ã¡ãŒãžã«è¿œå ããŸããããããããšã§ãã«ãŒãã«ãããŒãã®éåžžã«æ©ã段éã§ ACPI ããŒãã« (äŸãã° DSDT) ããªãŒããŒã©ã€ãã§ããããã«ããŸãã[1] |
â | |
COMPRESSION
ã«ãŒãã«ã¯ãinitramfs ã®å§çž®ã«ããã€ãã®åœ¢åŒããµããŒãããŠããŸã: gzipãbzip2ãlzma (xz)ãxzãlzo (lzop)ãlz4ãzstdãmkinitcpio ã¯ããã©ã«ãã§ zstd å§çž®ã€ã¡ãŒãžã䜿çšããŸããmkinitcpio 㯠ããã©ã«ãã§ãã«ãŒãã« 5.9 åã³ãã以éã«å¯ŸããŠã¯ zstd å§çž®ãã5.9 ããåã®ã«ãŒãã«ããŒãžã§ã³ã«å¯ŸããŠã¯ gzip ã䜿çšããŸãã
æäŸãããŠãã mkinitcpio.conf ã«ã¯ãããŸããŸãª COMPRESSION ãªãã·ã§ã³ãã³ã¡ã³ãã¢ãŠããããŠããŸããå¥ã®å§çž®æ¹æ³ã«åãæ¿ããå Žåã¯ãã³ã¡ã³ããè§£é€ãã察å¿ããå§çž®ãŠãŒãã£ãªãã£ãã€ã³ã¹ããŒã«ãããŠããããšã確èªããŠãã ãããäœãæå®ããªãå Žåã¯ãããã©ã«ãã®ã¡ãœããã䜿çšãããŸããéå§çž®ã€ã¡ãŒãžãäœæããå Žåã¯ãèšå®ãã¡ã€ã«ã§ COMPRESSION=cat ãæå®ããããã³ãã³ãã©ã€ã³ã§ -z cat ã䜿çšããŸãã
- lz4 ãš xz å§çž®ãŠãŒãã£ãªãã£ã¯ããã©ã«ãã§ãã«ãã¹ã¬ããåãããŠãããzstd ã¯ãã«ãã¹ã¬ããã¢ãŒãã§å®è¡ãããŸã (
-T0ãªãã·ã§ã³ã䜿çšãããæ€åºãããã³ã¢ãšåãæ°ã®ã¹ã¬ãããäœæããããšè©Šã¿ãŸã)ã - lz4 ã¯ãé«å§çž®ã¢ãŒã (
-9) ã®ã€ã¡ãŒãžã®å§çž®çã¯éåžžçŽ2.5ã§ãæéã®è§£åé床ãéæããŠããŸããzstd ã¯ããã«ãã¹ã¬ããå§çž®ãšããªãã·ã§ã³ã«ããå¹ åºãå§çž®ã¬ãã«ã«ãããå€çšéã®ãœãªã¥ãŒã·ã§ã³ãæäŸããŸã - zstd(1) § Operation Modifiers ãåç §ãxz ã¯ããã®é«å§çž®ããªã»ãã (-9) ã§çŽ5ã®çž®å°çã«ããæå°ãµã€ãºãå®çŸããŸããããã®ä»£åãšããŠå±éé床ãããªãé ããªããŸãã
COMPRESSION_OPTIONS
COMPRESSION ã§æå®ããããã°ã©ã ã«æž¡ã远å ã®ãã©ã°ãèšè¿°ããŸããäŸ:
COMPRESSION_OPTIONS=(-9)
ãã®ãªãã·ã§ã³ã¯ç©ºã®ãŸãŸã«ããŠããããšãã§ããŸããmkinitcpio ã¯ããµããŒããããŠããå§çž®ã¡ãœããã«ãæ©èœããã€ã¡ãŒãžãçæããããã«å¿ é ãªãã©ã°ãæž¡ãããšãä¿èšŒããŠããŸãã
ããã©ã«ãã® zstd å§çž®ã§ã¯ãã«ã¹ã¿ã ã«ãŒãã«ã®ã¹ããŒã¹ãç¯çŽããããã« (ç¹ã«ãã¥ã¢ã«ããŒãç°å¢ã§ãEFI ã·ã¹ãã ããŒãã£ã·ã§ã³ã /boot ãšããŠäœ¿çšããå Žå)ã--long ãªãã·ã§ã³ã¯éåžžã«å¹æçã§ãããã ããRAM ã®éãããã·ã¹ãã ã¯ããã®ãªãã·ã§ã³ãããå Žåã« initramfs ãè§£åã§ããªãå ŽåããããŸãããŸãã-v ãªãã·ã§ã³ã¯ãinitramfs ã®çæäžã«è©³çްãèŠããå Žåã«å¿
èŠã«ãªããããããŸãããäŸ:
COMPRESSION="zstd" COMPRESSION_OPTIONS=(-v -5 --long)
xz ã§å§çž®ã¬ãã« -9e ã䜿çšããããŒããã«ãªã«ãŒãã«ã¢ãžã¥ãŒã«ãšãã¡ãŒã ãŠã§ã¢ãè§£åããŠããããšã§ãå§çž®é床ãæãé
ããªããŸãããå§çž®çãæå€§ã«é«ããããšãã§ããŸã:
COMPRESSION="xz" COMPRESSION_OPTIONS=(-9e) MODULES_DECOMPRESS="yes"
MODULES_DECOMPRESS
MODULES_DECOMPRESS ã¯ãinitramfs ã®äœææã«ã«ãŒãã«ã¢ãžã¥ãŒã«ãšãã¡ãŒã ãŠã§ã¢ã®ãã¡ã€ã«ãè§£åããŠããããæ±ºããŸããããã©ã«ã㯠no ã§ãã
Arch ã§ã¯ã«ãŒãã«ã¢ãžã¥ãŒã«ãš linux-firmware ã zstd ã§ã¬ãã« 19 ã§å§çž®ããŠããŸããInitramfs ã§ããé«ãå§çž®çã䜿çšããå ŽåãMODULES_DECOMPRESS="yes" ãèšå®ããããšã§ãinitramfs ã®ãµã€ãºãããã«å°ããããããšãã§ããŸããããããã«ãŒãã«ãåã
ã®ã¢ãžã¥ãŒã«ãšãã¡ãŒã ãŠã§ã¢ãããŒãæã«è§£åããå Žåããããinitramfs ã€ã¡ãŒãžå
šäœãè§£åããã®ã«ããå€ãã®æéãæããããã«ãªããããããŒãã®åææ®µéã§ RAM ãš CPU ã®äœ¿çšçãå¢å ãããRAM 容éãéãããŠã㊠CPU ã®æ§èœãäœãã·ã¹ãã ã§æªåœ±é¿ãåãŒããŸãã
ã©ã³ã¿ã€ã ã®ã«ã¹ã¿ãã€ãº
ã©ã³ã¿ã€ã èšå®ãªãã·ã§ã³ã¯ã«ãŒãã«ã³ãã³ãã©ã€ã³ãéã㊠init ãç¹å®ã®ããã¯ã«æž¡ãããšãã§ããŸããã«ãŒãã«ã³ãã³ãã©ã€ã³ãã©ã¡ãŒã¿ã¯ããŒãããŒãã«ãã£ãŠäžããããããšãã»ãšãã©ã§ããäžã§æžãããŠãããªãã·ã§ã³ãã«ãŒãã«ã³ãã³ãã©ã€ã³ã«è¿œå ããããšã§ããã©ã«ãã®æåãå€ããããšãã§ããŸãã詳ãã㯠ã«ãŒãã«ãã©ã¡ãŒã¿ ã Arch ããŒãããã»ã¹ ãèŠãŠäžããã
base ããã¯ã® init
root=- ã«ãŒãã«ã³ãã³ãã©ã€ã³ã§æå®ããäžçªéèŠãªãã©ã¡ãŒã¿ã§ãããã©ã®ããã€ã¹ã root ããã€ã¹ãšããŠããŠã³ãããããæ±ºããŸããmkinitcpio ã¯æè»ã«æ§ã ãªåœ¢åŒã䜿ãããšãã§ããããã«ãªã£ãŠããŸãã圢åŒã®äŸã¯ æ°žç¶çãªãããã¯ããã€ã¹ã®åœå#ã«ãŒãã«ãã©ã¡ãŒã¿ ãèŠãŠãã ããã
init ã®ããã©ã«ãã®æåã倿ŽããŸãã詳ãã㯠/usr/lib/initcpio/init ãåç
§ãsystemd ããã¯ã䜿ãããŠããå Žå base ããã¯ã® init ã¯çœ®ãæããããæ©èœããŸãããbreakbreakãbreak=premountãæå®ãããå Žåã(ããã¯ãããŒãããåŸãroot ãã¡ã€ã«ã·ã¹ãã ãããŠã³ãããåã«)initã¯ããŒãããã»ã¹ã忢ããŠãã©ãã«ã·ã¥ãŒãã£ã³ã°ã«äœ¿ãããšãã§ããã€ã³ã¿ã©ã¯ãã£ãã·ã§ã«ãèµ·åããŸããbreak=postmountãšæå®ããããšã§ root ãããŠã³ããããåŸã«ãã®ã·ã§ã«ãèµ·åããããšãã§ããŸããã·ã§ã«ãçµäºãããšéåžžéãã«èµ·åãè¡ãããŸãã
disablehooks=disablehooks=hook1[,hook2,...]ã远å ãããšå®è¡æã«ããã¯ãç¡å¹åããŸããäŸ:disablehooks=resume
earlymodules=earlymodules=mod1[,mod2,...]ãšãã颚ã«å ã«ããŒãããã¢ãžã¥ãŒã«ãæå®ããããšã§ã¢ãžã¥ãŒã«ãããŒããããé çªã倿Žããããšãã§ããŸã (äŸãã°ãè€æ°ã®ãããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹ã®é çªãé©åã«ç¢ºå®ããããšããªã©ã«äœ¿ããŸã)ã
ä»ã®ãã©ã¡ãŒã¿ã«ã€ããŠã¯ ããŒããããã° ã mkinitcpio(8) ãèŠãŠäžããã
RAID ã䜿ã
RAID#mkinitcpio ã®èšå® ãèŠãŠãã ããã
net ã䜿ã
å¿ èŠãªããã±ãŒãž
net 㯠mkinitcpio-nfs-utils ããã±ãŒãžãå¿
èŠãšããŸãã
ã«ãŒãã«ãã©ã¡ãŒã¿
å ¬åŒã®ã«ãŒãã«ããã¥ã¡ã³ãã«å æ¬çã§ææ°ã®æ å ±ãèŒã£ãŠããŸãã
ip=
ãã®ãã©ã¡ãŒã¿ã¯ã«ãŒãã«ã«ãããã€ã¹ã® IP ã¢ãã¬ã¹ã®èšå®æ¹æ³ãšãIP ã«ãŒãã£ã³ã°ããŒãã«ã®èšå®æ¹æ³ãæå®ããŸããã³ãã³ã§åºåã£ã9ã€ãŸã§ã®åŒæ°ãæå®ã§ããŸã: ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>:<dns0-ip>:<dns1-ip>:<ntp0-ip>ã
ã«ãŒãã«ã³ãã³ãã©ã€ã³ã«ãã®ãã©ã¡ãŒã¿ãååšããªãã£ãå Žåãå šãŠã®ãã£ãŒã«ãã空ãšãããŠãã«ãŒãã«ããã¥ã¡ã³ãã«æžãããŠããããã©ã«ãèšå®ãé©çšãããŸããäžè¬çã«ã¯ã«ãŒãã«ã¯èªåèšå®ã䜿ã£ãŠå šãŠãèšå®ããããšããŸãã
<autoconf> ãã©ã¡ãŒã¿ã¯ ip ãã©ã¡ãŒã¿ã®å¯äžã®å€ãšããŠæå®ã§ããŸã (åã®å
šãŠã® : æåãæé€)ãå€ã ip=off ã ip=none ã®å Žåãèªåèšå®ã¯è¡ãããŸãããããã§ãªããªããèªåçã«èšå®ãããŸããæãäžè¬çãªäœ¿ãæ¹ã¯ ip=dhcp ã§ãã
ãã©ã¡ãŒã¿ã®èª¬æã¯ãã«ãŒãã«ããã¥ã¡ã³ããåç §ããŠãã ããã
äŸ:
ip=127.0.0.1:::::lo:none --> ã«ãŒãããã¯ã€ã³ã¿ãŒãã§ã€ã¹ãæå¹åã ip=192.168.1.1:::::eth2:none --> éç eth2 ã€ã³ã¿ãŒãã§ã€ã¹ãæå¹åã ip=:::::eth0:dhcp --> eth0 æ§æã«å¯Ÿã㊠dhcp ãããã³ã«ãæå¹åã
<device> ãã©ã¡ãŒã¿ã«ã¯ã«ãŒãã«ã®ããã€ã¹åã䜿çšããŠãã ãã (äŸ: eth0)ãæ°žç¶çãªååã®ããã€ã¹å (äŸ: enp2s0) ã§ã¯åäœããŸããã詳现㯠ãããã¯ãŒã¯èšå®#ãããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹ ãèŠãŠãã ãããBOOTIF=
è€æ°ã®ãããã¯ãŒã¯ã«ãŒãã䜿ã£ãŠãããšãã¯ããã®ãã©ã¡ãŒã¿ã«èµ·åããã€ã³ã¿ãŒãã§ã€ã¹ã® MAC ã¢ãã¬ã¹ãå«ããããšãã§ããŸããã€ã³ã¿ãŒãã§ã€ã¹ã®æ°åãå€ãã£ãŠããŸã£ãããpxelinux ã® IPAPPEND 2 ã IPAPPEND 3 ãªãã·ã§ã³ã䜿ããšãã«äŸ¿å©ã§ããæå®ããªãã£ãå Žåãeth0 ã䜿ãããŸãã
äŸ:
BOOTIF=01-A1-B2-C3-D4-E5-F6 # å é ã® "01-" ãšå€§æåã«æ³šæ
nfsroot=
nfsroot ãã©ã¡ãŒã¿ãã³ãã³ãã©ã€ã³ã§æå®ãããªãã£ãå Žåãããã©ã«ãã§ /tftpboot/%s ã䜿ãããŸãã
nfsroot=[<server-ip>:]<root-dir>[,<nfs-options>]
ãã©ã¡ãŒã¿ã®èª¬æãèŠãã«ã¯ mkinitcpio -H net ãå®è¡ããŠãã ããã
LVM ã䜿ã
root ããã€ã¹ã LVM äžã«çœ®ãå Žåã¯ãLVM ã« Arch Linux ãã€ã³ã¹ããŒã«ãã#mkinitcpio ããã¯ã远å ãã ãèŠãŠãã ããã
æå·åãããã«ãŒãã䜿ã
root ãæå·åããŠããå Žåãã©ã®ããã¯ãå«ããã¹ããã«é¢ããè©³çŽ°ãªæ å ±ã¯ Dm-crypt/ã·ã¹ãã èšå®#mkinitcpio ãèŠãŠäžããã
/usr ãå¥ã®ããŒãã£ã·ã§ã³ã«åå²ãã
/usr ã®ããŒãã£ã·ã§ã³ãå¥ã«ããå Žåã以äžãè¡ãå¿
èŠããããŸã:
- èµ·åæã«ãã®ããŒãã£ã·ã§ã³ã®ãã§ãã¯ãå®è¡ããããã«ã
fsckããã¯ã远å ããŠã/etc/fstabã§/usrã®passnoã2ã«ãããèµ·åæã«/usrã fsck ãããå Žåã¯å¿ é ã§ã (ããã¯ãã¹ãŠã®ãŠãŒã¶ã«æšå¥šãããŸã)ããã®ããã¯ãååšããªããšã/usrã¯æ°žé ã« fsck ãããŸããã - systemd ããã¯ã䜿ã£ãŠããªãå Žåã
usrããã¯ã远å ãããã«ãŒããããŠã³ããããåŸã«/usrããŒãã£ã·ã§ã³ãããŠã³ããããããã«ãªããŸãã
ãã³ããšãã¯ããã¯
ãã©ãŒã«ãã㯠initramfs ã®çæ
ãã©ãŒã«ãã㯠initramfs ã®çæã¯ãããã©ã«ãã§ç¡å¹åãããŠããŸããæå¹åããã«ã¯:
/etc/mkinitcpio.d/å ã®ããããã® .preset ãã¡ã€ã«ãä¿®æ£ããPRESETS=('default')ãç¡å¹åãã代ããã«PRESETS=('default' 'fallback')ãæå¹åããfallback_image="/boot/initramfs-linux-fallback.img"ãæå¹åããfallback_options="--skiphooks autodetect"ãæå¹åãã
- initramfs ãåçæãã
- ããŒãããŒããŒã®èšå®ãæŽæ°ãã
ãã©ãã«ã·ã¥ãŒãã£ã³ã°
ã€ã¡ãŒãžã®å±é
initramfs ã€ã¡ãŒãžã®äžã«äœãå ¥ã£ãŠãããæ°ã«ãªããšãã¯ãã€ã¡ãŒãžãå±éããŠäžã«å ¥ã£ãŠãããã¡ã€ã«ã調ã¹ãããšãã§ããŸãã
initramfs ã€ã¡ãŒãžã¯ SVR4 CPIO ã¢ãŒã«ã€ãã§ãããfind ãš bsdcpio ã³ãã³ãã«ãã£ãŠçæãããŠããŸãããŸããä»»æã§ãã«ãŒãã«ã察å¿ããå§çž®æ¹æ³ã«ãã£ãŠå§çž®ãããŠããŸããå§çž®æ¹æ³ã«ã€ããŠè©³ãã㯠#COMPRESSION ãèŠãŠäžããã
mkinitcpio ããã±ãŒãžã«ã¯ lsinitcpio(1) ãšãããŠãŒãã£ãªãã£ãå«ãŸããŠãã initramfs ã€ã¡ãŒãžã®äžèº«ãäžèЧã»å±éããããšãã§ããŸãã
ã€ã¡ãŒãžå ã®ãã¡ã€ã«ãäžèЧããã«ã¯:
# lsinitcpio /boot/initramfs-linux.img
ã«ã¬ã³ããã£ã¬ã¯ããªã«ãã¡ã€ã«ãå šãŠå±éããã«ã¯:
# lsinitcpio --extract /boot/initramfs-linux.img
ã€ã¡ãŒãžã®éèŠãªããŒãã«ã€ããŠèªã¿ããããªã¹ããååŸããããšãã§ããŸã (ã«ãŒãã«ããŒãžã§ã³ãåæ CPIO ã®ååšãå«ãŸããŠããã¢ãžã¥ãŒã«ããã€ããªãªã©):
# lsinitcpio --analyze /boot/initramfs-linux.img
å±éããŠä¿®æ£ãå ããã€ã¡ãŒãžã®åå§çž®
/usr/bin/mkinitcpio ã¹ã¯ãªããã® build_image 颿°ã以äžã®ãã©ã¡ãŒã¿ã§å®è¡ããŠãã ãã:
build_image åºåãã¡ã€ã« å§çž®æ¹åŒ
build_image 颿°ã®å
å®¹ã§æ°ããã¹ã¯ãªãããäœæããããšã§ãããå®è¡ã§ããŸãã
ããã¯ã«ã¬ã³ããã£ã¬ã¯ããªå
ã®å
容ã åºåãã¡ã€ã« ãšãããã¡ã€ã«ã«å§çž®ããŸãã
/boot/initramfs-linux.img ã®ååã倿Žããããšã§ãç°¡åã«å
ã«æ»ãããšãã§ããããã«ãªããŸããäœãåé¡ãçºçããŠèµ·åã§ããªããªã£ãå Žåãfallback ã€ã¡ãŒãžãããŒã CD ã§èµ·åããŠãmkinitcpio ãå®è¡ããŠå
ã®ã€ã¡ãŒãžã«æ»ããŠãã ããããããã¯ãèªåã§ä¿®æ£ããŠã€ã¡ãŒãžãåå§çž®ããŠãã ãããããŠã³ããããŠããã®ã« "/dev must be mounted" ãšè¡šç€ºããã
/dev ãããŠã³ããããŠãããã©ãã確èªããããã« mkinitcpio 㯠/dev/fd/ ãååšãããã©ããã確ãããŸããåé¡ããªãããã§ããããæåã§äœæããããšãã§ããŸã:
# ln -s /proc/self/fd /dev/
(åœç¶ /proc ã®ããŠã³ããå¿
èŠã§ããmkinitcpio ã«ãã£ãŠæ¬¡ã«ãã§ãã¯ãããŸãã)
Possibly missing firmware for module XXXX
ã«ãŒãã«ã®ã¢ããããŒãåŸã« initramfs ãåçæããéã以äžã®ãããªèŠåã衚瀺ãããããšããããŸã:
==> WARNING: Possibly missing firmware for module: 'module_name'
default initramfs ã€ã¡ãŒãžãçæãããšãã«åããããªã¡ãã»ãŒãžã衚瀺ãããå ŽåãèŠåã¡ãã»ãŒãžãèšã£ãŠããéãã远å ã®ãã¡ãŒã ãŠã§ã¢ãã€ã³ã¹ããŒã«ããå¿ èŠããããããããŸãããã»ãšãã©ã®äžè¬çãªãã¡ãŒã ãŠã§ã¢ãã¡ã€ã«ã¯ linux-firmware ããã±ãŒãžãã€ã³ã¹ããŒã«ããããšã§å ¥æã§ããŸãããã¡ãŒã ãŠã§ã¢ãæäŸããä»ã®ããã±ãŒãžã«ã€ããŠã¯ã以äžã®è¡šãèŠãããå ¬åŒãªããžããªã AUR ã§ã¢ãžã¥ãŒã«åãæ€çŽ¢ããŠã¿ãŠãã ããã
ã¡ãã»ãŒãžã fallback initramfs ã€ã¡ãŒãžã®çææã«ã®ã¿è¡šç€ºãããå Žåã¯ã以äžã®2ã€ã®éžæè¢ããããŸã:
- 圱é¿ãåããããŒããŠã§ã¢ã䜿çšããªãããšãããã£ãŠããå Žåã¯ãèŠåãå®å šã«ç¡èŠã§ããŸãã
- èŠåãæå¶ãããå Žåãäžè¶³ããŠãããã¡ãŒã ãŠã§ã¢ãã€ã³ã¹ããŒã«ã§ããŸããã¡ã¿ããã±ãŒãž mkinitcpio-firmwareAUR ã«ã¯ãã»ã©ãã©ã®ãªãã·ã§ã³ã®ãã¡ãŒã ãŠã§ã¢ãå«ãŸããŠããŸãããããã¯ãæåã§å¿ èŠãªããã±ãŒãžãã€ã³ã¹ããŒã«ããŠãã ãã:
ã¢ãžã¥ãŒã« ããã±ãŒãž aic94xx aic94xx-firmwareAUR ast ast-firmwareAUR bfa linux-firmware-qlogic bnx2x linux-firmware-broadcom liquidio linux-firmware-liquidio mlxsw_spectrum linux-firmware-mellanox nfp linux-firmware-nfp qat_420xx linux-firmware-intel qed linux-firmware-qlogic qla1280 linux-firmware-qlogic qla2xxx linux-firmware-qlogic wd719x wd719x-firmwareAUR xhci_pci
xhci_pci_renesasupd72020x-fwAUR
- èŠåãåãé€ãããããå¿ èŠãªããã¡ãŒã ãŠã§ã¢ããã±ãŒãžã®ããã«ã·ã¹ãã ã®ç©ºãé åãç¡é§ã«ããããªãå Žåããã©ãŒã«ãã㯠initramfs ã®çæãç¡å¹åããããšãã§ããŸãã
å©çšã§ããªããã¡ãŒã ãŠã§ã¢ã«é¢ããŠã¯ããããŒã®ãã¡ã€ã«ãäœæããããšã§èŠåãæ¶ãããšãã§ããŸããäŸãã°:
# echo 'Silence the "Possibly missing firmware for module" message' \
| tee /usr/lib/firmware/qat_6xxx{,_mmp}.bin >/dev/null
No PS/2 controller found
äžéšã®ãã¶ãŒããŒãã§ (ã»ãšãã©ã®å Žåãå€ããã®ãããããäžéšã®æ°ãããã®ã§ãèµ·ãããŸã)ãi8042 ã³ã³ãããŒã©ãèªåæ€åºã§ããŸãããçšãªã±ãŒã¹ã§ãããããŒããŒãã䜿ããªããªã£ãŠããŸãããšããããŸãããã®ç¶æ³ãäºåã«å¯ç¥ããããšãã§ããŸããPS/2 ããŒãããããi8042: PNP: No PS/2 controller found. Probing ports directly ãšããã¡ãã»ãŒãžã衚瀺ãããå ŽåãMODULES é
åã« atkbd ã远å ããŠãã ããã[2]
ãããã·ã³ã§ã¯èµ·åã§ãããä»ã®ãã·ã³ã§ã¯èµ·åã§ããªã
mkinitcpio ã® autodetect ããã¯ã¯ /sys ãã¹ãã£ã³ããŠãããŒããããŠããã«ãŒãã«ã¢ãžã¥ãŒã«ã確èªããŠäžèŠãªã«ãŒãã«ã¢ãžã¥ãŒã«ãæé€ããŸãã/boot ãã£ã¬ã¯ããªãä»ã®ãã·ã³ã«ç§»åããŠãåæãŠãŒã¶ãŒç©ºéã§ããŒãã倱æããå Žåãã«ãŒãã«ã¢ãžã¥ãŒã«ãååšããªãããã«æ°ããããŒããŠã§ã¢ãæ€åºãããŠããªãã®ãåå ãããããŸãããUSB 2.0 ãš 3.0 ã§ã¯å¿
èŠãªã«ãŒãã«ã¢ãžã¥ãŒã«ãç°ãªãã®ã§æ³šæããŠãã ããã
ä¿®æ£ããã«ã¯ãããŒãããŒããŒãã fallback ã€ã¡ãŒãžãéžæããŠãã ãã (fallback 㯠autodetect ã«ãããã£ã«ã¿ãªã³ã°ããããŠããŸãã) èµ·åããããæ°ãããã·ã³ã§ mkinitcpio ãå®è¡ããŠé©åãªã¢ãžã¥ãŒã«ã§ã€ã¡ãŒãžãåçæããŠãã ãããfallback ã€ã¡ãŒãžã§èµ·åã§ããªãå ŽåãArch Linux ã®ã©ã€ã CD/USB ã§èµ·åããŠãchroot ããæ°ãããã·ã³ã§ mkinitcpio ãå®è¡ããŠäžãããããã§ãé§ç®ãªå Žåãinitramfs ã«ã¢ãžã¥ãŒã«ãæåã§è¿œå ããŸãã
ã³ã³ãœãŒã«ã«ã¢ã¯ã»ã¹ã§ããªããã«ãŒãã¢ã«ãŠã³ããããã¯ãããŠãã
systemd ããã¯ã¯ã(initramfs ã®) ã«ãŒãã¢ã«ãŠã³ããç¡å¹åããŸããç·æ¥ã·ã§ã«ãæå¹åããã«ã¯ãäžæçã« SYSTEMD_SULOGIN_FORCE=1 ãã«ãŒãã«ãã©ã¡ãŒã¿ã«è¿œå ããŠãã ããã
ãããã¯ãinitcpio-hook-shadowcopyAUR ãäœ¿ãæ¹æ³ããããŸãããã®ããã±ãŒãžãã€ã³ã¹ããŒã«ãã/etc/mkinitcpio.conf ã® systemd ããã¯ã®åŸã« shadowcopy ããã¯ã远å ããmkinitcpio -P ã§ initramfs ãåçæããŠãã ãããããã¥ã¡ã³ã㯠GitHub ãªããžããªã«ãããŸãã
åç §
- Linux ã«ãŒãã«ããã¥ã¡ã³ã initramfs, "What is rootfs?"
- Linux ã«ãŒãã«ããã¥ã¡ã³ã initrd
- Wikipedia èšäº initrd