docs/blog/2023-02-08-linux-03.md
2026-08-29 22:09:51 +09:00

23 KiB

title description image authors
리눅스 사용 - 가상머신 리눅스 커널이 탑재된 환경에서 실 사용감을 익혀본다. /assets/blog/03-linux-03/Hyperviseur.svg
bitdori

xubuntu-torrent

다운로드 한 .torrent 파일을 더블클릭하여 iso 파일 다운로드

xubuntu-downloading

Xubuntu를 다운로드 하는 동안 https://www.virtualbox.org/wiki/Downloads 접속

virtualbox-org

Windows hosts 를 클릭하면 다운로드가 진행되지만 이번에는 curl로 다운로드를 해 보기 위해 주소를 복사하기만 한다.

  • Cygwin 실행 - cd 로 다운로드 할 경로로 이동
  • curl -O 까지 입력한 뒤 우클릭 - Paste를 하여 복사해 둔 VirtualBox 주소 붙여넣기
  • 실행

curl-O curl-downloading

다운로드가 끝나면 VirtualBox 설치 vbox-inst-1 vbox-inst-2 vbox-inst-3 vbox-inst-4 vbox-inst-5

qBittorrent에서 Progress가 100%이면서 상태가 Seeding이면 Xubuntu 다운로드가 끝난 것이다.

항목을 우클릭해서 다운로드 대상 폴더를 확인

xubuntu-downloaded

VirtualBox 실행 - New vbox-new

이름란에 xubuntu 입력 - ISO 이미지에 토렌트로 받았던 이미지를 선택

Skip Unattended Installation 체크

vbox-create

프로세서는 초록색 범위 내에서 선택

vbox-create-hardware

시스템 전체에서 남는 공간 중 xubuntu 가상머신에 할당할 크기 지정 - Next - Finish

vbox-create-harddisk

설정

vbox-settings

디스플레이에서 비디오 메모리 용량을 초록색 범위 내에서 할당

3D 가속 활성화 체크

vbox-settings-display

시작

vbox-start vbox-starting

VirtualBox 내부에 마우스 포인터가 갇히는 경우 오른쪽 Ctrl 키를 누르면 빠져나올 수 있다.

설치 클릭

vbox-hostkey

키보드 레이아웃은 English (US) 선택

xubuntu-inst-kbd

서드파티 소프트웨어 설치 체크 - 계속

xubuntu-inst-thirdparty

지금 설치 - 계속 - 변경사항을 디스크에 쓰기 창에서 계속

xubuntu-instnow xubuntu-inst-write-disk

시간대 선택

xubuntu-inst-tz

사용자명 xubuntu

패스워드는 보안상 쉽게 탈취되지 않도록 짓는 것이 원칙이지만 가상머신 내에서 테스트용도로 사용하기 때문에 편한대로 간결하게 지어도 괜찮을 것이다.

xubuntu-inst-adduser

설치가 끝날 때 까지 대기

xubuntu-installing


설치 중 참고사항

유명 소프트웨어 중에 LTS라는 릴리스 모델을 채택하고 있는 프로젝트가 여럿 있는데 우분투는 2년에 한 번씩 짝수해 4월마다 LTS 버전을 출시하고 있다.

https://en.wikipedia.org/wiki/Ubuntu_version_history#Table_of_versions

각 버전마다 별명이 있으며 2022년 4월에 출시한 22.04 버전은 jammy라는 코드네임이 붙어있다.

Xubuntu는 ubuntu에 xfce를 탑재한 리눅스 배포판이다.

기본 우분투의 Nautilus 파일탐색기는 일부 외장 디스크 unmount시 spindle parking 시퀀스가 올바르게 작동하지 않는 문제가 있지만 Xubuntu의 파일탐색기에서는 해당 문제가 일어나지 않는다.

하이퍼바이저 성능만 따지면 VirtualBox보다 QEMU가 더 빠르긴 하지만 리눅스에서 설치하는 virt-manager가 함께 있어야 편리하게 쓸 수 있기 때문에 본 자습서에서는 VirtualBox를 사용한다.

QEMU는 호스트와 아키텍처가 일치하지 않는 프로세서도 가상화 할 수 있기 때문에 해당 내용에 관심이 있다면 관련 자료를 알아보는 것도 좋다.

