NOT4DOG
방명록 RSS 태그 글쓰기 관리자
 
[Linux] Kali Linux 설치 후 apt-get update 에러 문제 해결방법
Linux 2022-01-14 18:15:17

반응형

Kali 에서는 패키지 설치, 삭제, 업데이트 등을 위해서 apt(Advance Packging Tools) 명령어를 사용한다.

이는 Kali와 같은 계열 리눅스인 Debian 계열에 모두 해당한다.

리눅스의 대표적인 두 계열에는 Debian, Redhat 계열로 나누어지는데,

Debian 계열은 앞서 말했듯이 apt, Redhat 계열은 yum 이라는 패키지 관리 도구를 사용한다.

 

보통 리눅스를 처음 사용할때면 수 많은 필수 패키지의 업데이트를 위해,

sudo apt-get update 라는 명령어를 사용한다.

다만, apt-get update 에서 다양한 에러로 업데이트가 되지 않는 경우가 많다.

 

수 많은 이유 중 제일 많이 일어나는 두 가지 에러에 대한 해결 방법을 칼리 리눅스 기준으로 작성하고자 한다.

 

1. 다음 서명이 올바르지 않습니다 (GPG 에러)

 

이 문제는 보통 칼리 리눅스가 정상적인 패키지 여부를 검사하는 인증키 사용과정에서 발생하는 오류다.

인증키가 만료된 상황이 제일 많으며, 인증키를 업데이트 하는 방법은 다음과 같다.

wget -q -O - https://archive.kali.org/archive-key.asc  | apt-key add

이 명령줄을 실행하고, sudo apt-get update 명령을 실행하면, 정상적인 업데이트가 가능하다.

 

2. 404 Not Found 에러 (Repository 설정 문제)

 

이 문제는 업데이트 할 패키지를 가져오는 Source List의 설정이 되지 않았거나,

Source List Site에 접속이 불가능 할때 발생한다.

문제를 해결하기 위해서는 현재 사용 가능한 Source List Site 주소를 추가해주어야 한다.

 

sudo vi /etc/apt/sources.list

이 경로에 있는 파일이 Source List 주소를 설정할 수 있는 파일이다.

해당 명령줄을 입력하면 vi 편집기가 나오고 (다른 편집기를 사용해도 무방하다.)

 

i(insert)를 입력해 내용 삽입 모드로 바꾸어준뒤, sources.list 파일의 모든 내용을 지워준다.

추가할 Source List의 주소는 2022년 1월 14일 기준 정상적으로 사용가능하다.

deb http://http.kali.org/kali kali-rolling main non-free contrib
deb http://http.kali.org/kali kali-last-snapshot main non-free contrib

 

 

지워준 후, 이 두 줄을 입력하고 :wq를 입력해 저장하고 편집기를 종료한다.

그리고 sudo apt-get update 명령을 실행하면, 정상적인 업데이트가 가능하다.

 

반응형


[Linux] Kali Linux 듀얼모니터 설정 방법 (Nvidia 외장그래픽 Optimus)
Linux 2021-12-27 16:34:29

반응형

Windows는 듀얼모니터 설정이 매우 간편하다.

Linux 또한 보통 HDMI나 DP 케이블로 연결만 하면 자동으로 인식되어 사용이 가능하지만,

Nvidia Optimus 기술이 적용된 노트북의 경우,

Linux 설치 후 듀얼모니터 연결시 no signal 으로 인식이 되지않는 문제가 있다.

이처럼 듀얼모니터 설정에 애를 먹고있는 분들이 많아 설정법을 공유하려고 한다.

 

1. 소프트웨어를 전부 업데이트하고 xrandr를 설치한다.

sudo apt-get update

sudo apt-get dist-upgrade

sudo apt-get install xrandr -y

 

2. Nvidia 드라이버를 설치한다. 

sudo apt install nvidia-driver nvidia-xconfig

 

3. 리눅스에서 기본 제공하는 nouveau 대신 Nvidia-Driver를 사용하기 위해 Blacklist에 nouveau를 등록한다.

sudo vi /etc/modprobe.d/nvidia-blacklists-nouveau.conf

