'
게시물 시놀로지 기본 인증서 외부 인증서로 자동 교체 하기이 뚱이의 잡동사니에 처음 등장했습니다.
]]>
최근에 이것저것 서버를 만지다 인증서 구조를 좀 바꾸고 스크립트도 지워놓고 귀찮아서 방치했더니, 기존에 먹여놨던 인증서가 만료가 되었습니다.
예전에 시놀로지 내에서 acme를 통해 Let’s Encrypt 인증서 발급, 자동 갱신, 적용되게 만드는 방법을 포스팅 했었는데, 블로그도 여차저차 문제가 많았다보니 지워졌고 새로 쓰진 않은 상태네요.

현재 인증서는 Nginx Proxy Manager라는 리버스 프록시 관리 서비스에서 관리되고 있으며, 자동으로 갱신되는 서비스도 자체적으로 내장되어 있어서 등록만 하면 신경 끄고 써도 되는 아주 편리한 물건입니다.
여튼, 인증서가 시놀로지 외부에 있기 때문에, 인증서를 서버에서 Rsync로 시놀로지로 전송. 시놀로지에서는 주기적으로 스크립트를 구동하여, 인증서의 변화(업데이트)가 감지되면 자동으로 인증서를 교체하게 만드는것 까지 해보도록 하겠습니다.

시놀로지 인증서를 한번이라도 만져보셨으면 시놀로지의 기본 인증서가 랜덤ID로 지정된 디렉터리 안에 위치한다는것을 아실겁니다.
이 아이디는 /usr/syno/etc/certificate/_archive/DEFAULT라는 파일 안에 적혀있습니다.

