반응형



예전에 간단히 적었던 적이 있었는데....이번에 업그레이드 하고 보니 eth0 에 ipv6 ip 가 할당되어 있더군요.

localhost 부분에는 ipv6 가 할당되지 않은걸로 봐선.....예전 포스팅에서 설정했던게 완전 무효화 된건 아닌거 같고요. eth0 같이 새로 할당받는 장치에는 예전에 포스팅했던 sysctl.conf 에 설정하는 방법이 통하지 않는것 같습니다.


sudo sysctl net.ipv6.conf.eth0.disable_ipv6=1


이런식으로 터미널에서 입력해 줘도 되긴 되는거 같은데....아예 근본적으로 ipv6 를 제외하는 방법을 적어 볼까 합니다.


사실 https://wiki.archlinux.org/index.php/IPv6  에 보면 나와있는 내용입니다. 잘 보니 예전과는 조금 내용이 변해 있더군요.


이번에 포스팅 할 내용은 아예 grub 에 옵션으로 줘서 ipv6 자체 기능을 정지시키는 것입니다.




cd /etc/default  


명령으로 해당 디렉토리로 이동합니다. 


sudo vi grub  이나 sudo gedit grub , sudo nano grub  같은 명령으로 해당 파일을 수정합니다.


수정해야 할 곳은


GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"


라고 된곳입니다. 이 뒤에 우리들이 옵션을 추가 하는 것입니다. 추가할 옵션은 ipv6.disable=1 입니다. 즉 위의 라인을


GRUB_CMDLINE_LINUX_DEFAULT="quiet splash ipv6.disable=1"


이렇게 수정하면 됩니다.


이렇게 수정한게 끝이 아니라 한가지 작업을 더 해줘야 합니다. 위에 수정한 내용을 바탕으로, 새로 grub.cfg 를 생성해 줘야 합니다.


sudo grub-mkconfig -o /boot/grub/grub.cfg


명령으로 해당 파일을 생성합니다. 제대로 설정 되었는지 확인하려면, 재부팅시에 grub 이 실행되었을때 'e' 키를 눌러서 우리가 추가한 옵션이 잘 추가되어 있는지 확인해 볼 수 있습니다.


또한 ipv6 가 제대로 비활성화 되어있는지 확인해 보려면 부팅후에 '/proc/sys/net'  디렉토리를 확인해 보면 됩니다.


원래는 여기에 'ipv6' 디렉토리가 있으나 위에서 처럼 설정하고 와서 확인해 보면 아예 ipv6 디렉토리가 존재하지 않습니다. 


우분투 기준이라 sudo 가 들어갔지만 다른 리눅스에선 명령문 입력시에 sudo 를 제외하시고 root 로 로그인해서 작업하시면 됩니다.




반응형




보통 컴퓨터에 리눅스를 쓸때 윈도우와 함께 쓰는 경우가 많습니다. 저도 대부분은 리눅스를 사용하지만 국내 특성상 리눅스만 쓰기는 어렵죠. 또 게임은 아무래도 윈도우즈로 나오는 경우가 더 많고요.

문제는 윈도우 설치후 리눅스를 설치할 경우는 문제가 없지만 리눅스 설치후에 윈도우를 설치하면 윈도우가 부팅영역을 다시 써 버려서 리눅스로 부팅을 할 수 없게 된다는 것입니다.
이럴 경우 grub 을 다시 설치해 줘야 리눅스로 부팅 할 수 있습니다. 윈도우 부트 영역이 망가지면 윈도우 설치씨디를 이용하듯이 리눅스도 설치 라이브 씨디가 있으면 쉽게 복원이 가능 합니다.

저는 우분투에서 작업했지만 다른 리눅스의 경우도 비슷하게 가능할 겁니다.




우선 리눅스 라이브 씨디로 부팅을 합니다. 그리고 부팅이 완료되면 터미널 프로그램을 실행 합니다.

1. "sudo su" 명령으로 root 권한을 얻습니다.

2. "mount /dev/sda(x) /mnt" 명령으로 자신의 리눅스 파티션을 마운트 해 줍니다. sda(x) 부분은 sda2, sda3 이런식으로 자신이 리눅스를 설치한 파티션을 입력해 줘야 합니다. 만일 잘 모르면 "fdisk -l" 명령으로 리눅스 파티션을 확인 해 볼 수 있습니다.


2015.12.10 추가사항


btrfs 파일 시스템을 이용하시는 경우에는 마운트 할때 옵션을 필요로 합니다.


mount -o subvol=@ /dev/sda(x) /mnt

이런식으로 서브볼륨 옵션을 줘야 제대로 작동합니다.


3. "cd /mnt" 명령으로 자신이 마운트한 디렉토리로 이동합니다. 이동후에 "ls" 를 해보면 자신의 리눅스 루트 디렉토리가 보이는 것을 알 수 있습니다. mount 란 개념을 숙지하고 계시다면 이해가 잘 가실텐데 모르시겠다면......음......


4.
mount --bind /proc proc
mount --bind /sys sys
mount --bind /dev dev

위 세 문장을 입력해 줍니다. 대충 이런거 아니겠나 싶지만 솔직히 저 위 세문장에 대한 의미는 저도 정확히는 모릅니다.

5. "chroot ." 을 입력해 줍니다. 루트 디렉토리를 현재 디렉토리로 바꿔주는 겁니다. 바꿔치기라고 할까요?

6. "grub-install /dev/sda" 명령을 입력해 줍니다. 리눅스를 sda2 던 sda3 이던 sda 에 설치했다면 sda 하드디스크에 grub 을 설치하는게 맞겠죠. 즉 sda 부분은 부팅 하드디스크를 선택해 줘야 합니다. 하드디스크가 1개면 일반적으로 sda 라고 생각하시면 됩니다.

7. "update-grub" 명령을 입력해 줍니다.

이제 재부팅 하면 grub 이 다시 실행되고 리눅스로도 부팅이 가능 할것 입니다.




마지막으로 주의할 점이라면......사실 그럴일은 거의 없겠지만 32비트 리눅스를 설치했다면 32비트 라이브 씨디를, 64비트 리눅스를 설치했다면 64비트 라이브 씨디를 이용해야 합니다. chroot  부분을 생각해보면 당연하다고 할 수 도 있겠습니다만.....



+ Recent posts