# inside the editor, append these
blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off

 

4. nouveau가 제대로 비활성화 되었는지 확인한다. (출력이 나오지 않아야 정상.)

lsmod | grep -i nouveau # should output nothing

 

5. 외장그래픽 카드의 BUS ID를 조회한다. (본인의 경우에는 01:00.0)

$ lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation CometLake-H GT2 [UHD Graphics] (rev 05)
01:00.0 VGA compatible controller: NVIDIA Corporation GA102M [GeForce GTX 1050 Mobile] (rev a1)

 

6. xorg.conf 파일을 열어 제조사 및 BUS ID를 수정한다. (xorg.conf 파일의 위치는  cd /etc/x11/Xorg.conf)

# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig:  version 460.32.03

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "nvidia" # nvidia 외장그래픽 인식
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
EndSection

Section "Files"
EndSection

# DO NOT TOUCH THIS ONE
Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

# DO NOT TOUCH THIS ONE
Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Unknown"
    Option         "DPMS"
EndSection

# NVIDIA
Section "Device"
    Identifier     "nvidia"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BusID          "PCI:1:0:0" #### <----- 확인한 BUS ID로 변경
EndSection

Section "Screen"
    Identifier "nvidia"
    Device "nvidia"
    Option "AllowEmptyInitialConfiguration"
EndSection

# INTEL
Section "Device"
    Identifier "intel"
    Driver "modesetting"
EndSection

Section "Screen"
    Identifier "intel"
    Device "intel"
EndSection

 

7. 앞서 1번에서 설치한 xrandr로 모니터를 인식시킨다.

xrandr --setprovideroutputsource 1 0
xrandr --auto

 

8. 인식은 되었지만 재부팅 시 xrandr 설정을 다시 해줘야 하므로 ~/.profile 로 이동하여 재부팅 시

   코드가  자동실행 되도록 profile 파일 마지막 부분에 7번에서 입력한 xrandr code 두 줄을 추가하고 저장한다.

   (vi ~/.profile)

xrandr --setprovideroutputsource 1 0
xrandr --auto

 

9. 재부팅하고 로그인하면 자동으로 듀얼모니터가 설정된다.

sudo reboot -f
반응형


[Linux] Linux (Debian 계열) Basic Command
Linux 2021-12-25 20:00:05

반응형

1. man ( manual )

각 명령어들의 도움말을 상세하게 알고 싶을 때 사용

- ( man Is ) 라고 명령어를 검색 시 Is에 대한 상세 설명을 보여준다.

 

2. ls ( list ) + 옵션 + 파일명

현재 디렉터리의 내용을 보여준다.

- ( ls -l ) : 디렉터리 및 파일 리스트를 권한 정보를 포함하여 상세 출력

- ( ls -a ) : 디렉토리 및 파일 리스트의 숨겨진 정보들까지 모두 출력


-i : 파일의 아이 노드(inode) 번호를 출력
-h : 파일의 크기를 쉬운 단위로 표시(k: 킬로바이트, m: 메가바이트)
-l : 파일의 다양한 정보를 함께 출력(소유자 정보, 권한 정보, 크기, 날짜)
-m : 파일을 쉼표로 구분하여 가로로 출력
-s kb : 단위의 파일 크기를 출력
-t : 파일을 최근에 생성된 시간순으로 출력
-f : 파일의 형태와 함께 출력한다('*' : tlfgodvkdlf, '@' : 심볼릭 링크, '/' : 디렉터리)
-r : 서브 디렉터리의 내용을 포함하여 출력(즉 하위 디렉터리 내용을 모두 출력)
-s : 파일을 크기순으로 출력

 

3. pwd ( print working directory )

현재 작업 중인 디렉터리를 확인할 때 사용하는 명령어다.(절대 경로)

- desktop이란 디렉터리에서 입력하면, ~/desktop 이라고 보여준다.

 

4. cd ( change directory )

해당 디렉터리 경로로 이동, 작업할 디렉터리를 바꿀 때 사용한다.

- test 디렉터리 경로로 이동 : ( cd /parent/test ) 라고 입력하면 된다. 

