바뀜

둘러보기로 가기 검색하러 가기
27,735 바이트 추가됨 ,  2018년 11월 24일 (토) 21:11
== 서문 ==
=== Buster? <ref>https://en.wikipedia.org/wiki/Debian#Code_names</ref> ===데비안의 코드네임(code name)은 전통적으로 애니메이션 토이스토리(Toy Story)에 등장하는 캐릭터의 이름을 사용합니다. 이러한 코드네임을 사용하는 이유는 [https://en.wikipedia.org/wiki/Bruce_Perens Bruce Perens]가 Pixar사에서 일하는 동안에 데비안의 초기 개발에 참여했기 때문입니다. 데비안 10의 코드네임인 [http://pixar.wikia.com/wiki/Buster Buster]는 애니메이션 Toy Story 시리즈에 등장하는 강아지입니다.
* [https://www.youtube.com/watch?v=09CMffBjM_Q (유튜브 동영상)Toy story 2 Buster finds Woody]
참고로 데비안 10(buster)은 2019년 6월경에 릴리스될 예정입니다. 애니메이션 [http://pixar.wikia.com/wiki/Toy_Story_4 토이스토리4]가 2019년 6월에 개봉<ref>http://pixar.wikia.com/wiki/Toy_Story_4</ref>하는데 이에 맞춰서 데비안 10을 릴리스하려는 게 아닐까 싶습니다.
=== 데비안 10(buster) 설치 방법에 대한 안내 ===
=== iso 파일의 무결성 검증 ===
다운로드한 iso 파일이 서버에 있는 iso 파일과 동일한지 무결성(integrity)을 검증해볼 필요가 있습니다. 왜냐하면 다운로드를 하면서 오류가 발생할 수도 있기 때문입니다. 물론 우리가 다운로드한 iso 파일은 대부분 원본과 동일할 것 입니다동일합니다. 하지만 꼼꼼해서 나쁠 것은 없습니다. 시스템 관리자가 갖춰야 할 덕목 중의 하나는 꼼꼼함이 아닐까 싶습니다.
iso 파일의 무결성을 검증하는 방법을 설명하기에 앞서 우리가 사용하는 컴퓨터 환경에서 오류의 검출(detection) 및 정정(correction)은 어떻게 할까요? 주로 패리티 비트(parity bit) 또는 해밍 코드(hamming code)를 사용합니다.
레이드 레벨 5(RAID-5), 레이드 레벨 6(RAID-6)에서 패리티 비트를 사용하여 오류를 검출합니다. 또한 CPU와 입출력 장치의 사이에서 통신을 중재하는 입출력 모듈(I/O module)도 오류를 검출하기 위해서 패리티 비트를 사용합니다. <ref> 신종홍. 컴퓨터 구조와 원리 2.0: 비주얼 컴퓨터 아키텍처(2013). 서울: 한빛미디어. P412-413, P429 ,P431</ref>
해밍 코드는 오류의 검출 뿐만 아니라 오류의 수정도 가능하기 때문에 ECC(Error-Correcting Code) 메모리에서도 사용합니다. ECC 메모리를 사용할 경우에는 일반 메모리와는 달리 오류의 검출 및 수정을 할 수 있습니다. 또한 레이드 레벨 2(RAID-2)에서도 오류의 검출 및 수정을 하기 위해서 해밍 코드를 사용합니다. <ref> 신종홍. 컴퓨터 구조와 원리 2.0: 비주얼 컴퓨터 아키텍처(2013). 서울: 한빛미디어. P408 </ref>
파일에 대한 무결성을 검증하기 위해서는 해시(hash) 함수를 사용합니다. 서버에 있는 iso 파일과 우리가 다운로드한 iso 파일의 해시 값이 같다면 올바른 파일이므로 안심하고 사용해도 됩니다. 만약 해시 값이 서로 일치하지 않다면 iso 파일이 손상된 것이므로 다시 다운로드 해야합니다. 참고로 해시 값은 메시지 다이제스트(message digest) 또는 핑거프린트(fingerprint)라고도 부릅니다.
리눅스에서 해시 값을 검증하는 도구로 md5sum을 사용합니다. md5sum은 데비안에 기본적으로 내장되어 있기 때문에 별도로 설치할 필요는 없습니다. md5sum은 MD5라는 해시 알고리즘을 사용합니다. 참고로 MD5의 MD는 Message Digest를 의미하며 해시 알고리즘에는 MD5 뿐만 아니라 MD4, SHA 등도 있습니다.
서버에 있는 iso 파일과 다운로드한 iso 파일의 해시 값이 서로 같으므로 해당 파일을 안심하고 사용해도 됩니다.
참고로 해시함수는 시스템의 무결성(integrity)을 점검하는 트립와이어(tripwire)에서도 사용합니다. 정보 보안에서 중요한 목표 중의 하나는 무결성입니다. 트립와이어를 사용하면 시스템에 침입한 공격자가 파일을 변경했는지를 알아차릴 수 있습니다. 왜냐하면 트립와이어는 시스템의 파일들을 시스템의 파일들에 대한 해시 값을 가지고 있기 때문입니다. 만약 공격자가 파일을 변조했다면 해당 파일의 해시 값이 변경되기 때문에 파일이 변조되었음을 알아차릴 수 있습니다. 유사하게 안티 바이러스(antivirus) 프로그램도 해시 함수를 통해 시스템의 바이러스를 검출합니다.
사용하거나 리눅스에서는 dd 명령어를 사용해서 이미지를 구우면 됩니다. Win32 Disk Imager나 dd 명령어의 구체적인 사용법은 생략합니다.
== 레이드(RAID) 설정 ==이 항목은 절(節)은 아래에 해당하는 경우 건너 뛰어도 경우라면 건너뛰어도 됩니다.
* 일반 데스크톱·노트북 사용자* 서버에 이미 (요즘에는 서버가 아닌 일반 데스크톱에서도 레이드를 설정한 경우사용할 수 있지만 이는 특수한 경우라 생각하고 예외로 하겠습니다.)
=== 펌웨어(firmware) 업그레이드 ===이 절(節)에서는 레이드 컨트롤러 카드의 펌웨어에 대해 설명합니다. 서버(주로 1U, 2U 등)에 데비안을 새로 설치하기 전에 하드웨어(레이드 컨트롤러 카드, BIOS 등)의 펌웨어를 최신 버전으로 업그레이드하는 것을 권장합니다. 오래 전에 서버를 구입했다면 레이드 컨트롤러 카드의 펌웨어는 최신 버전이 아닐 가능성이 매우 높습니다. 단순한 테스트용 서버를 운영하고자 한다면 굳이 레이드 컨트롤러 카드의 펌웨어를 최신 버전으로 업그레이드할 필요는 없습니다. 물론 최신 버전의 펌웨어를 적용하지 않는다고 해서 시스템에서 곧바로 문제가 발생하지는 않습니다. 하지만 실제 서비스를 운영하기 위한 서버라면 레이드 컨트롤러의 펌웨어를 최신 버전으로 유지할 필요가 있습니다. 왜냐하면 최신 펌웨어를 적용함으로써 레이드라는 기술을 좀 더 안정적으로 사용할 수 있기 때문입니다. 이처럼 시스템을 안정적으로 유지하려면 작은 것에도 신경 쓰는 꼼꼼함이 필요합니다. === 레이드(RAID) 설정 ===레이트 컨트롤러 카드(예 [https://h20195.www2.hpe.com/v2/getpdf.aspx/c04111713.pdf HP P410iP410])가 장착된 서버 환경에서 레이드를 설정(레이드-레벨 0, 레이드-레벨 1, 레이드-레벨 5, 레이드-레벨 10 등)합니다. 물론 레이드 컨트롤러 카드가 없어도 소프트웨어적으로 레이드를 구현할 수 있지만 추천하지는 않습니다. 왜냐하면 하드웨어 보다 안정성이 떨어지기 때문입니다. 또한 메인보드가 메인보드에 내장된 레이드 컨트롤러(예 [https://h20195.www2.hpe.com/v2/getpdf.aspx/c04168333.pdf HP B120i])를 제공한다면 가 있다면 별도의 레이드 컨트롤러 카드가 없더라도 레이드 기능을 사용할 수도 있습니다. 하지만 안정성과 보다 향상된 기능을 원한다면 별도의 레이드 컨트롤러 카드를 장착하는 것을 권장합니다.
레이드를 설정하지 않았다면 서버 제조사(HP, Dell 등) 또는 레이드 컨트롤러 카드의 매뉴얼을 참고하여 레이드를 설정합니다. 이 항목에서 레이드 설정에 대한 구체적인 설명은 생략합니다. 왜냐하면 레이드 컨트롤러 카드의 제조사 마다 레이드 설정 방법이 다르기 때문입니다.
레이드를 설정할 때 안정성이 높은 레이드-레벨 10을 주로 사용합니다. 여기서 주의할 점은 레이드는 백업(backup)이 아니라는 것입니다. 단지 레이드는 고가용성(high availability)를 제공할 뿐입니다. 중요한 시스템이라면 반드시 백업 정책을 수립해야 합니다.
== 인스톨러 부트 메뉴 ==
== 네트워크 설정==만약 브로드컴사의 무선랜/유선랜을 사용한다면 아래와 유사한 화면이 나타납니다. 이 경우에는 [[데비안 10(호스트 이름 설정buster) ==설치#브로드컴사의 펌웨어 설치|브로드컴사의 펌웨어 설치 방법]]을 참고해주세요.[[File:20180728_230730.jpg|800px]]  저는 제 메인 노트북은 브로드컴사의 무선랜/유선랜을 사용하지 않으며, DHCP를 사용하고 있어서 있기 때문에 네트워크는 자동으로 설정되었습니다. 따라서 만약 저와 유사한 환경이라면 네트워크 설정 단계에서는 호스트 이름만 설정하면 됩니다.
호스트 이름은 'debian-buster'로 설정했습니다. 호스트 이름은 아래의 조합으로 구성하는 것이 좋습니다. 되도록이면 알파벳 대문자는 사용하지 않는 것이 좋습니다.
== 계정 설정 ==
 
=== root 비밀번호 설정 ===
루트(root·최고 관리자) 계정에서 사용할 비밀번호를 입력합니다.
== 파티션 설정 ==
[[File:9_(Debian10_install)_Set-partitions.png]]
 
파티션은 특수한 경우가 아니라면 수동으로 설정하지 않고 '자동 - 디스크 전체 사용'으로 설정해도 무방합니다.
그러면 특수한 경우는 언제일까요? 시스템을 조금 더 안정적으로 운영하고자 할때가 아닐까 싶습니다.
/var/lib/mysql 파티션을 별도로 생성했다면 /var/lib/mysql의 데이터는 안전하게 보존할 수 있습니다. 물론 디스크 자체가 물리적으로 손상된 경우라면 파티션 분할로 데이터를 보존할 수는 없습니다.
중요한 데이터를 다뤄야 한다면 반드시 백업 정책을 세워야 합니다. 여담이지만 '운영에 실패한 관리자는 용서할 수 있어도 백업에 실패한 관리자는 용서할 수 없다.'라는 말도 있지요.
 
파티션을 수동으로 설정하여 별도의 파티션들을 만들 경우의 단점은 관리의 효율성이 떨어지거나 디스크의 용량 낭비가 발생할 수 있다는 것 입니다. (용량 낭비가 걱정이라면 LVM을 사용해서 파티션 용량을
늘리거나 줄일 수도 있습니다.) 반면에 루트(/) 파티션을 통째로 사용하면 관리상 관리가 편합니다. 실제로 현업에서도 swap(가상 메모리)을 설정하고 루트(/) 파티션에 swap을 제외한 나머지 디스크 용량을 통째로 할당합니다.
파티션 설정은 시스템 관리자의 주관이 많이 반영되는 부분입니다. 자신이 시스템을 잘 관리할 수 있는 방법으로 파티션을 설정하는 게 가장 좋다고 생각합니다.
[[File=== 최대 절전 모드(hibernation)를 사용할 경우<ref>https:9_//itsfoss.com/swap-size/</ref> ===또한 노트북이나 데스크톱에서 최대 절전 모드(hibernation)를 사용하고자 할 경우에도 수동으로 파티션을 설정해야 합니다.왜냐하면 최대 절전 모드에서는 메모리의 상태를 보조 기억 장치인 디스크의 스왑(Debian10_installswap)_Set에 저장하기 때문입니다. 따라서 최대 절전 모드를 사용하고자 한다면 스왑 파티션의 용량을 넉넉하게 설정해야 합니다. 참고로 아래 명령어를 입력하면 최대 절전 모드로 진입할 수 있습니다. <pre>$ sudo systemctl hibernate</pre>  최대 절전 모드를 사용할 경우 스왑 파티션의 용량을 구하는 공식은 다음과 같습니다.  <pre>스왑 파티션 용량 = 주기억장치 용량 + 주기억장치 용량의 제곱근 (단, 최대 절전 모드를 사용할 경우)</pre> 아래의 표는 위 공식을 적용한 것입니다. {| class="wikitable" border="1" style="text-partitions.png]]align: center"|-! 주기억장치 용량! 스왑의 용량(최대 절전 모드를 사용할 경우)|-| 1GB| 2GB|-| 2GB| 3GB|-| 3GB| 5GB|-| 4GB| 6GB|-| 6GB| 8GB|-| 8GB| 11GB|-| 12GB| 15GB|-| 16GB| 20GB|}
파티션 설정 방법(자동 또는 수동)을 정한 후 엔터 키를 눌렀다면, 이제 파티션할 디스크를 선택한 후 엔터 키를 누릅니다.
[[File:9-1_(Debian10_install)_Select-a_disk.png]]
'파티션 나누기를 마치고 바뀐 사항을 디스크에 쓰기'를 선택하고 엔터 키를 누릅니다. 스왑(swap)은 가상 메모리(virtual memory)로 사용됩니다. 만약 시스템의 부하가 커서 메모리(주기억장치)를 많이 사용할 경우 스왑을 사용합니다. 즉 가상 메모리를 사용함으로써 사용자는 주기억장치의 용량이 확장된 것 처럼 느낄 수 있습니다.
 
저는 최대 절전 모드(hibernation)는 사용하지 않을 것이므로 스왑 파티션의 용량은 약 1GB 정도이면 충분합니다. 만약 최대 절전 모드를 사용하고자 한다면, [[데비안 10(buster) 설치#.EC.B5.9C.EB.8C.80_.EC.A0.88.EC.A0.84_.EB.AA.A8.EB.93.9C.28hibernation.29.EB.A5.BC_.EC.82.AC.EC.9A.A9.ED.95.A0_.EA.B2.BD.EC.9A.B0.5B11.5D|앞에서 설명한 내용]]을 바탕으로 스왑의 용량을 넉넉하게 설정해 주세요.
[[File:9-3_(Debian10_install)_Write-a_disk.png]]
== 데비안 설치 ==
 
=== 베이스 시스템 설치 ===
==== 선택 ====
설치할 소프트웨어를 선택합니다. 저는 GUI는 안쓰고 이 설치 단계에서 콘솔 환경만 사용할 설치할 것이므로 'SSH server'와 '표준 시스템 유틸리티'를 선택했습니다.
[[File:12-2_(Debian10_install)_Select-sw.png]]
GUI(Graphic User Interface)를 사용하려면 데비안 데스크톱 환경(Debian desktop environment) 항목에서 사용하기 원하는 데스크톱 환경을 키보드의 스페이스 바(space bar)를 눌러서 선택하면 됩니다.
이때 데스크톱 환경을 반드시 1개만 선택할 필요는 없습니다. 왜냐하면 데스크톱 환경을 여러 개 선택하여 설치하더라도, 리눅스로 부팅한 후 GUI로 로그인할 때 데스크톱 환경을 선택할 수 있기 때문입니다.
 
 
그렇다면 어떤 데스크톱 환경을 사용하면 좋을까요?
 
 
정답은 없습니다. 왜냐하면 개인의 주관이 많이 반영되기 때문입니다. 본인이 사용하기 편한 데스크톱 환경을 설치하는 게 좋습니다.
 
자신에게 맞는 데스크톱 환경을 찾고 싶다면 아래의 방법을 추천합니다.
* GNOME, Xfce, KDE, Cinnamon, MATE, LXDE, LXQt를 모두 설치해서 직접 사용해보기.
* 각 데스크톱 환경의 스크린숏(screenshot)을 참고해보기. [[File:Screenshot_20180714_161147.png|thumb|KDE 스크린숏]]
* [https://www.slant.co/versus/1123/1124/~mate_vs_gnome-3 Slant]에서 각 데스크톱 환경을 비교해보기.
 
'설치할 소프트웨어 선택'에서 만약 상위의 '데비안 데스크톱 환경(Debian desktop environment)'만 선택하고, 하위의 GNOME, Xfce, KDE, Cinnamon, MATE, LXDE, LXQt 중에서 아무것도 선택하지 않으면 그놈(GNOME)이 기본적으로 설치됩니다.
 
===== 콘솔 환경만 설치해서 수동으로 필요한 패키지들만 설치하는 경우 =====
 
[[File:Screenshot_2018-08-04_17-25-38.png|thumb|i3wm 스크린숏]]
저는 GUI를 사용할 때도 데비안 데스크톱 환경(GNOME, Xfce, KDE, Cinnamon, MATE, LXDE, LXQt) 중에서
아무 것도 선택하지 않고 'SSH 서버'와 '표준 시스템 유틸리티'만 선택하여 우선 콘솔 환경만 설치합니다. 이렇게 설치하는 이유는 다음과 같습니다.
 
* 자주 사용하지 않는 패키지들을 설치하지 않고, 주로 사용하는 필요한 패키지들만 설치하기 위해서입니다.
* 데비안 데스크톱 환경 대신에 윈도우 매니저([https://i3wm.org/ i3wm])를 사용하기 위해서입니다.
 
콘솔 환경으로 데비안 설치를 완료한 후에 [https://i3wm.org/ i3wm] 및 제가 주로 사용하는 패키지들을 'apt-get install' 명령을 이용해서 설치합니다. 참고로 제가 설치하는 패키지들은 다음과 같습니다.
 
<pre>
sudo parcellite libwebkitgtk-3.0-0 libjavascriptcoregtk-3.0-0 gvfs gcc git vim make tmux tree unzip nmap tcpdump curl dstat ethtool dnsutils i3 lightdm ibus ibus-hangul arandr firefox-esr firefox-esr-l10n-ko fonts-nanum* alsa-utils pulseaudio pavucontrol lxappearance lxterminal scrot ranger chromium chromium-l10n pluma libreoffice-wiki-publisher libreoffice-writer libreoffice-calc libreoffice-impress libreoffice-gtk3 libreoffice-help-common libreoffice-help-en-us libreoffice-help-ko libreoffice-l10n-ko hplip-gui nitrogen numix-gtk-theme numix-icon-theme breeze-cursor-theme lshw redshift redshift-gtk
</pre>
==== 설치 ====
[[File:12-3_(Debian10_install)_Get-files.png]]
 
=== 부트로더(GRUB) 설치 ===
https://gyires.inf.unideb.hu/GyBITT/20/images/ch2-mbr.png
 
MBR은 디스크의 파티션에 대한 정보를 가지고 있습니다.
00000200
</syntaxhighlight>
 
참고로 제 시스템의 파티션 정보는 다음과 같습니다.
GRUB 설치가 완료되면 모든 설치 작업이 끝납니다미디어(USB, CD)를 컴퓨터에서 제거한 후에 '<계속>'을 눌러서 리부팅합니다. 버추얼박스 환경에서 데비안을 설치했다면 iso 파일을 언마운트(unmmount) 할 필요없이 그냥 '<계속>'을 누르면 리부팅합니다됩니다.
[[File:14_(Debian10_install)_Finish.png]]
=== 리부팅 ===
리부팅하면 GRUB를 볼 수 있습니다. 첫 번째의 'Debian GNU/Linux'로 부팅하면 됩니다. 만약 데비안을 데스크톱 환경으로 설치했다면 그래픽이 추가된 예쁜 GRUB 화면을 볼 수 있습니다.
[[File:15_(Debian10_install)_Grub.png]]
 
=== 로그인 ===
루트 또는 사용자 계정으로 로그인 합니다. 첫 로그인할 때 캡처를 하지 못하고 나중에 캡처를 해서 아래와 같이 'Last login'에 접속 정보가 기록되었습니다.
로그인까지 성공했으니 이제 buster를 사용하면 됩니다. Buster라는 [http://pixar.wikia.com/wiki/Buster Buster]라는 강아지를 앞으로 잘 다뤄주세요. Linux world~!
[[File:17_(Debian10_install)_First_login.png]]
만약 데비안 설치 중에 문제가 발생한다면 [https://debianusers.or.kr/forum/7 데비안 설치 포럼]에 질문을 남겨주세요. 질문을 남기시기 전에는
우선 구글링을 해주세요. 구글링을 통해 대부분의 궁금한 점들을 해결할 수 있습니다. 만약 구글링으로도 문제가 해결이 안된다면 자세한 상황(오류 메시지, 증상, 시스템 환경 등)을 [https://debianusers.or.kr/forum/7 데비안 설치 포럼]에 남겨주시면 감사하겠습니다.
 
 
== 부록 A. 트러블 슈팅(trouble shooting) ==
이 절(節)에서는 데비안 설치 과정에서 발생한 문제의 원인 및 해결 방법을 설명합니다.
 
=== 네트워크 설정 단계 ===
 
==== 없는 펌웨어 파일은: b43/ucode15.fw ====
세컨드 노트북([http://www.dell.com/content/topics/segtopic.aspx/laptop-inspiron-1564?c=us&l=en&cs=19 Dell inspiron 1564])에 데비안(buster alpha3)을 설치할 때 아래와 같은 문제가 발생했습니다.
 
[[File:20180728_230730.jpg|800px]]
 
이 노트북은 무선랜으로 브로드컴(Broadcom)사의 BCM4312를 사용하며, 유선랜으로 리얼텍(Realtek)사의 RTL8101/2/6E를 사용하고 있습니다.
 
<pre>
westporch@dell-laptop:~$ sudo lshw -short | grep network
/0/100/1c.1/0 wlan0 network BCM4312 802.11b/g LP-PHY
/0/100/1c.5/0 enp4s0 network RTL8101/2/6E PCI Express Fast/Gigabit Ethernet controller
</pre>
 
<syntaxhighlight lang="text" highlight="16,17">
westporch@dell-laptop:~$ lspci
00:00.0 Host bridge: Intel Corporation Core Processor DRAM Controller (rev 12)
00:02.0 VGA compatible controller: Intel Corporation Core Processor Integrated Graphics Controller (rev 12)
00:16.0 Communication controller: Intel Corporation 5 Series/3400 Series Chipset HECI Controller (rev 06)
00:1a.0 USB controller: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller (rev 06)
00:1b.0 Audio device: Intel Corporation 5 Series/3400 Series Chipset High Definition Audio (rev 06)
00:1c.0 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 1 (rev 06)
00:1c.1 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 2 (rev 06)
00:1c.5 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 6 (rev 06)
00:1d.0 USB controller: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller (rev 06)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev a6)
00:1f.0 ISA bridge: Intel Corporation HM55 Chipset LPC Interface Controller (rev 06)
00:1f.2 SATA controller: Intel Corporation 5 Series/3400 Series Chipset 4 port SATA AHCI Controller (rev 06)
00:1f.3 SMBus: Intel Corporation 5 Series/3400 Series Chipset SMBus Controller (rev 06)
00:1f.6 Signal processing controller: Intel Corporation 5 Series/3400 Series Chipset Thermal Subsystem (rev 06)
03:00.0 Network controller: Broadcom Limited BCM4312 802.11b/g LP-PHY (rev 01)
04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8101/2/6E PCI Express Fast/Gigabit Ethernet controller (rev 02)
ff:00.0 Host bridge: Intel Corporation Core Processor QuickPath Architecture Generic Non-core Registers (rev 02)
ff:00.1 Host bridge: Intel Corporation Core Processor QuickPath Architecture System Address Decoder (rev 02)
ff:02.0 Host bridge: Intel Corporation Core Processor QPI Link 0 (rev 02)
ff:02.1 Host bridge: Intel Corporation 1st Generation Core i3/5/7 Processor QPI Physical 0 (rev 02)
ff:02.2 Host bridge: Intel Corporation 1st Generation Core i3/5/7 Processor Reserved (rev 02)
ff:02.3 Host bridge: Intel Corporation 1st Generation Core i3/5/7 Processor Reserved (rev 02)
</syntaxhighlight>
 
 
펌웨어를 설치하지 않은 채 데비안을 설치했다면, 부팅할 때마다 아래와 같은 내용이 /var/log/message 파일에 기록됩니다.
 
<pre>
Aug 11 22:36:35 dell-laptop kernel: [ 12.944519] b43 ssb0:0: Direct firmware load for b43/ucode15.fw failed with error -2
Aug 11 22:36:35 dell-laptop kernel: [ 12.944531] b43 ssb0:0: Direct firmware load for b43/ucode15.fw failed with error -2
Aug 11 22:36:35 dell-laptop kernel: [ 12.944541] b43 ssb0:0: Direct firmware load for b43-open/ucode15.fw failed with error -2
Aug 11 22:36:35 dell-laptop kernel: [ 12.944550] b43 ssb0:0: Direct firmware load for b43-open/ucode15.fw failed with error -2
</pre>
 
===== 원인 =====
데비안 설치 이미지(ISO) 파일은 기본적으로 브로드컴사의 펌웨어를 포함하고 있지않습니다. 즉 데비안 10(buster)뿐만 아니라 데비안의 다른 모든 버전도 브로드컴사의 펌웨어를 포함하고 있지 않습니다. 그래서 데비안을 설치할 때 "없는 펌웨어를 이동식 미디어에서 읽어들이겠습니까?"라는 메시지가 출력되는 것입니다.
 
===== 해결 방법 =====
브로드컴사의 펌웨어를 직접 설치해야 합니다.
 
====== 브로드컴사의 펌웨어 설치 ======
"없는 펌웨어를 이동식 미디어에서 읽어들이겠습니까?"라는 물음에 '<아니요>'를 선택했습니다. 펌웨어를 이동식 미디어에서 읽어들이지 않고, 데비안 설치를 완료한 후에 브로드컴사의 펌웨어를 설치했습니다(펌웨어를 설치하지 않아도 데비안을 설치할 수 있습니다).
 
우선 인터넷이 되는 컴퓨터에서 펌웨어를 [http://media-cdn.ubuntu-de.org/forum/attachments/04/32/2480236-Broadcom_Firmware.tar.gz 다운로드] <ref>https://ubuntuforums.org/showthread.php?t=2306200&p=13406050#post13406050</ref>한 후 USB에 저장합니다. 이제 이 USB를 브로드컴사의 펌웨어를 설치할 컴퓨터에 꽂고 아래 작업을 진행합니다.
 
 
펌웨어 디렉터리를 생성합니다.
 
<pre>
westporch@dell-laptop:~$ sudo mkdir -p /lib/firmware
</pre>
 
이제 USB를 마운트합니다.
 
<pre>
westporch@dell-laptop:~$ sudo mount /dev/sdb /mnt/usb
</pre>
 
펌웨어 파일의 압축을 /lib/firmware 디렉터리에 해제합니다.
 
<pre>
westporch@dell-laptop:~$ sudo tar xvf /mnt/usb/2480236-Broadcom_Firmware.tar.gz -C /lib/firmware
</pre>
 
마지막 단계는 리부팅입니다. 리부팅을 할 때 b43 모듈을 커널에 로드됩니다.
 
<pre>
westporch@dell-laptop:~$ sudo reboot
</pre>
 
 
====== 브로드컴사의 펌웨어 설치 확인 ======
펌웨어가 제대로 설치되었는지 확인해 보겠습니다.
 
''lsmod | grep b43'' 명령으로 b43 모듈이 커널에 로드되었음을 확인할 수 있습니다.
 
<syntaxhighlight lang="text" highlight="2">
westporch@dell-laptop:/var/log$ lsmod | grep b43
b43 454656 0
bcma 61440 1 b43
mac80211 827392 1 b43
cfg80211 774144 2 b43,mac80211
rng_core 16384 1 b43
ssb 81920 1 b43
mmc_core 172032 2 b43,ssb
</syntaxhighlight>
 
또한 /var/log/message에서도 펌웨어가 로딩되었음을 확인할 수 있습니다.
 
<pre>
Aug 11 22:46:43 dell-laptop kernel: [ 15.605055] b43 ssb0:0: firmware: direct-loading firmware b43/ucode15.fw
Aug 11 22:46:43 dell-laptop kernel: [ 15.766157] b43 ssb0:0: firmware: direct-loading firmware b43/lp0initvals15.fw
Aug 11 22:46:43 dell-laptop kernel: [ 15.777418] b43 ssb0:0: firmware: direct-loading firmware b43/lp0bsinitvals15.fw
</pre>
 
 
==== 없는 펌웨어 파일은: iwlwifi-6000g2b-6.ucode ====
[https://ark.intel.com/products/66890/Intel-Centrino-Advanced-N-6235-Dual-Band Intel Corporation Centrino Advanced-N 6235](무선랜)을 사용할 경우에 '없는 펌웨어 파일은: iwlwifi-6000g2b-6.ucode'이라는 메시지가 발생합니다.
 
"없는 펌웨어를 이동식 미디어에서 읽어들이겠습니까?"라는 물음에 '<아니요>'를 선택합니다. 펌웨어를 이동식 미디어에서 읽어들이지 않고, 데비안 설치를 완료한 후에 해당 펌웨어를 설치하면 됩니다(펌웨어를 설치하지 않아도 데비안을 설치할 수 있습니다).
 
 
제 메인 노트북 (Samsung NT900X4C-A58)에 데비안(buster alpha3)을 설치할 때, 네트워크 설정 부분에서 아래 사진과 같은 문제가 발생했습니다.
 
[[File:20180819_214050.jpg|800px]]
 
윈도우10 환경에서 버추얼박스에 데비안을 설치할 때는 위 문제는 발생하지 않습니다. 하지만 ISO 파일을 구운 CD/DVD 또는 USB로 컴퓨터(노트북)에서 자체적으로 부팅하여 데비안을 설치할 때 위와 같은 문제가 발생합니다. 왜냐하면 데비안 설치 ISO 파일 자체에 [https://ark.intel.com/products/66890/Intel-Centrino-Advanced-N-6235-Dual-Band Intel Corporation Centrino Advanced-N 6235](무선랜)의 펌웨어(iwlwifi-6000g2b-6.ucode)를 포함하고 있지 않기 때문입니다.
 
반면에 윈도우10은 [https://ark.intel.com/products/66890/Intel-Centrino-Advanced-N-6235-Dual-Band Intel Corporation Centrino Advanced-N 6235] 드라이버(펌웨어)를 포함하고 있습니다. 따라서 윈도우10 환경에서 버추얼박스를 이용하여 데비안을 설치할 때, 펌웨어(iwlwifi-6000g2b-6.ucode)가 없다는 메시지는 발생하지 않습니다(예를 들어 버추얼박스에서 해당 가상머신의 네트워크 설정을 '브리지 어댑터'로 설정한 경우).
 
 
아래의 실행 결과는 데비안을 설치고나서, 네트워크 장치의 펌웨어를 설치한 후에 확인한 제 메인 노트북의 네트워크 장치 정보입니다.
<syntaxhighlight lang="text" highlight="2">
westporch@nt900x4c-a58:~$ sudo lshw -short | grep network
/0/100/1c/0 wlp1s0 network Centrino Advanced-N 6235
/0/100/1c.3/0 enp2s0 network RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
</syntaxhighlight>
 
<syntaxhighlight lang="text" highlight="13">
westporch@nt900x4c-a58:~$ lspci
00:00.0 Host bridge: Intel Corporation 3rd Gen Core processor DRAM Controller (rev 09)
00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09)
00:16.0 Communication controller: Intel Corporation 7 Series/C216 Chipset Family MEI Controller #1 (rev 04)
00:1b.0 Audio device: Intel Corporation 7 Series/C216 Chipset Family High Definition Audio Controller (rev 04)
00:1c.0 PCI bridge: Intel Corporation 7 Series/C216 Chipset Family PCI Express Root Port 1 (rev c4)
00:1c.3 PCI bridge: Intel Corporation 7 Series/C216 Chipset Family PCI Express Root Port 4 (rev c4)
00:1c.4 PCI bridge: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 5 (rev c4)
00:1d.0 USB controller: Intel Corporation 7 Series/C216 Chipset Family USB Enhanced Host Controller #1 (rev 04)
00:1f.0 ISA bridge: Intel Corporation HM75 Express Chipset LPC Controller (rev 04)
00:1f.2 SATA controller: Intel Corporation 7 Series Chipset Family 6-port SATA Controller [AHCI mode] (rev 04)
00:1f.3 SMBus: Intel Corporation 7 Series/C216 Chipset Family SMBus Controller (rev 04)
01:00.0 Network controller: Intel Corporation Centrino Advanced-N 6235 (rev 24)
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 06)
03:00.0 USB controller: Renesas Technology Corp. uPD720202 USB 3.0 Host Controller (rev 02)
</syntaxhighlight>
 
 
만약 펌웨어를 설치하지 않은 채 데비안을 설치했다면, 해당 펌웨어가 설치될 때까지 부팅할 때마다 아래와 같은 내용이 /var/log/message 파일에 기록됩니다.
 
<pre>
Aug 19 22:08:01 nt900x4c kernel: [    4.010499] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-6000g2b-6.ucode failed with error -2
</pre>
 
===== 해결 방법 =====
[https://ark.intel.com/products/66890/Intel-Centrino-Advanced-N-6235-Dual-Band Intel Corporation Centrino Advanced-N 6235](무선랜)의 펌웨어를 직접 설치해야 합니다.
 
====== 펌웨어 설치 ======
firmware-iwlwifi 패키지는 정보는 https://packages.debian.org/buster/firmware-iwlwifi 에서 확인 및 다운로드를 할 수 있습니다.
non-free 이므로 /etc/apt/sources.list를 아래처럼 수정합니다.
 
<syntaxhighlight lang="diff">
#
 
# deb cdrom:[Debian GNU/Linux buster-DI-alpha3 _Buster_ - Official Snapshot amd64 DVD Binary-1 20180612-18:53]/ buster contrib main
 
# deb cdrom:[Debian GNU/Linux buster-DI-alpha3 _Buster_ - Official Snapshot amd64 DVD Binary-1 20180612-18:53]/ buster contrib main
 
- deb http://ftp.kaist.ac.kr/debian/ buster main
+ deb http://ftp.kaist.ac.kr/debian/ buster main non-free
deb-src http://ftp.kaist.ac.kr/debian/ buster main
 
deb http://security.debian.org/debian-security buster/updates main contrib
deb-src http://security.debian.org/debian-security buster/updates main contrib
</syntaxhighlight>
 
apt-get update를 실행합니다.
 
<pre>
westporch@nt900x4c:~$ sudo apt-get update
</pre>
 
이제 [https://packages.debian.org/buster/firmware-iwlwifi firmware-iwlwifi]를 설치합니다<ref>https://www.linuxquestions.org/questions/debian-26/how-to-provide-non-free-firmware-files-to-the-debian-jessie-installer-4175542680/#post5362827</ref>.
 
<pre>
westporch@nt900x4c:~$ sudo apt-get install firmware-iwlwifi
</pre>
 
리부팅을 합니다. 리부팅을 하는 이유는 해당 펌웨어를 로드하기 위해서입니다.
 
<pre>
westporch@nt900x4c:~$ sudo reboot
</pre>
 
====== 펌웨어 설치 확인 ======
펌웨어가 제대로 설치되었다면 ip addr 명령을 입력했을 때 무선랜(wlp1s0) 장치를 확인할 수 있습니다. 아직 무선랜(wlp1s0)을 설정하지 않았기 때문에 링크 다운(link down) 상태 입니다.
참고로 이더넷(enp2s0)과 무선랜(wlp1s0)의 맥 주소(mac address)에서 각각 3개의 옥텟은 비공개로 하였습니다.
 
<syntaxhighlight lang="text" highlight="10,11">
westporch@nt900x4c-a58:~$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether e8:03:9a:**:**:** brd ff:ff:ff:ff:ff:ff
inet 192.168.1.90/24 brd 192.168.1.255 scope global enp2s0
valid_lft forever preferred_lft forever
3: wlp1s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether c4:85:08:**:**:** brd ff:ff:ff:ff:ff:ff
</syntaxhighlight>
 
리부팅 후에 iwlwifi 모듈이 로드 되었는지 확인합니다.
 
<syntaxhighlight lang="text" highlight="2,3">
westporch@nt900x4c-a58:~$ lsmod | grep iwlwifi
iwlwifi 225280 1 iwldvm
cfg80211 774144 3 iwldvm,iwlwifi,mac80211
</syntaxhighlight>
 
또한 /var/log/message를 확인했을 때 아래 메시지를 볼 수 있다면, 펌웨어가 제대로 설치된 것입니다.
 
<syntaxhighlight lang="text" highlight="3">
Aug 19 22:29:22 nt900x4c kernel: [ 4.157755] iwlwifi 0000:01:00.0: Detected Intel(R) Centrino(R) Advanced-N 6235 AGN, REV=0xB0
(..생략..)
Aug 19 22:29:22 nt900x4c kernel: [ 3.987498] iwlwifi 0000:01:00.0: firmware: direct-loading firmware iwlwifi-6000g2b-6.ucode
Aug 19 22:29:22 nt900x4c kernel: [ 3.987783] iwlwifi 0000:01:00.0: loaded firmware version 18.168.6.1 op_mode iwldvm
</syntaxhighlight>
 
이제 ‘/etc/apt/sources.list’를 원상태로 복구합니다.
 
<syntaxhighlight lang="diff">
#
 
# deb cdrom:[Debian GNU/Linux buster-DI-alpha3 _Buster_ - Official Snapshot amd64 DVD Binary-1 20180612-18:53]/ buster contrib main
 
# deb cdrom:[Debian GNU/Linux buster-DI-alpha3 _Buster_ - Official Snapshot amd64 DVD Binary-1 20180612-18:53]/ buster contrib main
 
+ deb http://ftp.kaist.ac.kr/debian/ buster main
- deb http://ftp.kaist.ac.kr/debian/ buster main non-free
deb-src http://ftp.kaist.ac.kr/debian/ buster main
 
deb http://security.debian.org/debian-security buster/updates main contrib
deb-src http://security.debian.org/debian-security buster/updates main contrib
</syntaxhighlight>
 
 
=== 프로그램 선택 및 설치 단계 ===
일반적으로 소프트웨어 선택 단계에서 아래 항목들을 선택한 후 '<계속>' 버튼을 누르면 관련 파일들을 다운로드하고, 다운로드한 파일들을 설치합니다.
 
<pre>
[*] Debian desktop environment
[*] ··· GNOME
[*] ··· KDE
[*] ··· Cinnamon
[*] ··· MATE
[*] ··· LXDE
[*] ··· LXQt
[ ] web server
[ ] 프린트 서버
[*] SSH server
[*] 표준 시스템 유틸리티
 
<계속>
</pre>
 
하지만 잠시 후 아래와 같이 설치 단계가 실패합니다.
 
[[File:12-2-1 (Debian10 install) Select-sw install-fail.png]]
 
 
참고로 파티션은 아래와 같이 설정했습니다.
 
디스크 용량: 8G
* 스왑(swap): 1G
* 루트(/): 7G
 
==== 원인 분석 ====
느낌상 디스크의 용량이 부족해서 설치가 안되는 것으로 보입니다. 정확한 원인을 파악하기 위해서는 콘솔(BusyBox)에서 시스템의 상태를 확인해야 합니다. '''control + alt + F2''' 키를 누르면 빨간색 그래픽 화면에서 검은색 콘솔 화면으로 전환되며, 아래 메시지가 화면의 좌측 상단에 출력됩니다. 이때 단순하게 엔터 키를 누르면 됩니다.
 
<pre>
Please press Enter to activate this console.
</pre>
 
 
엔터 키를 누르면 아래처럼 셸(shell)을 얻을 수 있습니다.
 
<syntaxhighlight lang="text" highlight="6">
Please press Enter to activate this console.
 
BusyBox v1.27.2 (Debian 1:1.27.2-2) built-in shell (ash)
Enter 'help' for a list of built-in commands.
 
~ #
</syntaxhighlight>
 
 
우선 의심이 가는 디스크의 사용량을 확인해 보겠습니다. df -Th 명령어로 디스크의 사용량을 확인해 보니 아래와 같이 여유 공간이 없다는 것을 확인할 수 있습니다.
 
<syntaxhighlight lang="text" highlight="11,12">
Please press Enter to activate this console.
 
 
BusyBox v1.27.2 (Debian 1:1.27.2-2) built-in shell (ash)
Enter 'help' for a list of built-in commands.
 
~ # df -Th
Filesystem Type Size Used Available Use% Mounted on
none tmpfs 200.4M 68.0K 200.3M 0% /run
devtmpfs devtmpfs 992.3M 0 992.3M 0% /dev
/dev/sda2 ext4 6.9G 6.9G 0 100% /target
/dev/sda2 ext4 6.9G 6.9G 0 100% /dev/.static/dev
devtmpfs devtmpfs 992.3M 0 992.3M 0% /target/dev
/dev/sr0 iso9660 3.6G 3.6G 0 100% /target/media/cdrom0
/dev/sr0 iso9660 3.6G 3.6G 0 100% /cdrom
</syntaxhighlight>
 
 
/var/log/syslog의 메시지도 확인해 보겠습니다. 아래처럼 syslog에도 디스크 용량이 부족하다는 로그가 기록되었습니다.
 
<syntaxhighlight lang="text" highlight="13,14">
Please press Enter to activate this console.
 
 
BusyBox v1.27.2 (Debian 1:1.27.2-2) built-in shell (ash)
Enter 'help' for a list of built-in commands.
 
~ # tail /var/log/syslog
Jun 30 01:41:19 main-menu[198]: INFO: Modifying debconf priority limit from 'high' to 'medium'
Jun 30 01:41:19 debconf: Setting debconf/priority to medium
Jun 30 01:41:19 main-menu[198]: INFO: Falling back to the package description for brltty-udeb
Jun 30 01:41:22 main-menu[198]: INFO: Falling back to the package description for brltty-udeb
Jun 30 01:41:22 main-menu[198]: INFO: Menu item 'pkgsel' selected
Jun 30 01:41:22 pkgsel: dpkg-divert: error: unable to flush new file '/var/lib/dpkg/diversions-new': No space left on device
Jun 30 01:41:22 main-menu[198]: (process:23851): fclose: No space left on device
Jun 30 01:41:22 main-menu[198]: WARNING **: Configuring 'pksel' failed with error code 2
Jun 30 01:41:22 main-menu[198]: WARNING **: Menu item 'pkgsel' failed.
Jun 30 01:41:45 init: starting pid 174, tty '/dev/tty2': '-/bin/sh'
</syntaxhighlight>
 
==== 해결 방법 ====
데비안을 설치할 루트(/) 파티션의 용량을 늘리거나 설치할 소프트웨어 항목을 줄이면 됩니다.
저는 버추얼박스의 디스크 용량을 20G로 다시 설정(8G → 20G) 함으로써 문제없이 아래 패키지들을 설치할 수 있었습니다.
 
<pre>
[*] Debian desktop environment
[*] ··· GNOME
[*] ··· KDE
[*] ··· Cinnamon
[*] ··· MATE
[*] ··· LXDE
[*] ··· LXQt
[ ] web server
[ ] 프린트 서버
[*] SSH server
[*] 표준 시스템 유틸리티
 
<계속>
</pre>
== 각주 ==

둘러보기 메뉴