OpenBSD - 소규모 시스템의 기본 설치 크기 줄이기

OpenBSD - 소규모 시스템의 기본 설치 크기 줄이기

최근 Soekris net4526에 OpenBSD를 설치하려고 시도했지만 64MB 온보드 스토리지가 너무 작았습니다. 가장 작은 구성(bsd 및 baseXX.tgz만 해당)도 맞지 않기 때문에 OpenBSD를 더 작게 만들 수 있는 방법이 있습니까? OpenBSD 3.9를 사용하려고 합니다. 링크 좀 주실 수 있나요?

답변1

좋은 소식은할 수 있는완료되었습니다. 하지만 무엇을 하고 있는지 알아야 하며 openbsd 메일링 리스트에 어떤 도움도 요청할 수 없습니다.

다음을 수행해야 합니다.

  • Soekris보다 더 강력한 빌드 머신
  • 제거할 콘텐츠 목록은 귀하가 기꺼이 타협한 내용에 따라 결정됩니다. (머신을 어떤 용도로 사용할지 지정하지 않았습니다.)

방금 최신 base.tgz 스냅샷을 다운로드했습니다. 크기는 148M입니다. 기지에서 제거할 수 있는 항목에 대한 몇 가지 아이디어는 다음과 같습니다.

  • Perl 없이도 살 수 있다면 Perl을 제거하면 54.5M이 절약됩니다.
  • Perl이 없으면 pkg_* 도구 및 /etc/signify/openbsd-*-pkg.pub 파일을 삭제할 수도 있습니다. fw_update, libexec/security 등과 같은 다른 부분도 제거할 수 있습니다.
  • terminfo 데이터베이스, 5.6M
  • /usr/bin/spell, /usr/bin/deroff (주문에 사용되기 때문에 유지됨) 및 /usr/share/dict는 3.5M을 절약합니다.
  • 트림 영역 정보, 3M
  • /etc/firmware는 2.3M을 절약합니다.
  • 어쩌면 /sbin/isakmpd가 필요하지 않을 수도 있습니다. 이렇게 하면 1.8M이 절약됩니다.
  • /usr/share/man/은 1.3M을 절약합니다(선택한 매뉴얼 페이지는 수동 컬렉션이 아닌 기본 버전에 설치됩니다).
  • 매뉴얼 페이지 없이 /usr/bin/man, /usr/bin/mandoc, /etc/examples/man.conf를 삭제할 수도 있습니다.
  • 3M의 libsqlite도 삭제할 수 있습니다.
  • 발굴, 호스트, nslookup 1.4M 삭제
  • /usr/share/misc는 1.2M을 절약합니다.
  • cvs는 0.7M을 절약합니다
  • /usr/bin/file 및 /etc/magic은 0.6M를 절약합니다.
  • texinfo는 0.5M을 절약합니다
  • /usr/mdec는 0.3M을 절약합니다.
  • /var/sysmerge/etc.tgz는 0.2M를 절약합니다.

이 시점에서 당신은 가까워졌습니다. 아마 사용량이 70M 정도일 테니, 사용하지 않을 것들을 삭제부터 시작해야 합니다. 예를 들어 /usr/sbin에 pppd가 필요합니까? httpd가 필요합니까? 아마도 부팅 등을 설치할 필요가 없을 것입니다. 사용 사례에 따라 이를 신중하게 분류해야 합니다.

시도해 볼 수 있는 또 다른 방법은 -O2 대신 -Os를 사용하여 시스템을 컴파일하는 것입니다. 공간도 절약된다면 확인해 볼 가치가 있습니다. 하지만 참고하세요. Os는아니요OpenBSD에서 잘 테스트된 gcc 코드 경로입니다. 이 작업을 수행하는 동안 컴파일러 오류가 발생하더라도 놀라지 않을 것입니다.

그래서 제가 생각하는 요점은할 수 있는이 프로젝트에 충분한 시간을 투자할 의향이 있다면 완료할 수 있습니다. 오직 당신만이 OpenBSD의 단순한 버전을 만들 것인지 여부를 결정할 수 있습니다. 다시 한번 말씀드리지만, openbsd 메일링 리스트에서 어떤 도움도 기대하지 마세요. 만약 당신이 이 프로젝트에 도움을 요청한다면 사람들은 당신을 비웃을 것입니다.

답변2

틀림없이,flashrd귀하의 시나리오에 맞게 작동해야 합니다.

flashrd는 64MB RAM과 1GB 플래시 메모리로 부팅되며 기본 OpenBSD/i386 또는 Open BSD/amd64 설치를 호스팅합니다. 기본 flashrd 설정에서는 최소 128MB의 RAM을 사용하는 것이 좋습니다.

최신 버전의 OpenBSDwith를 사용해야 합니다.flashrd(현재 위치 5.9) 아무튼 여기 추천합니다.

답변3

라이브러리 크기를 줄이는 데 사용할 수 있는 몇 가지 방법이 있습니다. 나는 시스템에서 실행 파일을 제거하기 전에 항상 이 단계를 수행합니다.

  1. ~56Mb를 절약하려면 라이브러리 분석 데이터를 제거하세요.

    rm /target/usr/lib/lib*_p.a
    
  2. 공유 객체에서 기호 테이블을 제거합니다.

    strip /target/usr/lib/lib*.so.*
    

예를 들어 libc.so.86.0총 3Mb이고 750kb만 제거됩니다.

이는 [gdb가 설치되지 않은 상태에서] 유용성에 전혀 영향을 미치지 않습니다.

관련 정보