우리 아이가 어렸을 적에 쓰기 위해서 구매했던 노트북이 있었는데,
이제는 성능이 제대로 나오지 않아 새로운 노트북을 구매하면서 마땅한 사용처가 없어졌다.
그래서, 버리려다가 저전력 서버로 한 번 셋팅해보고자 마음을 먹었다.
무려 2세대 !!! ㅋㅋㅋ
메모리도 2GB 밖에 안되었는데...
마침 맥북프로 메모리 업그레이드 하면서 교체했던 것이 있어서 4GB로 업그레이드~!!
1. Ubuntu Server 다운로드
- "Ubuntu Server 20.04.1 LTS" 버전으로 다운로드 받아서 설치하기로 했다.
- https://ubuntu.com/download/server
- "Option 3번"으로 다운로드 받으면 된다.
2. 설치 USB 만들기
- 부팅 USB 만들기 위해서 rufus 포터블로 다운로드 받아보자.
- https://rufus.ie/
- 다운로드 받은 뒤 실행한 뒤에
- 위와 같이 설정을 하면 된다. (파티션 방식, 대상 시스템, 파일 시스템, 클러스터 크기 등)
- "시작"을 누르면 위와 같은 화면이 나오는데, 그냥 "예"를 선택하면 된다.
- ISO 이미지 모드로 쓰면 된다.
3. 노트북 BIOS 셋팅
- 일단 BIOS에 들어가면 된다. (삼성 노트북은 부팅할 때 F2를 눌러주면 된다)
- Boot 순서 항목에서 USB를 앞으로 잡아주면 된다.
4. Ubuntu 설치
- 설치 언어는 그냥 English로 잡아주자. 한글 등은 나중에 직접 잡아주면 된다.
- 설치 중에... 유선랜을 연결하지 않았더니, 인터넷 안된다고 뭐라한다. 뭐 일단은 그냥 무시하고 고고~~~!!
- 그냥 나머지는 쭉~쭉~ 설치하면 된다.
- 하지만, 재부팅 후에 로그인을 해도... 무선랜이 동작하지 않는다. 이걸 잡아보자.
5. cloud-init 제거
$ sudo dpkg-reconfigure cloud-init
제일 하단의 None 항목 빼고 나머지 전부 선택을 해제
$ sudo apt purge cloud-init
$ sudo rm -rf /etc/cloud/
$ sudo rm -rf /var/lib/cloud/
또는,
$ sudo mv /etc/cloud /srv/remove/cloud-init/etc-cloud
$ sudo mv /var/lib/cloud/ /srv/remove/cloud-init/var-lib-cloud
(VirtualBox 에서 게스트 확장 설치하기)
- 메뉴 - 장치 - 게스트 확장 CD 이미지 삽입...
$ sudo mkdir /media/cdrom
$ sudo mount -t iso9660 /dev/cdrom /media/cdrom
$ sudo apt install build-essential linux-headers-`uname -r`
$ sudo /media/cdrom/./VBoxLinuxAdditions.run
$ sudo umount -v /media/cdrom
$ sudo reboot
6. 무선랜 설정
- Reference : https://medium.com/@yping88/how-to-enable-wi-fi-on-ubuntu-server-20-04-without-a-wired-ethernet-connection-42e0b71ca198
- 무선랜 드라이버 설치를 위해 파일들을 복사해야 한다. 다음의 3개 파일을 다운로드 받자 (다른 PC에서)
. http://mirrors.kernel.org/ubuntu/pool/main/w/wpa/wpasupplicant_2.9-1ubuntu4_amd64.deb
. http://mirrors.kernel.org/ubuntu/pool/main/libn/libnl3/libnl-route-3-200_3.4.0-1_amd64.deb
. http://mirrors.kernel.org/ubuntu/pool/main/p/pcsc-lite/libpcsclite1_1.8.26-3_amd64.deb
- USB는 앞에서 사용한 것을 재활용하기로 하고, FAT32로 포맷해서 준비하자.
- 앞에서 다운로드 받은 3개의 파일을 USB에 넣자.
- USB를 우리의 Ubuntu Server Notebook에 꼽자
- USB를 바로 사용하지는 못하지만, 꼽힌 것을 인식했는지를 우선 확인해보자.
- 제일 아래 부분을 보면 USB가 보일 것이다. Device 명칭을 잘 확인하자.
- USB를 mount 하기 위해서 mount 위치 용도의 디렉토리 하나 만들고 mount를 하자.
$ sudo mkdir /media/usb
$ sudo mount -t vfat /dev/sdb1 /media/usb
- USB에서 보이는 3개의 파일을 설치하면 된다.
$ cd /media/usb
$ sudo dpkg -i libnl-route-3-200_3.4.0-1_amd64.deb libpcsclite1_1.8.26-3_amd64.deb wpasupplicant_2.9-1ubuntu4_amd64.deb
- 이제는 무선랜카드가 잘 잡혔는지 확인해보자.
- 밑에 보면 "wlp2s0b1"과 같이 제대로 인식된 것을 확인해볼 수 있다. (물론 다른 환경에서는 다른 이름일 수도 있다!!!)
- 다른 명령어로도 확인해볼 수 있다.
- 무선랜카드가 잘 잡혔으니, 이제 무선랜 설정을 해보자.
- netplan 으로 설정하면 되는데, 기존 설정 파일을 백업하고 설정 작업하면 된다.
$ sudo cp /etc/netplan/00-installer-config.yaml /etc/netplan/00-installer-config.yaml
$ sudo nano /etc/netplan/00-installer-config.yaml
network:
ethernetes: {}
version: 2
wifis:
wlp2s0b1:
dhcp4: true
optional:true
access-points:
"SSID Name":
password: "**********"
renderer: networkd
- 각자 환경에 맞는 "SSID Name"과 "Password" 설정하면 된다.
- 문법에 맞춰서 잘 설정했는지 확인해보자.
$ sudo netplan --debug generate
- 문제가 없으면 이제 실제 적용을 해보자.
- 제대로 동작을 하는지 보기 위해서 재부팅을 하면 된다.
7. 기본 패키지 업그레이드
- 이제 인터넷이 되니 패키지 업그레이드를 하자
$ sudo apt update
$ sudo apt upgrade
- 네트워크 관련 도구도 설치를 하자
$ sudo apt install net-tools
8. Language Pack 설치
- 정상적인 한글 사용을 위해 Language Pack 설치를 해보자
$ sudo apt install language-pack-ko
$ sudo locale-gen ko_KR.UTF-8
$ sudo dpkg-reconfigure locales
$ sudo update-locale LANG=ko_KR.UTF-8 LC_MESSAGES=POSIX
9. Timezone 셋팅
- Timezone도 제대로 되어있는지 셋팅해보자.
$ sudo timedatectl
$ sudo timedatectl list-timezones | grep Seoul
$ sudo timedatectl set-timezone Asia/Seoul
$ sudo timedatectl
$ date
10. nano 설정
- 주요 데이터로 nano를 사용하기 위한 환경 설정도 해보자.
set tabsize 4
set tabstospaces
- root 계정을 위해서도 추가로 셋팅해주자.
$ sudo nano /root/.nanorc
11. 노트북 덮개 설정
- 노트북 덮개를 닫더라도 절전 모드로 전환되지 않도록 하기 위한 설정을 하자.
$ sudo nano /etc/systemd/logind.conf
- "HandleLidSwitch=ignore" 라인을 추가하면 된다.
...
#HandleLidSwitch=suspend
HandleLidSwitch=ignore
...
- 수정한 내역을 반영해보자.
$ sudo systemctl restart systemd-logind
12. ssh-server
- 이미 설치되어있던데... 혹시 모르니
$ sudo apt install openssh-server
- 이제 외부에서 접속해보면 된다.
13. git 설치하기
- 요즘은 기본이 되어버린 git ... 설치하고 기본 환경 셋팅을 하자
- 사용자 환경 설정을 하자
$ git config --global user.name "whatwant"
$ git config --global user.email "whatwant@whatwant.com"
14. zsh
- zsh 설치해보자
$ sudo apt install zsh
$ sudo apt install fonts-powerline
$ chsh -s $(which zsh)
- 로그아웃 하고 재로그인을 해야 이후 셋팅을 진행한다.
- 그냥 2번으로 선택해보자.
- oh-my-zsh 설치를 진행하자.
$ sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
- theme를 변경해보자.
# ZSH_THEME="robbyrussell"
ZSH_THEME="agnoster"
- 또, 로그아웃 하고 재로그인 해보자. 원하는 모습으로 잘 나올 것이다.
- 유용한 플러그인도 몇 가지 설치해보자
$ git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
$ git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
- 다운로드 받은 플러그인을 등록하자.
#plugins=(git)
plugins=(git zsh-syntax-highlighting zsh-autosuggestions)
- 그리고 다시 설정 파일을 로딩하면 된다.
- 멀티라인으로 출력되도록 하자.
$ nano ~/.oh-my-zsh/themes/agnoster.zsh-theme
- 아래 파란색으로 된 부분만 추가해주면 된다.
...
## Main prompt
build_prompt() {
RETVAL=$?
prompt_status
prompt_virtualenv
prompt_aws
prompt_context
prompt_dir
prompt_git
prompt_bzr
prompt_hg
prompt_newline
prompt_end
}
## multiline
prompt_newline() {
if [[ -n $CURRENT_BG ]]; then
echo -n "%{%k%F{$CURRENT_BG}%}$SEGMENT_SEPARATOR
%(?.%F{$CURRENT_BG}.%F{red})❯%f"
else
echo -n "%{%k%}"
fi
echo -n "%{%f%}"
CURRENT_BG=''
}
PROMPT='%{%f%b%k%}$(build_prompt) '
15. sudo 패스워드 없애기
- 툭하면 sudo를 사용해야하는데, 자꾸 패스워드 입력하는 것이 귀찮으니 없애버리자.
- 원하는 계정에 대해서 아래와 같이 제일 밑에 라인을 추가하자
whatwant ALL=(ALL) NOPASSWD:ALL
16. NTP
- 시간 자동 동기화 설정 여부를 확인해보자.
$ timedatectl status
Local time: 일 2020-12-27 03:10:03 KST
Universal time: 토 2020-12-26 18:10:03 UTC
RTC time: 토 2020-12-26 18:10:04
Time zone: Asia/Seoul (KST, +0900)
System clock synchronized: no
NTP service: inactive
RTC in local TZ: no
- 위와 같이 "System clock synchronized: no"로 되어 있으면 이하 과정을 실행해야 한다.
$ sudo systemctl start systemd-timesyncd
$ sudo systemctl enable systemd-timesyncd
- 다시 확인해보자
$ timedatectl status
Local time: 일 2020-12-27 03:17:33 KST
Universal time: 토 2020-12-26 18:17:33 UTC
RTC time: 토 2020-12-26 18:17:34
Time zone: Asia/Seoul (KST, +0900)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
- 혹시라도 방화벽 이슈로 NTP 서버를 변경해야 하면 아래와 같이 하면 된다.
$ sudo nano /etc/systemd/timesyncd.conf
- NTP 부분의 주석 삭제하고 아래와 같이 서버를 지정해주면 된다.