LXC 컨테이너를 시작할 때 호스트 시스템 키보드 레이아웃이 변경됩니다.

LXC 컨테이너를 시작할 때 호스트 시스템 키보드 레이아웃이 변경됩니다.

lxc를 사용하여 Archlinux 호스트에 Archlinux 컨테이너를 성공적으로 만들었습니다. 그러나 다음을 통해 컨테이너를 시작할 때마다

    lxc-start -n GUESTNAME

호스트와 컨테이너의 키보드 레이아웃이 기본 us-레이아웃으로 변경됩니다. 하지만 나는 그것이 de-latin1이기를 원합니다. 놀랍게도, 사실에도 불구하고

    /etc/vconsole.conf

호스트와 컨테이너에서 옵션을 설정했습니다.

    KEYMAP=de-latin1

이 문제의 원인은 vconsole 옵션 설정을 담당하는 systemd 서비스가 컨테이너 내부에서 실행되고 있지 않기 때문인 것 같습니다.

            systemctl status systemd-vconsole-setup
     ● systemd-vconsole-setup.service - Setup Virtual Console
       Loaded: loaded (/usr/lib/systemd/system/systemd-vconsole-setup.service; static)
       Active: inactive (dead)
               start condition failed at Mon 2014-06-02 20:53:10 UTC; 27s ago
               ConditionPathExists=/dev/tty0 was not met
         Docs: man:systemd-vconsole-setup.service(8)
               man:vconsole.conf(5)

그것은 어떤 면에서 보여진다

    /dev/tty0 was not met

하지만 그것이 나에게 무엇을 말하려는지 잘 모르겠습니다. Archlinux Linux 컨테이너 페이지(https://wiki.archlinux.org/index.php/Linux_Containers#Terminal_settings) 나에게 도움이 되지 않았습니다. 오류와 해결 방법을 설명해 줄 수 있는 사람이 있나요?


고쳐 쓰다:

tmux new -s stoic(1) 콘솔에서 직접 컨테이너를 시작할 때(예: tmux를 시작한 다음 실행한 sudo lxc-start -n stoic다음 tmux 세션을 통해 분리 CTRL-a-d), 즉 로그인할 때까지 키보드 레이아웃이 변경되지 않습니다 X.

이는 또 다른 가능한 설명을 가리킵니다. 로그인할 때 X키보드 레이아웃은 내 .xinitrc콘텐츠에 따라 설정됩니다.

    setxkbmap -model pc105 -layout de -variant ,qwertz -option lv3:caps_switch
    if [ -s ~/.Xmodmap ]; then
        xmodmap ~/.Xmodmap
    fi
    [[ -f ~/.Xresources ]] && xrdb -merge ~/.Xresources

sudo lxc-start -n stoic그런 다음 이를 통해 컨테이너를 실행하면 X콘솔로 부팅하는 대신 콘솔로도 부팅됩니다 X(이것이 모든 시스템을 설정한 방법입니다). 그래서 키보드 레이아웃을 재설정하는 것 같아요. 하지만 최소한 위의 규정을 준수하는 용기라면 별 문제가 되지 않습니다 /etc/vconsole.conf.

(2) 권한 있는 컨테이너를 사용합니다.

(3) 이것은 내 현재 config파일입니다.

    lxc.utsname=stoic
    lxc.autodev=1
    lxc.tty=1
    lxc.pts=1024
    lxc.mount=/var/lib/lxc/stoic/fstab
    lxc.cap.drop=sys_module mac_admin mac_override sys_time
    lxc.kmsg=0
    lxc.stopsignal=SIGRTMIN+4
    #networking
    lxc.network.type=veth
    lxc.network.link=br0
    lxc.network.flags=up
    lxc.network.name=eth0 
    lxc.network.mtu=1500
    #cgroups
    lxc.cgroup.devices.deny = a
    lxc.cgroup.devices.allow = c *:* m
    lxc.cgroup.devices.allow = b *:* m
    lxc.cgroup.devices.allow = c 1:3 rwm
    lxc.cgroup.devices.allow = c 1:5 rwm
    lxc.cgroup.devices.allow = c 1:7 rwm
    lxc.cgroup.devices.allow = c 1:8 rwm
    lxc.cgroup.devices.allow = c 1:9 rwm
    lxc.cgroup.devices.allow = c 4:1 rwm
    lxc.cgroup.devices.allow = c 5:0 rwm
    lxc.cgroup.devices.allow = c 5:1 rwm
    lxc.cgroup.devices.allow = c 5:2 rwm
    lxc.cgroup.devices.allow = c 136:* rwm
    lxc.rootfs = /var/lib/lxc/stoic/rootfs
    lxc.pts = 1024

답변1

이 문제는 -filesystem 도입으로 lxc >= 1.1버전 1에서 수정되었습니다 . 설치하고 설정하면 됩니다.fuselxcfslxclxcfs

관련 정보