๐ง Linux ้ๆฉๆต็จๅฎๆด่งฃๆ
ๅคๆธไบบๅญธ Linux,ๆฏๅพ「systemctl restart ่ฝ็จๅฐฑๅฅฝ」้ๅง็。
ไฝ็ถไฝ ็็้ๅฐ้ไบ็ๆณๆ:
- ๆฉๅจ้ๆฉๅกไฝ,็ไธๅฐ้ฏ่ชค
- ๆๅๅถ็พ่ตทไธไพ,ไฝ้้ๅๅฅฝไบ
- ้้ๆฉ่ฆ็ญๅๅนพๅ้
- ๆๅพๅช่ฝ้ ๅฟซ็ งๆๅไปฝๆๅ
ๅ ถๅฏฆๅ้กๅธธๅธธไธๅจ「ๆไธๅๆไปค」,่ๆฏๅจ「้ๆฉๆต็จ็ๅชไธๆฎตๅกไฝ」。 ๅช่ฆไฝ ๆๆดๆข็ๅฝ้ฑๆไธฒ่ตทไพ,้ค้ฏๆ่ฎๅพ้ๅธธๆๆนๅ。
๐ ไธ、้ปๆบไธๆไธ:BIOS / UEFI ๅจๅไป้บผ?
ไฝ ๆไธ้ปๆบ้ตๅพ,Linux ้ๆฒๅบๅ ด。็ฌฌไธๅๅทฅไฝ็ๆฏ BIOS ๆ UEFI。 ๅฎๆๅ ๆ็กฌ้ซ็ฐๅขๆด็ๅฅฝ,ๅๆๆงๅถๆฌไบค็ตฆไธไธ้ๆฎต。
- ๅๅงๅ CPU、่จๆถ้ซ、ไธปๆฉๆฟๆถ็、ๅฒๅญๆงๅถๅจ
- ๆๆๅฏ้ๆฉ่ฃ็ฝฎ(NVMe / SSD / SATA / USB)
- ไพ้ๆฉ้ ๅบ้ธๆ็ฎๆจ(Boot Order)
ๅฆๆไฝ ้ๅฐ「้ฃ GRUB ้ฝ้ฒไธๅป」ๆ「็ซ้ขๅๅจไธปๆฉๆฟ Logo ๅพไน 」, ้ๅธธๅ้ก้ๅ็ๅจ้ไธๅฑค:็กฌ้ซ、้้ซ่จญๅฎ、ๆ้ๆฉ่ฃ็ฝฎๆฌ่บซ。
๐ฆ ไบ、GRUB:้ฃๅ้ธๅฎๅ ถๅฏฆๆฏ「ๆฌ้ๅทฅ」
ๅพๅคไบบไปฅ็บ GRUB ๅฐฑๆฏไธๅ้ๆฉ้ธๅฎ,ไฝๅฎ็ๆญฃ็ๅทฅไฝๆฏ: ๆ Linux Kernel ่ initramfs ่ผๅ ฅๅฐ่จๆถ้ซ,ไธฆๆๅๆธไบค็ตฆ Kernel。
linux /vmlinuz-6.x.x root=/dev/mapper/vg-root ro quiet
initrd /initramfs-6.x.x.img
ๅธธ่ฆๆๅกๅจ้ไธๆฎต็็็:
- ้ฒๅ ฅ rescue mode
- Kernel panic(ๆพไธๅฐ root filesystem)
- ้กฏ็คบๆพไธๅฐ็ฃ็ข / LVM / RAID
้ๆๅไฝ ่ฆๆท็็ไธๆฏ systemd,่ๆฏ「root= ๅๆธ、็ฃ็ข UUID、ๆ initramfs ๅ งๅฎน」。
๐ง ไธ、Kernel:Linux ็ๆญฃ้ๅงไธๅทฅ
Kernel ๆฅๆๅพ,ๆ้ๅงๅไธๅ 「ๅพๆฉๆไฝๅพ้้ต」็ไบๆ :
- ๅๅงๅ็กฌ้ซ้ฉ ๅ(ๅฐคๅ ถๆฏ็ฃ็ข่ๆชๆก็ณป็ตฑ)
- ๅปบ็ซ่จๆถ้ซ็ฎก็่็จๅบๆจกๅ
- ๆ่ผๆซๆๆง็ rootfs(ๆฅ่้ๅธธๆไบค็ตฆ initramfs)
่ฆๅ้ ญ็ Kernel ๆฉๆๅฐๅบๅไบไป้บผ,ๆๅธธ็จ็ๅ ฅๅฃๅฐฑๆฏ:
dmesg | less
ๅฆๆไฝ ๆฏ่ฆ็「้ๆฌก้ๆฉ」็ๅฎๆด็ด้,ๅพ้ข systemd ้ๆฎตไนๆๆ Kernel log ไธ่ตทๆถ้ฒ journal。
๐งฐ ๅ、initramfs:้ๆฉๆต็จๆๅธธ่ขซไฝไผฐ็้้ต
initramfs ๅฏไปฅๆๅฎๆณๆ「่จๆ็่ฟทไฝ Linux」: ๅฎ็ไปปๅๆฏๅ ๆ็ๆญฃ็็ณป็ตฑ็ฐๅขๆบๅๅฅฝ,็ถๅพๅๆๅฐๆญฃๅผ็ root filesystem。
ๅฎ้ๅธธๆ่ฒ ่ฒฌ:
- ่ผๅ ฅๅฟ ่ฆๆจก็ต(็ฃ็ข、ๆชๆก็ณป็ตฑ、็ถฒๅก็ญ)
- ็ต RAID、ๅ็จ LVM、่งฃ้ๅ ๅฏ็ฃ็ข(ๅฆๆๆ)
- ๆพๅฐ็ๆญฃ็ /(rootfs),ๅๅๆ้ๅป
ๅช่ฆไฝ ็จๅฐ LVM / RAID / ๅ ๅฏ,initramfs ๅนพไนๅฐฑๆฏ「่ฝไธ่ฝ้ ๅฉ้ๆฉ」็้ๆชป。
⚙️ ไบ、systemd:ๆๅๅๅ่ไพ่ณด้ไฟ็็ธฝๆๆฎ
็ถ็ๆญฃ็ root filesystem ๆ่ผๅฎๆๅพ,systemd(PID 1)้ๅงๆฅๆๆดๅไฝฟ็จ่ ็ฉบ้(userspace)。 ๅพ้ๅป้ๅง,ไฝ ็ๆ็ๆๅ็ฎก็、ๅๅ้ ๅบ、ๅคฑๆ้่ฉฆ、็ด้่ฟฝๆฅ,ๆ็ฎๆญฃๅผ้ฒๅ ฅไธปๅ ด。
ๅธธ็จไธไปถๅฅ(็็ๅพๅธธ็จ):
systemctl list-dependencies multi-user.target
systemd-analyze blame
journalctl -b
๐งญ ๅ ญ、้ๅฐ「้ๆฉๆ ข / ้ๆฉๅก」ๆ้บผๆ?ๅ ๆๆฎต่ฝๅๆธ ๆฅ
้ค้ฏๆๆ็ๆฏไบ็。ไฝ ๅช่ฆๅ ๅคๆท「ๅกๅจๅชไธๆฎต」,ๅฐฑ่ฝ็ดๆฅ็ธฎๅฐ 80% ็็ฏๅ。
BIOS / UEFI
↓
GRUB(่ผๅ
ฅ Kernel / initramfs / ๅๆธ)
↓
Kernel(็กฌ้ซๅๅงๅ、ๆฉๆ driver、ๆชๆก็ณป็ตฑ)
↓
initramfs(็ต RAID / ๅ LVM / ่งฃ้、ๅๆ rootfs)
↓
systemd(ๅๅ target / service、ๆถ้ๆฅๅฟ)
ไธๅๅพๅฏฆ็จ็็ฟๆ ฃ:ๅช่ฆไฝ ่ฆบๅพ「้ๆฉๆ ข」,ๅ ่ท:
systemd-analyze
systemd-analyze blame
systemd-analyze critical-chain
ๅฆๆ systemd ้้็่ตทไพๆญฃๅธธ,ไฝ้ซๆไป็ถ「ๅจ systemd ไนๅๅฐฑๆ ข」, ้ฃๅฐฑ่ฉฒๆ็ฆ้ป็งปๅป Kernel / initramfs(dmesg、็ฃ็ข、RAID/LVM、้ฉ ๅๅๅงๅ)้ฃๆฎต。
๐ฌ ไบๅ็่จๅผๅฐ
๐ฌ ๆณไบคๆตไธไธไฝ ็็ฐๅขๅ?
ๅฆๆไฝ ้ๅฐ「้ๆฉๅกไฝ / ้ๆฉๅพๆ
ข / ๆๅ service ่ตทไธไพ」,ๆญก่ฟๅจ็่จ่ฒผไธ:
systemd-analyze blame
ๆ dmesg / journalctl -b ็้้ต็ๆฎต,ๆๅฏไปฅๅนซไฝ ไธ่ตทๅคๆทๅกๅจๅชไธๆฎต。
๐ ๅปถไผธ้ฑ่ฎ
- ๐ง Linux systemd ๆทฑๅ ฅ่งฃๆ่ๅๅๆต็จ็ฎก็
- ⏱️ Linux Crontab vs systemd timer:ๆ็จๆฉๅถๅฎๆดๆฏ่ผ่ๆไฝณๅฏฆๅ
- ๐ Linux ๆฅ่ช่็จฝๆ ธๅ จๆป็ฅ:auditd / journalctl / rsyslog / ELK / SIEM ๅฎๆดๆๅ
— WWFandy・Linux ็ณป็ตฑ็ญ่จ
ๆฒๆ็่จ:
ๅผต่ฒผ็่จ