- parent 디렉터리로 이동  :  ( cd parent ) 이라고 입력하면 된다.

 

- ( cd ) : 홈 디렉터리로 이동
- ( cd ~ ), ( cd  ~/ ) 홈 디렉터리로 이동
- ( cd ~smile ) smile의 홈 디렉토리로 이동
- ( cd ~/path/path2 ) 홈 디렉토리 아래 path/paht2로 이동
- ( cd - ) 바로 앞에 작업한 디렉토리로 이동
- ( cd directory ) 지정한 directory로 옮겨진다
- ( cd / ) root directory로 옮겨진다.
- ( cd .. )현재 작업 directory의 부모 directory로 옮겨진다.

 

5. mkdir ( make directory ) + 옵션 + 파일명

새로운 디렉터리를 만드는 명령어이다.

- test 디렉터리를 만들고 싶으면 ( mkdir test )라고 입력하면 된다.

 

6. find와 locate

특정 파일을 찾을 때 이 두 가지 명령어를 모두 사용할 수 있다.

ex) find [검색경로] -name [파일명]

 

7. cp ( copy ) + 옵션 + 원본 파일명 + 목적 파일명 / 디렉터리명

파일 복사 (재귀적으로 탐색을 원할경우 -r 옵션 부여)

- ( cp test cptest ) 라고 입력하면, test 파일의 사본을 cptest란 이름으로 생성한다. test 파일은 그대로 있다.

 

-i : 파일 복사 시 동일 파일명이 있을 시에 사용자에게 덮어쓸 것인지를 물어봄
-f : 동일 파일명 발생 시에도 모두 강제적으로 복사함
-p : 원본 파일의 시간 및 소유 권한 보존
-r : 포함된 자식 디렉터리까지 모두 복사

 

8. mv ( move ) + 옵션 + 파일명

파일 이름을 변경 or 다른 디렉터리로 옮길 때 사용

- ( mv test test1 ) 라고 입력하면 test 파일의 이름을 test1로 바꿔준다.

- ( mv test ~/desktop )라고 입력하면, test 파일을 desktop 디렉터리로 옮겨준다.

 

9. more + -ncdflspu +줄번호 + 파일 이름(들)

파일의 내용을 한 번에 한 화면씩 보여준다.

-n : 여기서 n은 숫자를 의미하며, 숫자는 출력 윈도우의 행수를 지정한다.
-c : 위에서부터 한 행씩 지운 후 한 행씩 출력한다. 보통은 화면 전체를 지운 후 각 행을 출력하기 시작한다. 특정한 터미널을 위해 사용
-d : 스페이스나 q 키를 누르라는 prompt를 출력
-f : 화명의 행이 아닌 논리적인 행 수를 계산한다. 보통은 긴 칼럼의 행은 화면에서 행바꿈을 하여 새로운 행으로 계산된다.

      -f 옵션을 사용하면 이러한 행은 계산하지 않는다.
-s : 여러 개의 빈 공백행은 하나로 취급한다.
-p : 스크롤하지 않는다. 대신 화면을 지우고 출력한다.
-u : 밑줄 치기를 금지한다.

 

10. kill

특정 프로세스를 정해서 종료하고 싶을 때 사용, 보통 kill 명령어는 ps 명령어 다음에 사용 

10-1 killall

특정 프로세스를 모두 종료

10-2. killall5

모든 프로세스 종료

 

11. sudo

관리자 권한(=root 사용자) 만이 설치나 삭제, 변경을 할 수 있는데

sudo 명령어로 일반 사용자도 root 권한을 임시로 부여 

 

12. passwd

패스워드 변경 명령어 (Set UID bit로 Root 권한 부여)

 

13. rm ( remove ) + 옵션 + 파일명

파일이나 디렉터리를 삭제

- f 옵션을 주면 사용자에게 삭제 여부를 묻지 않고 바로 삭제한다.

- 디렉터리를 삭제할 때는 -r 옵션을 주어야 한다. (디렉터리 삭제 시 하위 디렉터리까지 모두 삭제된다.)

 