그리고 서버측 인증서 위치도 파악해 둬야겠죠. 제 경우에는 홈/도커/서비스/~~/인증서 위치에 있습니다.
Nginx Proxy Manager(줄여서NPM)은 인증서를 한번 등록해두면 디렉터리가 바뀌지는 않고, 내부 인증서만 변경되기에 저 위치를 그대로 사용하면 됩니다. 나중에 변동이 있을때만 스크립트를 조금 손보면 되겠죠.
#!/bin/bash
SRC_DIR="/home/clove7802/docker/npmplus/data/tls/certbot/archive/npm-5"
FILES=("cert.pem" "privkey.pem" "fullchain.pem")
REMOTE_USER="유저"
REMOTE_HOST="시놀로지"
REMOTE_PORT=포트
REMOTE_DIR="인증서 저장위치"
for FILE in "${FILES[@]}"; do
SRC_FILE="$SRC_DIR/$FILE"
if [ -f "$SRC_FILE" ]; then
rsync -av -e "ssh -p $REMOTE_PORT" "$SRC_FILE" "${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_DIR}/"
echo "[`date`] Synced: $FILE"
else
echo "[`date`] Not found: $FILE"
fi
doneBash일단 서버측에서 전송을 하기 위한 스크립트를 먼저 작성했습니다.
그대로 넣으시면 안되고 사용 환경에따라 값들이 달라지기 때문에 적당히 수정해서 사용하시면 되겠습니다.
인증서 디렉터리에서 필요한 3개의 파일을 Rsync로 전송하는 스크립트 입니다.
저는 cron에 등록해서 주기적으로 작동되게 할 예정입니다.
cron은 사용자 입력을 받을 수가 없기 때문에 SSH 비밀번호를 입력할 수 없습니다. 저처럼 cron을 사용할 예정이라면, 미리 SSH-Key를 생성해서 시놀로지에 등록해서 비밀번호 없이 키만으로 접속이 가능하게 해두시는걸 추천드립니다.
#!/bin/bash
#기본 인증서 디렉토리 ID 읽기, 디렉터리 지정
DEFAULT_ID=$(cat /usr/syno/etc/certificate/_archive/DEFAULT)
CERT_DIR="/usr/syno/etc/certificate/_archive/${DEFAULT_ID}"
NEW_CERT_DIR="인증서 저장위치"
CHECKSUM_FILE="${NEW_CERT_DIR}/.cert_checksum"
#인증서 해시 계산
current_checksum=$(sha256sum "$NEW_CERT_DIR/cert.pem" "$NEW_CERT_DIR/fullchain.pem" "$NEW_CERT_DIR/privkey.pem" | sha256sum | awk '{print $1}')
#이전 해시 불러오기
if [ -f "$CHECKSUM_FILE" ]; then
old_checksum=$(cat "$CHECKSUM_FILE")
else
old_checksum=""
fi
#비교 및 처리
if [ "$current_checksum" != "$old_checksum" ]; then
echo "인증서 변화 감지됨"
cp -f "$NEW_CERT_DIR/cert.pem" "$CERT_DIR/cert.pem"
cp -f "$NEW_CERT_DIR/fullchain.pem" "$CERT_DIR/fullchain.pem"
cp -f "$NEW_CERT_DIR/privkey.pem" "$CERT_DIR/privkey.pem"
#기본 권한으로 변경
chmod 400 "$CERT_DIR"/*
#서비스 재시작
synosystemctl reload nginx
# 새 해시값 저장
echo "$current_checksum" > "$CHECKSUM_FILE"
else
echo "인증서 변화 없음"
fiBash다음으로 시놀로지 작업 스케줄러에 등록할 스크립트를 만들었습니다.
스크립트가 실행되면 인증서 파일 3개의 해시를 추출하고 그 3개의 해시를 다시 해시하여 하나의 파일이라도 변화가 생기면 감지 되도록 되어있습니다.
변화가 감지되면 시놀로지 기본 인증서 디렉터리에 인증서를 덮어쓰고, 권한을 기본권한대로 400으로 설정한 뒤 시놀로지 웹 서비스를 재시작하게 되어있습니다.



시놀로지 작업 스케줄에 앞에서 생성한 업데이트 스크립트를 등록하면 됩니다.
시스템 파일을 수정해야 하기 때문에 사용자는 root로 지정해주셔야 하고, 스케줄은 편하신대로 (저는 매일), 그리고 실행 명령에는 생성한 스크립트를 지정해주면 됩니다.

서버측에서 스크립트를 실행했을때 결과. 문제없이 인증서 파일들이 전송되었습니다.

시놀로지에서 스크립트를 실행했을때의 결과. 별 다른 오류 없이 전송이 되었고, 서비스 재시작도 문제 없이 완료.

이제 DSM에서 인증서를 확인 해보면 정상적으로 교체된걸 확인할 수 있습니다.
끝.
게시물 시놀로지 기본 인증서 외부 인증서로 자동 교체 하기이 뚱이의 잡동사니에 처음 등장했습니다.
]]>게시물 시놀로지에 AdGuard Home 설정하기이 뚱이의 잡동사니에 처음 등장했습니다.
]]>어느정도 기초 지식이 있다는 가정 하에 진행을 하며, 자세한 설명은 생략될 수 있습니다.
시놀로지 DS918+
DSM7.2.2 Update3



(사진이 작아서 어떤 내용인지 알아보기 힘들다면, 눌러서 확대가 가능합니다)
우선 사전 준비가 필요합니다.
1. 패키지 센터에서 Container Manager 설치
2. AdGuard Home의 파일들이 저장될 컨테이너에 마운트할 폴더를 만들어 두기.
3. SSH 활성화 ( 사용법은 여기서 설명하지 않습니다 )

ip route | grep defaultBashSSH로 시놀로지에 접속한 뒤, 명령어를 입력하여, 현재 시놀로지의 IP, 게이트웨이, 사용중인 어댑터를 확인해야 합니다.
물론 어느정도 기초지식이 있고, 네트워크가 어떻게 구성되어있는지 알고 있는 상태라면, 건너 뛰어도 됩니다.
연결한 포트에 따라 eth0이나 eth1이 될 수도 있고, Open vSwitch 기능이 활성화 되어 있는 경우, 저처럼 ovs_가 붙은 어댑터가 추가로 생겨서 거기에 아이피가 할당되어 있을수도 있습니다.

ifconfigBashifconfig 명령어를 사용하면, 여러가지 어댑터들과 상태가 나옵니다.
여기서 위에서 얻은 정보 외에 추가로 Broadcast, Mask값을 확인할 수 있습니다.
Broadcast값은 여기서 필요 없으니 얻은 정보를 조합 해본다면
IP : 192.168.0.100
Mask : 255.255.255.0
Gateway : 192.168.0.1
어댑터 : ovs_eth0
만약 Mask값이 255.255.255.0이 아니라면, 일반적인 상황이 아니므로, 무작정 이 글을 따라해서는 안되니, 기초 지식을 쌓고 지금 네트워크가 어떻게 설정되어있는지 파악을 한 뒤 작업을 하셔야함을 알려드립니다.

시놀로지는 DSM에서 기본으로 점유하고 있는 포트들이 많아서 포트 충돌을 내지 않고 컨테이너에 AdGuard Home을 설정하기 위해서 macvlan 네트워크를 생성해서 구성하는게 유리합니다.
이 macvlan은 별도의 외부 IP주소를 할당 하므로, 현재 네트워크에서 사용하지 않는 주소를 지정해 주어야 합니다.
일반적인 공유기가 있는 가정집이라면, 공유기 페이지에서 확인이 가능할 것이고, 저의 경우는 TP-Link Omada 장비로 홈 네트워크를 구성해 두었기 때문에, 별도의 컨트롤러 페이지에서 확인을 했습니다.
확인 후 사용하지 않는 IP를 사용하시면 됩니다. 일반적으로 192.168.0.1(게이트웨이) 192.168.0.255(브로드캐스트)이니 이 두개 빼고 사이에 사용하지 않는 IP값을 사용하면 됩니다

sudo docker network create -d macvlan\
-o parent=네트워크어댑터\
--subnet=서브넷/24\
--gateway=게이트웨이\
--ip-range=비어있던IP/32 ag_network(네트워크이름)Bashdocker 명령어들은 관리자 권한이 필요하므로 sudo를 잊지 마시기 바랍니다.
mask값이 255.255.255.0 인 경우, 서브넷이 /24이므로 네트워크주소/24 가 됩니다
네트워크 주소도 지금 설명하려면 길어지니 대충 일반적인 홈 네트워크라면, 게이트웨이 IP값에서 제일 뒤 숫자를 0으로 만들면 됩니다.
예시) 192.168.0.1 -> 192.168.0.0
ip-range에서는 위에서 비어있던IP/32 를 입력하면 되는데, /32 서브넷은 하나의 IP만 포함 하므로, 입력한 아이피 주소만 해당된다는 것을 의미합니다.
큰 문제가 없다면, 오류 없이 생성 됩니다. (네트워크 어댑터가 잘못되어도 생성은 되니 나중에 오류가 발생한다면 다시 확인)

라우터를 거치지 않고 컨테이너끼리 통신을 위한 브릿지 네트워크를 생성하는 부분입니다.
필요 없는 분들은 건너 뛰고 앞에서 만든 macvlan 네트워크만 사용하시면 됩니다.
Container Manager에서 네트워크 탭으로 이동 후, 추가를 눌러서 브릿지 네트워크를 생성합니다.
이름은 사용할 이름으로 임의로 입력하고, IP도 자동으로 둬도 큰 문제는 없지만, 지정해주었습니다.

sudo docker run --name adguardhome\
--restart unless-stopped\
-v /애드가드폴더/work:/opt/adguardhome/work\
-v /애드가드폴더/conf:/opt/adguardhome/conf\
--net=네트워크\
-d adguard/adguardhomeBash이제 컨테이너를 생성합니다. docker run 명령으로는 네트워크 어댑터를 하나만 지정할 수 있기에, 하나의 네트워크를 연결해서 먼저 생성하고 필요한경우 DSM에서 나머지를 붙이는 방식으로 진행 됩니다.
컨테이너를 만드는 부분은 DSM에서 똑같이 진행 가능합니다. 옵션만 잘 보고 진행 하시면 됩니다.

컨테이너가 생성된 후, 추가 네트워크를 생성했다면, 추가로 생성한 네트워크를 선택하고 관리로 들어갑니다.
AdGuard Home 컨테이너를 체크하고 적용하면, 컨테이너가 네트워크로 합류합니다.


macvlan을 만들때 사용했던 빈IP주소로 접속해보면 이제 AdGuard Home 페이지가 뜹니다.
클라이언트 목록을 확인 해보면, 새 기기가 떠있는 것을 볼 수 있습니다.
원래라면 신규로 설치 했을때 설치 페이지가 뜨지만, 저는 마이그레이션이기 때문에 로그인창이 바로 떴습니다.
AdGuard Home을 새로 설정 하는 방법은 구글에 검색하면 저보다 더 잘 설명해둔 게시물이 많으니, 참고하시면 되겠습니다.
— 참조 —
https://www.wundertech.net/how-to-install-adguard-home-on-a-synology-nas/
게시물 시놀로지에 AdGuard Home 설정하기이 뚱이의 잡동사니에 처음 등장했습니다.
]]>게시물 네트워크 부팅으로 OS를 설치해 보자이 뚱이의 잡동사니에 처음 등장했습니다.
]]>이전글 참고.
때문에 KVM 기능으로 OS 설치가 불가능해 네트워크 부팅을 사용해야 할 처지가 되었습니다.
우선 제 시나리오 입니다.
시놀로지 DHCP서버 기능을 이용하여 따로 리눅스 서버 구축 없이 PXE 부팅 구현. 그리고 webstation으로 간단하게 http서버 오픈하여 간단하게 PXE파일 다운로드가 가능하게 설정.
PXE부팅으로 IPXE로 부팅후 미리 제작한 메뉴로 진입. 후 OS 설치.

우선 네트워크 부팅을 위해서는 바이오스 상에서 네트워크 장치를 미리 활성화를 시켜주고 부팅 우선순위로 지정 합니다.

그다음 시놀로지 제어판 -> 파일 서비스 -> 고급 탭으로 이동
하단으로 내리면 TFTP 항목이 있는데 TFTP 서비스를 활성화 한 뒤, 부팅에 사용될 파일들이 있는곳을 TFTP 루트 폴더로 지정합니다.


시놀로지 DHCP 패키지를 설치하고 DHCP 서버를 활성화 시켜주어야 합니다. 서브넷을 생성 해 주어야 하는데, 사용중인 라우터의 IP 대역을 그대로 사용하시면 됩니다. 그 다음 PXE탭으로 가서 또 PXE를 활성화 해주어야 하고, 로컬 TFTP 서버를 선택하면 앞에서 루트 폴더로 지정한 곳의 내용물이 나오게 됩니다. IPXE를 사용하기 위해서는 undionly.kpxe 파일을 선택하면 이 파일로 부팅이 가능해 집니다.
undionly.kpxe는 이곳 에서 다운로드 가능 합니다.
ipxe로 부팅된 후 사용할 메뉴 파일을 제작해야 합니다. 메뉴 파일을 제작해두지 않으면 이미지 로드와 부팅과같은 명령어들을 일일이 입력해야 하기 때문에 효율이 떨어지고 귀찮기때문에 미리 만들어두는게 좋습니다.
개인 환경마다 base-url로 사용할 주소와 부팅에 사용할 파일들이 다르기 때문에 바로 사용은 못하겠지만, 일단 참고용으로 제가 만든 menu.ipxe 파일 첨부합니다.
#!ipxe
# Variables are specified in boot.ipxe.cfg
# Some menu defaults
set menu-timeout 5000
set base-url http://192.168.0.100:81/
:start
menu iPXE boot menu for ${manufacturer} ${product} (${archb}bit)
item proxmox proxmox
item debian debian
item gparted gparted
item boot-repair boot-repair
item shell Drop to iPXE shell
item reboot Reboot computer
item
item --key x exit E${chotkey}x${resetbold}it iPXE and continue BIOS boot
choose --timeout ${menu-timeout} --default ${menu-default} selected || goto cancel
set menu-timeout 0
goto ${selected}
:cancel
echo You cancelled the menu, dropping you to a shell
:shell
echo Type 'exit' to get the back to the menu
shell
set menu-timeout 0
set submenu-timeout 0
goto start
:failed
echo Booting failed, dropping to shell
goto shell
:proxmox
initrd ${base-url}proxmox/initrd
chain ${base-url}proxmox/linux26 vga=791 video=vesafb:ywrap,mtrr ramdisk_size=2097152 rw quiet initrd=initrd splash=silent
imgfree
goto start
:debian
menu label debian
kernel ${base-url}debian-installer/amd64/linux vga=788 initrd=initrd.gz
initrd ${base-url}debian-installer/amd64/initrd.gz
boot || imgfree
goto start
:gparted
menu label gparted
kernel ${base-url}memdisk iso raw
initrd ${base-url}iso/gparted.iso
boot || imgfree
goto start
:boot-repair
menu label boot-repair
kernel ${base-url}memdisk iso raw
initrd ${base-url}iso/boot-repair.iso
boot || imgfree
goto startBash실제로 작업을 하면서 글을 쓰다보니 놓친 사진들이 많아 vmware로 시연한 사진들이 일부 포함되어 있으니 참고 바랍니다. ( 실 사용과 일치 )

이제 직접 부팅을 시도해 봅니다. 모든 구성이 정상이라면 현재 PC의 맥주소와 할당된 아이피, DHCP 서버주소 ( 여기서는 시놀로지의 IP )가 표시 됩니다.

PXE환경에서 undionly.kpxe파일이 정상적으로 로드가 되면 iPXE 로더로 부팅이 됩니다.
iPXE로 부팅이되면 컨트롤 + B 조합으로 커맨드라인으로 진입할 수 있습니다.

커맨드라인으로 진입되면 우선 dhcp를 입력하여 아이피를 할당 받는 작업을 합니다.
chain http://메뉴파일주소를 입력하여 메뉴로 부팅을 시도합니다.

메뉴 작성에 문제가 없다면 위와 유사한 형태의 메뉴가 표시가 됩니다.



pxe 부팅까지는 금방 하는데 메뉴에서 인스톨러로 부팅시키는 과정에서 삽질을 오래 해서 그런가 체감상 엄청 오래 걸린 듯 합니다.
다행히 많은 시도 끝에 부팅 성공했고 서버도 다시 잘 세팅했습니다. 끝.
게시물 네트워크 부팅으로 OS를 설치해 보자이 뚱이의 잡동사니에 처음 등장했습니다.
]]>게시물 NanoKVM을 사용해 보자이 뚱이의 잡동사니에 처음 등장했습니다.
]]>
친구가 나노KVM 5개 팩을 구매하면서 써보지 않겠느냐며 선물해 줬습니다.
RISC-V를 기반으로 두고 있는 나노KVM은 성능이 그닥 뛰어나거나 하진 않지만, 특정 목적에 특화된 칩을 설계할 수 있다는 장점이 있는데 쉽게 말하자면 ARM 대체제라고 볼 수 있습니다. 성능 대비 전력 소비가 적기 때문에 PC나 모바일AP보다는 이런 임베디드로의 전망이 밝습니다.
아무튼 복잡한 얘기는 넘어갑시다.
이 나노KVM이라는 녀석은 제가 라즈베리파이로 KVM을 자작할때부터 알고 있던 녀석인데, 중국에서 나온 녀석인데다, RISC-V칩도 자체 설계에 이제 막 시장에 나온 녀석이라 선뜻 사보기가 힘들어서 흥미롭게 보기만 했던 제품입니다.
중국제품 이다보니 백도어 이슈도 있긴 합니다만.. 오픈소스로 전환되었기에 조금은 안심할 수 있는 부분입니다.


언박싱. KVM 본체와 KVM-B라고 적혀있는 보드가 있는데, KVM-B는 ATX 보드와 연결하여 KVM상에서 시스템을 제어할 수 있게 도와주는 보드입니다. 파워버튼, 리셋, I/O LED 등등.
하단에는 점퍼케이블과 USB A to C케이블 두개, 유심핀? 이 들어있습니다. 핀은 아마 리셋에 사용하라고 넣어준 것 같네요.

서버로 사용중인 미니 PC에 연결했습니다. USB와 HDMI, 랜선만 꽂으면 바로 사용 가능합니다.
앞서 말한 RISC-V의 장점인 저전력 덕분에 호스트에 연결한 USB만으로 전력을 공급받고 작동이 가능합니다.
호스트 전원이 끊어질 경우나, USB만으로 전력 공급이 불안정할 때 사용할 수 있는 AUX(외부전원) 포트가 있으나 저의경우 USB만으로 충분했습니다.
부팅되면 OLED화면에 이더넷, HID(휴먼 인터페이스 장치), HDMI 연결 상태와, IP를 포함한 정보들을 볼 수 있습니다.
웹 콘솔 설정에서 화면 온오프 설정이 가능합니다.

KVM이 할당된 IP주소로 접속 해 보면 바로 웹UI가 뜹니다. 기본 계정과 비밀번호는 admin/admin 이므로 바꾸는게 좋습니다.

로그인 후 바로 화면이 표시 됩니다. 상단 메뉴에 출력 해상도, 품질등을 설정할 수 있고, 클립보드 기능으로 호스트로 긴 문장을 입력하는데 도움이 되는 기능도 있습니다. 이미지를 가상 CD로 입력시키는 기능도 있고, 스크립트라는 매크로 기능도 있습니다.
대체적으로 PiKVM 기능과 거의 비슷한 기능이 갖추어져 있지만 조금 더 다듬어졌고, 깔끔한 모습을 하고 있습니다.

설정입니다. 장치 정보를 보거나, 메뉴에 표시할 항목을 선택하거나, 나노KVM의 SSH를 켜는등 다양한 기능이 있고, 소프트웨어 업데이트 확인도 가능합니다.
단점이라면 나노KVM에는 SD카드가 하나 들어가는데 (풀버전의 경우 미리 이미지가 올라간 상태로 장착되어 제공)
이미지 버전 (OS? 잘 모르겠음) 업데이트는 github에 릴리즈 되는 이미지를 직접 SD카드에 써줘야 업데이트가 가능합니다.
처음에는 왜인지 모를 불안정한 부분이 있었으나 저도 이미지 업데이트까지 하고 나니 괜찮아진듯한 플라시보 효과? 를 느낄 수 있었습니다.
가격 – 풀버전 기준 한화로 6만원 초중반대를 형성하고 있고, 라즈베리파이로 PiKVM을 구성할 경우 다 빼고 필수 부품만 넣는다 하더라도 나노KVM 가격은 훨씬 넘어가기 때문에 KVM용도로만 봤을때는 나노KVM이 훨씬 가성비가 좋다.
구성품 – 풀버전 기준으로 ATX 제어 보드와 거기에 사용할 수 있는 점퍼 케이블까지 포함되어 있기 때문에 킷 하나만 구매하면 따로 추가로 구매하거나 제작할 것이 없고, USB 케이블도 C to C 케이블이 아닌것은 아쉽지만 저전력 제품이기 때문에 별 문제가 안되며 두개가 기본 제공 되기 때문에 괜찮다.
다양성 – 지금 당장은 KVM over IP 제품은 PC 내부에 설치할 수 있는 PCIe 모델과 지금 리뷰한 큐브형태만 팔고있다. PCIe 모델이 상당히 괜찮아 보인다.
추천.
게시물 NanoKVM을 사용해 보자이 뚱이의 잡동사니에 처음 등장했습니다.
]]>게시물 윈도우에서 NFS 클라이언트 기능을 사용해 보자이 뚱이의 잡동사니에 처음 등장했습니다.
]]>오늘은 이미 구축되어있는 NFS를 윈도우 클라이언트에서 사용하는 법을 알아보도록 하겠습니다.

우선 NFS 기능을 사용하기 위해서는 먼저 윈도우 기능을 먼저 활성화 시켜줘야 합니다. 기본적으로 비활성화 되어있기 때문에 활성화 해주지 않으면 사용이 불가능 합니다.
제어판 -> 프로그램 -> 프로그램 및 기능 -> Windows 기능 켜기/끄기 로 진입 가능.
목록 중간쯤 NFS용 서비스를 펼쳐서 NFS용 클라이언트, 관리 도구를 체크하고 재부팅이나 로그아웃 후 로그인 합니다.

mount 서버주소 마운트경로
-o는 옵션을 사용할때만 사용하는 인자라 없어도 마운트 하는데는 문제 없습니다.

이제 내PC로 들어가서 마운트된 Z 드라이브를 보면 자료들은 잘 뜨지만 한글들이 다 깨져서 나옵니다. 이건 윈도우에서 로캘 설정때문에 일어나는 현상인데 해결할 방법이 있습니다.


실행이나 시작에서 intl.cpl을 입력하고 들어가면 국가 또는 지역 설정 창이 뜹니다.
관리자 옵션 탭으로 이동한 뒤 하단의 시스템 로캘 변경을 누르면 지역 설정 창이 또 뜨는데, 로캘은 건들지 말고 Beta라고 되어있는 체크박스만 체크하여 UTF-8을 활성화 해줍니다.

재부팅을 한 뒤 NFS를 다시 마운트 해보면 정상적으로 한글이 잘 표시되는 것을 볼 수 있습니다.
로그인시 NFS 볼륨을 자동으로 마운트가 되게 하고 싶다면 작업 스케줄러에 명령어를 등록해서 자동으로 실행되게 하는 방법을 사용해야 합니다. 이 방법도 뒤에 설명 하겠습니다.

NFS 전송 테스트. 잘 됩니다. 대역폭도 잘 쓰네요

이제 로그온 했을 때 자동으로 마운트가 되도록 설정해 보도록 하겠습니다.
작업 스케줄러를 실행하고 사이드 메뉴에 작업 만들기를 선택합니다.
새 작업 만들기 창이 뜨면 이름은 본인이 알아보기 쉽게 정하시면 되고, 트리거 탭으로 넘어갑니다.

트리거 탭에서 새로 만들기를 누릅니다. 이곳은 작업이 어떤 상황에 작업이 실행되게 할건지 설정하는 곳입니다.
저는 유저 불문 로그온할 때 자동으로 마운트되게 하고 싶으니 로그온할 때 모든 사용자로 설정하고 확인을 누릅니다.
트리거가 생성이 되었으면 동작 탭으로 이동합니다.

동작 탭에서는 작업이 실행될 때 어떤 것들을 동작시킬 것 인지 지정할 수 있습니다. 프로그램부터 스크립트까지 거의 안되는게 없다고 보시면 됩니다.
일단 새로 만들기를 선택하고, 동작은 프로그램 시작으로 설정 합니다.
프로그램은 볼륨 마운트를 담당하는 mount.exe를 지정해 주어야 합니다. 기본적으로 C:\Windows\System32 에 mount.exe가 위치하고 있습니다. 인수 추가에 이제 mount.exe 뒤에 옵션으로 붙이는 것들을 추가하시면 됩니다. 저의경우 192.168.0.100:/volume1/Storage Z:

추가된 동작 입니다. 추가한 옵션이 잘 입력 되었는지 확인 후 확인을 눌러서 닫습니다.


모든 작업이 완료 되었으면 새로 로그온 했을 때 마운트가 잘 되었는지 확인 하시면 됩니다. 끝!
참조.
https://learn.microsoft.com/ko-kr/windows-server/administration/windows-commands/mount
https://soccerda.tistory.com/111
게시물 윈도우에서 NFS 클라이언트 기능을 사용해 보자이 뚱이의 잡동사니에 처음 등장했습니다.
]]>게시물 PiKVM 키보드, 마우스 조작 안될 때 조치하는 방법이 뚱이의 잡동사니에 처음 등장했습니다.
]]>
이전 글에서 PiKVM 세팅을 했는데 OS부팅전 키보드 마우스 입력이 먹지 않는다는 것을 알게 되었습니다.
우측 상단을 보면 상태 아이콘들이 표시되고 있습니다. 사용 불가능 하거나 연결되지 않은 경우 황색 아이콘이 점등되고 정상일땐 녹색, 그리고 접속은 되었으나 사용중이 아닐땐 회색으로 표시됩니다.
처음에는 바이오스 설정에서 빠른 부팅 옵션을 켜둔줄 알았는데 그게 아니라 키보드 마우스 자체가 안먹는 상태였더라구요.
원인은 바이오스에서 하나의 포트에서 여러가지 에뮬레이트된 장치를 인식할 수 없어서 발생한 문제였습니다.
kvmd-otgconf 명령어를 사용하여 동적(임시)으로 USB 장치를 제어할 수 있습니다.



우선 PiKVM 웹UI에서 터미널을 실행하여 PiKVM으로 접근합니다.
kvmd-otgconf 명령어를 사용해야 하는데 유저 모드에서는 권한이 없어서 설정은 불가능 하기에 루트로 로그인 하여 작업을 진행했습니다.
우선 kvmd-otgconf명령어를 옵션 없이 입력하면 에뮬레이팅 장치가 표시됩니다. 키보드, 마우스, 스토리지
이름 앞에 + 표시가 있으면 활성화 된 상태고 – 표시가 있으면 비활성화 된 상태입니다.
바이오스에서 키보드 조작을 하기 위해서는 mass_storage.usb0 이라는 장치를 비활성화 해줘야 합니다.
kvmd-otgconf -d 장치명
예) kvmd-otgconf -d mass_storage.usb0Bash
명령을 제대로 입력했다면 장치 앞에 – 표시가 나타나면서 키보드 마우스 아이콘에 황색등이 꺼지면서 사용 가능한 상태라는 표시가 됩니다.
정상적으로 조작이 가능해서 바이오스를 돌아다닐 수 있었습니다.


작업을 다 하고 부팅중입니다. 대용량 저장장치 에뮬레이트가 꺼져있기 때문에 웹UI에 있는 드라이브 기능을 이용할 수 없습니다.
사용하지 않을거면 계속 꺼둬도 상관 없겠지만, 저는 다시 돌려놓도록 하겠습니다.
kvmd-otgconf -e 장치명
예시) kvmd-otgconf -d mass_storage.usb0Bash명령어를 제대로 입력하면 장치 앞에 – 표시가 +로 설정되면서 다시 드라이브 기능이 활성화 됩니다.
터미널 사용이 끝났으면 제대로 exit로 로그아웃을 해줍니다.
끝.
참조.
https://docs.pikvm.org/usb_dynamic
문서에 따르면 이 기능은 현재 실험적인 기능으로 확률은 낮지만 커널 패닉이 발생하고 재부팅 되는 경우가 있을 수 있다고 하니 참고하시기 바랍니다.
영구적으로 mass storage device 기능을 비활성화 하려면
https://docs.pikvm.org/msd/#disabling-mass-storage
문서를 참조하시기 바랍니다
게시물 PiKVM 키보드, 마우스 조작 안될 때 조치하는 방법이 뚱이의 잡동사니에 처음 등장했습니다.
]]>