{/* DMA */}

Cygwin으로도 리눅스의 여러 기능을 사용할 수 있지만 가상머신에 운영체제 전체를 설치하면

  • Cygwin에서 rm으로 실수로 파일을 삭제하는 등 시스템에 영향을 줄 수 있는 여지가 가상머신 내부에서는 없기 때문에 가상머신 내부에서 완전히 망가지더라도 해당 이미지 외부로 아무 영향을 주지 않는다.
  • X 디스플레이 서버 구동
  • 패키지 매니저 탑재
  • 컨테이너 구동
  • RAID 구성
  • 부트로더 설정
  • 리눅스 심볼릭 링크
  • sysctl 등으로 커널 조작

등을 사용할 수 있다.

WSLg 또는 VcXsrv로 리눅스 그래픽 환경을 구동할 수 있지만 Windowing system이 서로 달라서 네이티브 리눅스 환경과 재현도 차이가 날 수 있다.


Xubuntu 설치가 끝나면 재시작

xubuntu-inst-complete

만약 재시작 화면이 끝나지 않고 멈춰 있다면 가상머신을 강제로 리셋하면 된다.

xubuntu-reset-1 xubuntu-reset-2 xubuntu-boot-1 xubuntu-boot-2

부팅이 끝나면 세션 관리자가 뜬다.

xfce4-session

  • 우상단 전원 아이콘 클릭 - Shut Down... shutdown

다시 시스템을 시작한다.

vbox-start

사용 언어와 관련된 필요 패키지를 자동으로 감지해서 띄워주면 그대로 설치하면 된다. lang-1 lang-2

패스워드란에는 운영체제 설치 단계에서 입력했던 패스워드를 입력한다.

lang-3-passwd lang-4-inst lang-5-applying

소프트웨어 업데이트 알림에 대해서도 그대로 설치를 진행한다.

upd-1 upd-2-passwd upd-3-inst upd-4-unpacking

설치 후 시스템 재시작 upd-reboot


상단 작업표시줄 우클릭 - Panel - Add New Items... xf-taskbar-1-newitems

Launcher - Add xf-taskbar-2-launcher

우상단 ! 아이콘 클릭 - Delete finished notifications 클릭해서 VirtualBox 알림 정리 vbox-delnoti

새로 생긴 빈 Launcher 아이콘 우클릭 - Properties xf-taskbar-3-launcher-props

Add a new empty item xf-taskbar-4-new-empty-item

Name란에 xterm 이라고 작성하면 다 쓰기 전에 Create Launcher XTerm 이 펼쳐진다. 클릭 - Create xf-taskbar-5-xterm

Close xf-taskbar-6

xterm 실행 xterm

  • sudo apt purge apport* whoopsie* 실행하여 설치된 패키지 제거
  • y 입력 - 엔터
  • sudo apt autoremove 실행하여 사용하지 않는 패키지 제거

apt-purge apt-autoremove

whiskermenu - Settings Manager - IBus Preferences ibus-setup

Input Method - Add ibus-inputmethod-add

More... - Korean 검색 - Korean 클릭 - Hangul 선택 - Add

ibus-more ibus-hangul

기존에 있었던 Input Method인 English 선택 - Remove ibus-remove-en

Close ibus-hangul-finished

whiskermenu - Log Out... - restart logout restart

시스템 재시작 후 한글 입력 테스트 ibus-hangul-test

Guest Additions 설치

guest-insert

이미지 삽입 후 잠시 기다리면 /media/xubuntu/VBox_GAs_major.minor.patch 경로에 마운트 된 내용이 나온다. guest-mounted

xterm에서 해당 경로로 이동 -> ./autorun.sh -> 패스워드 입력 guest-autorun

근데 바로 설치를 진행할 수 없다.

sudo apt install gcc make perl의존성 패키지 설치를 한 뒤 다시 시도 guest-dep guest-inst-gcc-make-perl

의존성 패키지 설치가 끝난 뒤 다시 ./autorun.sh 실행 guest-autorun-done

autorun.sh 절차가 끝나면 sudo /sbin/rcvboxadd quicksetup all 실행 후 시스템 재시작 guest-rcvboxadd