-f : 디렉터리 안의 파일을 삭제할 때 사용자에게 확인을 요구하지 않음
-r : 인수 list 에서 지정한 디렉터리 혹은 그 아래의 subdirectory를 삭제
-i : whrite permission 이 없는 파일의 삭제를 위해 대화식으로 확인
-p : 디렉터리 dir-name과 비어있는 부모 디렉터리를 사용자가 제거할 수 있으며, 전체 경로명이 삭제되거나 어떤 이유로 인해 경로명의 일부가 남은 것과 무관하게 표준 출력에 메시지가 출력됨
-s -p : 선택항목 지정 시 표준 오류에 출력되는 메시지를 삭제

 

13-1. rmdir

디렉터리를 삭제

 

14. touch + -amc + MMDDhhmmYY + 파일명

파일이나 디렉터리의 최근 업데이트 일자를 현재 시간으로 변경한다.

- 최근 업데이트 일자는 ( ls -l ) 명령으로 확인할 수 있다.

- 파일이나 디렉터리가 존재하지 않으면 빈 파일을 만든다.

 

-a : 파일의 액세스 시간을 바꿈
-m : 파일의 갱신 시간을 바꿈
-c : 파일명이 존재하지 않는다면 새로운 파일을 만들지 않음

 

14-1. vi 

vi 편집기 상태로 들어감 

 

14-2. cat 

파일의 내용을 출력하거나, 파일들을 합치거나, 새로운 파일을 만들거나, 다른 파일에 내용을 덧붙일 때 사용 가능

 

15. head + - count + 파일명

파일의 앞부분을 보고 싶은 줄 수만큼 보여준다. ( 옵션 미 지정 시 상위 10줄)

 

16. tail + - count + 파일명

파일의 뒷부분부터 보고 싶은 줄 수만큼 보여준다. ( 옵션 미 지정 시 하위 10줄)

 참고로 -F 옵션을 주고 실행하면,

파일 내용을 화면에 계속 띄워주고 파일이 변하게 되면 새로운 업데이트된 내용을 갱신해준다.

주로 실시간으로 내용이 추가되는 로그파일을 모니터링할 때 유용하게 사용한다.

 

17. grep + 옵션 + 패턴 + 파일명

파일 내부에 있는 텍스트의 내용으로 파일을 찾을 수 있다

-c : 파일 내에서 패턴과 일치하는 줄의 총수를 구한다.
-h : 여러 개의 파일을 검색할 때, 출력에 파일명이 나타나는 것을 방지한다.
-i : 대, 소문자를 구별하지 않는다
-n : 일치하는 줄의 줄 번호도 같이 출력한다
-v : 패턴과 일치하지 않는 줄만 출력한다

 

18. du

사용자 자신의 디스크 사용 상황을 확인할 수 있다

 

19. tar, bzip2, gzip + 옵션 + 파일명

파일 압축 형식을 묶거나 푸는 명령어

tar cvf [파일명(.tar, _tar)] 압축할 파일(또는 디렉터리) : 묶을 때
- tar xvf [파일명(.tar, _tar)]  : 풀 때

 

-c : 새로운 tar파일의 생성
-x : 기존의 tar파일을 푸는 데 사용
-u : 업데이트를 위한 옵션
-t : tar파일을 푸는 것이 아니라 내용을 보는 옵션
-v : 파일을 묶거나 풀 때의 작업을 보여주는 옵션
-z : gzip를 이용해 tar.gz 혹은 .tgz로 묶인 파일을 풀 때 사용하는 옵션

 

- gzip     [파일명]    : 압축 시
- gzip -d [파일명]   : 해제 시

 

-d : 압축을 해제하는 옵션
-f : 압축을 하거나 해제할 때 같은 이름의 파일이 존재할 경우 덮어쓰기를 한다.
-l : 압축파일의 정보를 보여 준다.
-r : 압축 대상의 디렉터리까지 압축을 수행한다.

20. chmod + 옵션 + 파일명, 디렉터리

특정 파일 또는 디렉터리의 Permission 수정

-R : 서브 디렉터리까지 모든 파일의 권한을 바꾼다.

 

21. chown + 옵션  + 파일명

