FreeBSD 기반이므로 리눅스의 journalctl 대신 커널 메시지 버퍼와 로그 파일을 본다.
dmesg -a
cat /var/log/dmesg.boot
dmesg.boot 는 이번 부팅 과정을 그대로 담고 있어, 어느 장치 초기화 직후에 멈췄는지 드러난다.
주요 로그 위치다.
| 용도 | 파일 |
|---|---|
| 시스템 전체 | /var/log/system/latest.log |
| 부팅 | /var/log/dmesg.boot |
| 인증 | /var/log/audit/latest.log |
| 방화벽 | /var/log/filter/latest.log |
OPNsense 는 로그를 날짜별 디렉터리로 나눠 두므로 /var/log/<category>/ 아래를 본다.
tail -f /var/log/system/latest.log
grep -iE 'error|fail|timeout|watchdog' /var/log/system/latest.log
크래시 덤프가 남았는지도 확인한다.
ls -al /var/crash
NVMe · NIC 초기화에서 멈추는 경우가 잦다.
dmesg | grep -i nvme
dmesg | grep -i igc
smartctl -a /dev/nvme0
ifconfig -a
GUI 의 시스템 튜너블 목록에 값을 넣어 두었는데 실제로는 적용되지 않는 경우가 있다.
sysctl dev.igc.0.eee_disabled
sysctl: unknown oid 'dev.igc.0.eee_disabled'
OID 자체가 없다는 것은 드라이버가 그 sysctl 을 제공하지 않는다 는 뜻이다. 원인은 셋 중 하나다.
igc 가 아니다. ifconfig 와 pciconf -lv 로 실제 드라이버 이름을 확인한다.먼저 실제로 존재하는 이름을 확인한다.
pciconf -lv | grep -B3 -A2 network
sysctl -a | grep -i igc | grep -i eee
여기에도 없으면 값은 그냥 무시되는 죽은 설정이다. 남겨 두면 나중에 "설정했는데 왜 안 되지" 로 시간을 버리므로 목록에서 지운다.
튜너블 목록에 붙는 environment · runtime · boot-time 표시도 함께 봐야 한다.
| 표시 | 의미 |
|---|---|
runtime |
sysctl 로 즉시 바꿀 수 있다 |
boot-time |
부팅 시 로더가 읽는 값. 재부팅해야 적용된다 |
environment |
로더 환경변수로만 존재한다. 대응하는 sysctl 이 없으면 아무 효과가 없다 |
값이 dev.igc.0.eee_disabled 처럼 다른 튜너블 이름을 값으로 갖고 있는 항목은 입력 실수다. 숫자여야 할 자리에 이름이 들어간 것이므로 정리한다.