해상도 제한이 완화되었다. vbox-resolution

xterm 설정

.Xresources 라는 파일명으로 다음 내용을 저장해 놓는다.

XTerm.termName: xterm-256color
XTerm*utf8: 1
XTerm*utf8Title: true
XTerm.vt100.locale: true
XTerm.vt100.foreground: white
XTerm.vt100.background: black
*background: rgb:00/00/00
*foreground: rgb:ff/ff/ff
*color0:  rgb:00/00/00
*color1:  rgb:d3/62/65
*color2:  rgb:ae/ce/91
*color3:  rgb:e7/e1/8c
*color4:  rgb:7a/7a/b0
*color5:  rgb:96/3c/59
*color6:  rgb:41/81/79
*color7:  rgb:be/be/be
*color8:  rgb:66/66/66
*color9:  rgb:ef/81/71
*color10: rgb:e5/f7/79
*color11: rgb:ff/f7/96
*color12: rgb:41/86/be
*color13: rgb:ef/9e/be
*color14: rgb:71/be/be
*color15: rgb:ff/ff/ff
XTerm.vt100.faceName: Roboto Mono
XTerm.vt100.faceNameDoublesize: Noto Sans Mono CJK KR
XTerm.vt100.faceSize: 12
! disable bold font faces, instead make text light blue.
XTerm.vt100.colorBDMode: true
XTerm.vt100.colorBD:     rgb:82/a4/d3
! disable underlined text, instead make it white.
XTerm.vt100.colorULMode: true
XTerm.vt100.colorUL:     rgb:e4/e4/e4

XTerm.vt100.metaSendsEscape: true
XTerm*eightBitInput: false
XTerm.vt100.backarrowKey: false
XTerm.ttyModes: erase ^?
Xft.antialias: true
Xft.hinting:   true
Xft.rgba:      rgb
Xft.autohint:  false
Xft.hintstyle: hintslight
Xft.lcdfilter: lcddefault
Xft.embolden:  true

XTerm*selectToClipboard: true

xterm*dynamiccolors:  true
*VT100*colorMode:     on
*VT100*dynamicColors: on

XTerm.vt100.translations:   #override \n\
  Ctrl <Key> minus: smaller-vt-font() \n\
  Ctrl <Key> plus:   larger-vt-font() \n\
  Ctrl <Key> 0:        set-vt-font(d)

XTerm*charClass: 33:48,36-47:48,58-59:48,61:48,63-64:48,95:48,126:48

! Only select text
xterm*highlightSelection: true
! Remove trailing spaces
xterm*trimSelection:      true
!If you want your terminal to scroll down anytime you press a key, use this setting:
XTerm*ScrollKey:          true
! Do not scroll when there is new input e.g. tail -f /var/syslog
!xterm*scrollTtyOutput: false
XTerm*fullscreen: never

XTerm.vt100.scrollBar:        true
xterm*rightScrollBar:         true
!XTerm.vt100.scrollbar.width: 8

XTerm*cursorBlink: false

가상머신 종료 후 Settings - Network - Adapter 2 탭에서 Attached to: Host-only Adapter 선택 - OK - 가상머신 구동 vbox-adapter

xterm 실행 - ip addr 를 실행해서 방금 추가한 어댑터의 주소를 확인한다. 보통 enp0s8 인터페이스에 192.168.56.101 로 할당 받는다. xubuntu-ip

  • apt search openssh 로 검색
  • sudo apt install openssh-serveropenssh 서버 설치
  • systemctl status sshd데몬 구동 상태 확인

apt-inst-sshd sys-stat-sshd

Cygwin에서 scp로 위에서 저장한 .Xresources 파일을 가상머신에 복사해 보도록 한다.

  • scp .Xresources xubuntu@192.168.56.101:~ 실행 scp

복사가 끝나면 가상머신의 xterm에서 xrdb ~/.Xresources 를 실행해서 적용 xrdb

새 터미널을 시작해서 적용 여부 확인 xrdb-applied

현재 .Xresources의 설정에서는 font size는 Ctrl 를 숫자0과 백스페이스 사이에 있는 -기호 또는 +기호를 눌러서 줄이거나 키울 수 있다.

https://invisible-island.net/xterm/manpage/xterm.html