파일이나 디렉터리의 소유자, 소유 그룹 수정

-R : 서브 디렉터리까지 모든 파일의 소유자를 바꾼다.

 

22. chgrp + 옵션

파일이나 디렉터리의 소유 그룹 수정

-R : 서브 디렉터리까지 모든 파일의 그룹을 바꾼다.

 

23. umask

파일 생성 시의 Permission 값을 변경하는 명령어 (기본 Regular 파일은 666, 디렉토리 파일은 777) 

 

24. at

정해진 시간에 작업을 하나만 수행할 수 있는 명령어

 

25. crontab

반복적인 작업을 수행하는 명령어

 

26. fg ( foreground )

작업을 Foreground 작업으로 변환하는 것으로 모니터에 실행되는 모습을

사용자가 인지할 수 있도록 작업하는 것을 말한다.

 

27. bg ( background )

작업을 Background 작업으로 전환하는 것으로, 사용자의 눈에는 실행되는 모습을 보이지 않으면서도

실제로는 일을 하는 것

- ( 명령어 & ) 로 명령어 다음에 "&" 표시를 붙여서 Background 작업으로 전환할 수 있다.

 

28. jobs

실행되는 job들 나열

-l : 현재 작업하고 있는 디렉터리와 프로세스 그룹 ID를 출력

 

29. wall

시스템에 로그인한 모든 사용자에게 메시지 보내기

 

30. write

로그인한 사용자에게 메시지 전달

 

31. dd

블록단위로 파일을 복사하거나 파일의 변환을 할 수 있는 명령어

 

32. rpm + 옵션 + 파일명

rpm명령어는 redhat 배포본 관련 패키지를 설치 및 업그레이드하는 명령어.

시스템에 설치되어 있는 패키지를 설치하려 한다면 -i 옵션과 -U 옵션을 써야 함

만약 rpm -e rpm 명령을 실행하면 rpm 은 사라지기 때문에 절대로 하지 말아야 한다.

만약 지웠다면 www.rpm.org 에 가서 rpm 소스를 가져다 재설치하는 수밖에 없다.

 

-i, -u : 설치 및 업그레이드 옵션
-e : 패키지의 제거
-q : 패키지 질의
-V : 패키지 검증

 

33. fdisk  -l + -v + -s partition + device

디스크의 파티션을 변경한다


-l : 파티션 테이블의 목록을 출력
-v : fdisk 버전 출력
-s : partition DOS 파티션이 아니라면 해당 파티션의 크기를 출력
device : device 에는 몇 번째 하드디스크를 파티션 할 것인지 알려주어야 한다.

 

아래는 리눅스에서 각각의 디바이스들에 대한 이름이다.
첫 번째 설치된 하드 드라이브 : fdisk /dev/hda
두 번째 설치된 하드 드라이브 : fdisk /dev/hdb
SCSI의 첫 번째 하드 드라이브 : fdisk /dev/sda
SCSI의 두 번째 하드 드라이브 : fdisk /dev/sdb

 

34. ps

ps 명령을 사용하면 어떤 프로세스의 목록과 활동 중까지 알 수 있다.

-aux 옵션을 사용하면 시스템에서 동작중인 모든 프로세스를 살필 수 있다.


Space : 상황 즉시 갱신
-s : 갱신 시간 지정(초 단위)

CPU 사용률 기준으로 정렬
-M : 메모리 사용률 기준으로 정렬
-u : 지정한 사용자의 프로세스만 나타남
-k : 지정한 프로세스 kill
-h : 도움말


35. shutdown 옵션 + 시간 + 메세지

시스템을 종료할 때 사용되는 명령어

-t : n t 옵션 뒤에 n초를 명시해서, 경고 메시지를 보낸후 n초 후에 kill 시그널을 보냄
-h : shutdown시 halt를 실행
-r : 시스템 종료를 완료하고 나서 다시 부팅 과정을 수행 (reboot)
-c : 이미 예약되어 있는 shutdown을 취소
-k : 모든 동작을 제대로 수행하지만 시스템을 종료할 시간이 되면 아무것도 하지 않음.

반응형