ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Ubuntu(우분투) 재설치 방법(1)
    리눅스(Ubuntu) 2021. 11. 29. 18:28

    최근 들어 갑자기 cudNN 에러가 다시 한번 발생했다. 저번에 만든 새로운 가상환경 (새로운 cuda, torch 조합이 들어간..) 이후에 별다른 라이브러리를 설치하거나 update를 해준 기억이 없는데 다시 버전문제가 발생했다고 해서 '혹시 나도 모르게 컴퓨터가 자동으로 업데이트가 되고 있나?'라는 의구심이 들었다.

    확인을 해봤더니 역시나.. 내가 모르는 사이에 Ubuntu가 자동으로 업데이트되도록 설정이 되어 있었고 13일 토요일에 혼자 업데이트가 되어 기존 라이브러리들과 버전 충돌이 일어나게 된 것이다. 현재 상태에 맞는 새로운 버전을 찾는 것보다 linux 버전을 롤백하는 것이 더 빠르다고 생각했지만, 윈도우와는 다르게 리눅스는 롤백이 매우매우 위험하다고 한다. 따라서 이전 버전의 리눅스 환경을 다시 재 설치해준 다음, 그에 맞는 가상환경을 셋팅해주려고 한다.

    오늘 포스트에는 1. 리눅스 자동 업데이트 설정 여부 확인 2. 우분투 재설치 하는 방법에 대해 다뤄보도록 하겠다.

     

    1. 리눅스 자동 업데이트 설정 확인

    cat /etc/apt/apt.conf.d/20auto-upgrades

    auto-upgrades라는 설정파일을 열어보면 1 혹은 0이라는 숫자가 적혀 있을 것이다. 여기서 적힌 숫자 값이 1일 경우 자동업데이트가 지속적으로 일어난다는 의미이기 때문에, 1을 0으로 바꿔줘야 한다. 파일은 vi 편집기를 이용해 수정 가능하다. 

    sudo cat /var/log/dpkg.log

    실제로 우분투가 지속적으로 자동 업데이트가 되고 있었는지 확인하고 싶다면 위와 같은 명령어로 확인이 가능하다. /var/log/dpkg.log에는 dpkg명령어로 패키지를 설치 및 삭제한 로그를 보여준다. 

     

    2. 우분투 재설치 준비과정

    가. 데이터 백업시키기

    우분투를 포맷하기 앞서 가정 먼저 해야할 일은 내 데이터 백업시키기 이다. 물론 외장하드를 이용하여 백업시켜주는 것도 방법이지만, 만약 또다른 서버 컴퓨터가 존재한다면 그 서버에 나의 파일들을 복사해두는 것도 좋은 방법이다.

    로컬에 있는 파일들을 외부 서버로 복제하는 명령어는 scp(SecureCopy)로 ssh 원격접속 프로토콜을 기반으로 하기 때문에 파일을 안전하게 송수신 할 수 있다. 사용방법은 크게 두가지로 로컬->서버로 파일을 옮기는 경우와 서버->로컬로 옮기는 경우로 나누어 설명하겠다.

    (1) 로컬 -> 서버로 파일 옮기기

    scp -r [보낼 파일 및 폴더 위치] [사용자명]@[IP주소]:[받을 경로]

    여기서 -r은 해당 폴더 안에 있는 모든 파일들을 재귀적으로 복사해주는 option을 의미한다. 예를 들어 scp -r ./Downloads heejoo@xxx.xxx.xxx.xxx:/home/heejoo/ 라는 명령어를 실행시킨다면 현재 로컬 Downloads 폴더 안에 있는 모든 파일들이 원격서버인 xxx.xxx.xxx.xxx의 /home/heejoo/Downloads에 복제된다. 이때 원격서버의 경로는 절대경로로 만들어야 한다.

    (2) 서버 -> 로컬로 파일 옮기기

    scp -r [사용자명]@[IP주소]:[보낼 파일 및 폴더 경로] [받을 경로]

    마찬가지로 예를들어 scp -r heejoo@xxx.xxx.xxx.xxx:/home/heejoo/Downloads ./라고 적어준다면 원격서버인 xxx.xxx.xxx.xxx의 /home/heejoo/Downloads에 있는 모든 하위 폴더 및 파일들을 로컬서버의 현재 경로로 복사해주게 된다.

     

    나. 나의 environment setting확인하기 및 저장하기

    우분투를 새로 설치한다는 의미는 곧 기존에 내가 사용하던 모든 environment 및 anaconda를 다시 설치해야 함을 의미한다. 물론 설치해주어야 할 패키지가 몇 안된다면 하나하나 버전을 확인한 이후에 그 버전을 기억해내서 재설치를 해주는 방법도 있지만, 이미 수많은 패키지, 라이브러리가 있는 경우, 나의 작업중인 환경을 .yml 파일로 만들어 저장해주는 방법이 더 효율적이다. 따라서 이번 단계에서는 먼저 나의 우분투, 아나콘다 버전을 확인하는 방법과 내 가상환경 전체를 .yml파일로 만드는 방법에 대해 설명하겠다.

    (1) Ubuntu version 확인하기

    lsb_release -a

    (2) Anaconda version 확인하기

    conda -V

    (3) 가상환경을 .yml 파일로 만들기

    conda activate [가상환경명]
    conda env export > environment.yml

    내가 파일로 만들고 싶은 가상환경을 activate시켜준 다음 export한 결과값을 environment.yml에 적어주는 명령어이다. 참고로 이렇게 만들어진 파일 또한 scp로 백업시켜주며 나중에 import하기 위해선 아래와 같이 적어주면 된다.

    conda env create -f environment.yml

     

    다. 우분투 포맷하기

    우분투는 따로 포맷할 필요가 없다. (우분투를 재설치할 때, 포맷하기 버튼이 있는데 그때 가서 하면 된다)

     

    라. 우분투 iso 이미지 굽기

    이 단계에서는 우분투 설치파일을 만드는 방법에 대해 소개하겠다. 리눅스 우분투 설치파일은 리눅스 홈페이지에서 무료로 다운받을 수 있다.(https://www.ubuntu.com/download)

     

    Get Ubuntu | Download | Ubuntu

    Download Ubuntu desktop, Ubuntu Server, Ubuntu for Raspberry Pi and IoT devices, Ubuntu Core and all the Ubuntu flavours. Ubuntu is an open-source software platform that runs everywhere from the PC to the server and the cloud.

    ubuntu.com

    여기서 내가 원하는 버전의 ubuntu를 다운로드 받은 후(아니면 그냥 구글에 ubuntu 18.04.5 iso이런식으로 검색해도 설치 파일이 나오긴 한다) usb를 내 컴퓨터에 연결해준다.

    이제 설치파일을 담기 위한 부팅 usb를 만들어야 하는데 우분투 데스크탑 버전의 경우 기본적으로 부팅 usb를 만들어주는 프로그램이 내장되어 있다. 부팅 usb는 아래 블로그에 나와있는 순서대로 하면 만들 수 있다.

    https://hiseon.me/linux/ubuntu/ubuntu-install-usb/

     

    우분투 부팅 USB 만들기 - HiSEON

    우분투 부팅 USB 만들기 우분투 설치 usb 만들기 방법에 대해서 설명드립니다. 우분투 부팅 USB으로 USB 부팅 가능한 USB 부팅 디스크를 만들 것입니다. 부팅 가능한 우분투 USB으로 우분투 설치 또는

    hiseon.me

    이후 만들어진 부팅 usb가 다음과 같은 파일들을 담고 있다면 이제 우분투 설치를 위한 모든 준비단계는 끝났다. 이후 설치 과정에 대한 방법은 다음 이어지는 포스트에서 설명하도록 하겠다.

    댓글

Designed by Tistory.