https://stuff.mit.edu/afs/sipb/project/doc/ixresources/xres.html

https://wiki.debian.org/Xresources

xterm 대신 다른 터미널을 쓰려면 Ctrl Alt t 를 눌러서 xfce4-terminal 을 실행하면 된다. xfce4-terminal

또는 리눅스 내부에서 터미널을 쓰는 대신 Cygwin으로 ssh 접속을 할 수도 있다.

  • scp 명령과 비슷한 방식으로 ssh xubuntu@192.168.56.101 실행
  • 패스워드 입력
  • exit 로 종료

ssh


ip addriproute2에 포함된 커맨드 중 하나로써 리눅스에서는 ifconfig 대신 사용하는 커맨드이다.

ifconfignet-tools 프로젝트에 포함된 커맨드인데 BSD에서는 계속 ifconfig 을 기본으로 설정해 놓고 있다.

Host-only Adapter 는 처음에 VirtualBox를 설치할 때 같이 설치되었다. /assets/blog/03-linux-03/vbox-inst-2.png vbox-host

Advanced Package Tool

상단에서 sudo apt purge apport* whoopsie* 라는 명령으로 apt를 처음 사용해 보았는데 apt는 데비안 계열에서 채택하고 있는 패키지 매니저이다.

Microsoft의 운영체제에서는 2012년 Windows 8이 나오기 전까지는 주로 exemsi를 확보해서 프로그램 추가/제거를 수행했는데 이런 방식으로 소프트웨어를 배포하면 DLL 지옥이라고도 하는 구성요소 손망실 문제가 발생하기 쉽다.

이런 문제로 인해 소프트웨어 배포 및 관리를 체계적으로 수행하는 패키지 매니저가 개발되기 시작했고 APT 외에도 레드햇 계열에서 사용하는 yumdnf, 아치 계열에서 사용하는 pacman 정도가 널리 알려져 있다.

패키지 매니저가 수행하는 체계적 관리라 함은 소프트웨어 일괄 업데이트, ELF 등 연관 라이브러리 탐색/업데이트/제거 등을 자동으로 수행하는 것이다.

최근에는 AppImageflatpak처럼 플랫폼 독립적인 배포 방식 또한 이용저변을 넓혀가고 있다.

Google Play Store나 Apple App Store 또한 일종의 패키지 매니저라고 할 수 있다.


  • apt search midnightMidnight Commander 검색
  • sudo apt install mc 로 해당 패키지 설치
  • mc 실행
  • F10 으로 종료

apt search 패키지명 형식으로 현재 설정된 저장소로부터 내려받아 설치할 수 있는지 확인할 수 있다.

sudo apt install 패키지명 으로는 해당 패키지를 설치할 수 있다. 패키지 설치 직전에 [Y/n] 으로 여부를 확인하는데 대문자가 기본 동작으로 지정되어 있기 때문에 y 를 입력하지 않고 그대로 엔터를 쳐도 y를 입력한 것과 똑같이 진행한다.

패키지 설치는 시스템을 변경시키는 행위이기 때문에 관리자의 권한이 필요한데, sudo를 어떤 명령어 앞에 붙여서 실행하면 최소 권한의 원칙을 유지하면서 시스템에 변동을 줄 수 있다.

원래 sudo를 사용하기 전에 visudo로 sudoer 추가를 해 줘야 하는데 ubuntu에는 해당 설정이 미리 되어 있기 때문에 본 자습서에서는 따로 다루지 않았다.

예시로 설치한 mcncurses 기반 파일탐색기이다. mc-1 mc-2 mc-3

필요에 따라서 sudo apt install gcc make perl 처럼 여러 패키지를 한꺼번에 설치할 수도 있다.

{/* repo 설정 PS1

mv/rm . / touch {1..5} mv . - cd로 이동하지 않고 타겟을 현재 디렉토리로 이동하는 방법 스크립트 bash프롬프트 - export, PATH 등 source

sha ps / top ip / ss nmcli / dig nginx -s / hosts systemctl mount dd git mc / ncdu / cmus users who

vm2(bind9) - ubuntu server -> Windows host - DNS query ddns-confgen */}

{/* https://www.gnu.org/gnu/gnu-linux-faq.html#whyslash */}