Category Archives: Linux / Unix

TCG OPAL로 HW Encryption 해제하기

samsung 970 evo 에 TCG OPAL로 HW Encryption 적용하기

방치하던 970 evo를  방출하기 위해 초기화 하였다.

진행방법으로

Pre Boot Authorization 패스워드 입력창에 “debug” 입력시 쉘 획득 가능

쉘에서 아래 명령어 실행

# sedutil-cli –revertTPer <SID_password> /dev/nvme0n1

혹시 비밀번호 까먹었으면 본체에 붙어있는 라벨에서 PSID를 이용해 초기화 가능.

# sedutil-cli –yesIreallywanttoERASEALLmydatausingthePSID <PSID> /dev/nvme0n1

Ubuntu Laptop disable going to sleep when lid closed

lightdm과 같은 윈도 매니저 쓸때는 전원 컨트롤이 잘 되었으나 콘솔모드에서 뚜껑을 덮으면 연결된 네트워크가 끊어지는 문제 발생

추적결과 대충 아래의 메시지 발견

systemd-logind[12221]: Lid closed.
systemd-logind[12221]: Suspending...
NetworkManager[878]: <info>  [1572522339.0077] manager: sleep: sleep requested (sleeping: no  enabled: yes)
NetworkManager[878]: <info>  [1572522339.0078] device (wlp4s0): state change: unavailable -> unmanaged (reason 'sleeping', sys-iface-state: 'managed')
NetworkManager[878]: <info>  [1572522339.0084] manager: NetworkManager state is now ASLEEP
NetworkManager[878]: <info>  [1572522339.0088] device (enp2s0): state change: activated -> deactivating (reason 'sleeping', sys-iface-state: 'managed')
dbus-daemon[835]: [system] Activating via systemd: service name='org.freedesktop.nm_dispatcher' unit='dbus-org.freedesktop.nm-dispatcher.service' requested by ':1
NetworkManager[878]: <info>  [1572522339.0280] device (enp2s0): state change: deactivating -> disconnected (reason 'sleeping', sys-iface-state: 'managed')
vmnet-natd[11087]: RTM_NEWLINK: name:enp2s0 index:2 flags:0x00011043
vmnetBridge[11065]: RTM_NEWLINK: name:enp2s0 index:2 flags:0x00011043
systemd[1]: Starting Network Manager Script Dispatcher Service...
dbus-daemon[835]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher'
systemd[1]: Started Network Manager Script Dispatcher Service.
nm-dispatcher[23024]: req:1 'connectivity-change': new request (1 scripts)
nm-dispatcher[23024]: req:1 'connectivity-change': start running ordered scripts...
NetworkManager[878]: <info>  [1572522339.0930] dhcp4 (enp2s0): canceled DHCP transaction, DHCP client pid 22932
NetworkManager[878]: <info>  [1572522339.0930] dhcp4 (enp2s0): state changed bound -> done
vmnet-natd[11087]: RTM_DELROUTE: index:2
vmnetBridge[11065]: RTM_DELROUTE: index:2
vmnet-natd[11087]: RTM_DELADDR: index:2, addr:192.168.1.32
NetworkManager[878]: <warn>  [1572522339.0959] dns-mgr: update-dns: plugin unbound update failed
NetworkManager[878]: <info>  [1572522339.1035] device (enp2s0): state change: disconnected -> unmanaged (reason 'sleeping', sys-iface-state: 'managed')
nm-dispatcher[23024]: req:2 'down' [enp2s0]: new request (1 scripts)
nm-dispatcher[23024]: req:2 'down' [enp2s0]: start running ordered scripts...
kernel: r8169 0000:02:00.0 enp2s0: Link is Down
vmnetBridge[11065]: RTM_NEWLINK: name:enp2s0 index:2 flags:0x00001002
vmnet-natd[11087]: RTM_NEWLINK: name:enp2s0 index:2 flags:0x00001002
vmnetBridge[11065]: Removing interface enp2s0 index:2
vmnetBridge[11065]: Stopped bridge enp2s0 to virtual network 0.
kernel: userif-3: sent link down event.
kernel: userif-3: sent link up event.

“/etc/systemd/logind.conf” 파일의

HandleLidSwitch=ignore
HandleLidSwitchDocked=ignore

부분 수정 후 재부팅

systemd-logind[968]: Lid closed.
systemd-logind[968]: Lid opened.
systemd-logind[968]: Lid closed.

반응없음을 확인

Flac Wav파일 CUE로 분할 및 태그 정리

*.cue로 *.wav 분할하기 (flac 가능, 결과는 wav로..)

shnsplit -f *.cue *.wav -t “%n %t”

분할된 wav를 다시 flac 압축

flac *.wav

CUE를 기반으로 Tag 생성 (cuetools 필요)

cuetag.sh *.cue *.flac

TAG를 기반으로 Filename 변경

for a in *.flac; do
ARTIST=`metaflac “$a” –show-tag=ARTIST | sed s/.*=//g`
TITLE=`metaflac “$a” –show-tag=TITLE | sed s/.*=//g`
TRACKNUMBER=`metaflac “$a” –show-tag=TRACKNUMBER | sed s/.*=//g`
mv “$a” “`printf %02g $TRACKNUMBER` – $ARTIST – $TITLE.flac”
done

ref.

https://wiki.archlinux.org/index.php/CUE_Splitting
http://lglinux.blogspot.com/2008/10/use-flac-tags-to-rename-files.html

luks crypt partition resize

윈도우랑 리눅스랑 듀얼부팅하다가 윈도우를 전혀 안써서 지워버리기로했다. (사실 ssd 용량이 딸려서…)
백업은 필수라지만 귀찮고 귀찮고 귀찮아서 백업을 하지않고 진행(다행히도 날리진 않았다)
다음은 resize 절차이다 ( 확장할때 사용한 명령어들, 축소는 음… 글쎄…)

본인의 경우는 root directory는 luks가 적용이 되어있지 않아 그냥 부팅한 후 /home 을 umount 하여 진행하였다.

sudo gparted 로 윈도우 파티션 정리 밑 swap 축소
sudo cryptsetup luksClose crypt-vol 로 luks close 해줌
sudo parted 의 resizepart 명령어로 crypt-vol의 크기를 재지정해줌 gparted에선 아직 지원을 안하는듯..
sudo cryptsetup luksOpen crypt-vol
sudo cryptsetup resize crypt-vol
sudo e2fsck -f /dev/mapper/crypt-vol
sudo resize2fs /dev/mapper/crypt-vol

하고 mount 해주면 됨
나야뭐 다 날리면 인생 새출발할 각오로 백업을 안했는데 모든 파티션 작업에는 백업은 필수

생각보다 어렵진 않았다. live usb 이딴거 필요없었다.

Linux Loop Device

losetup 으로 루프디바이스를 설정하면 파티션들이 보여야되는데 보이지 않는 문제 발견

http://askubuntu.com/questions/69363/mount-single-partition-from-image-of-entire-disk-device#673257

loop module max_part config
This is a decent method before 16.04.
loop is a kernel module, built into the kernel in Ubuntu 14.04.
If you configure it right, Linux automatically splits up the devices for you.
If you configure it right, Linux automatically splits up the devices for you.

cat /sys/module/loop/parameters/max_part

says how many partitions loop devices can generate.
It is 0 by default on Ubuntu 14.04 which is why no auto-splitting happens.
To change it, we can either add:

options loop max_part=31

to a file in /etc/modprobe, or:

GRUB_CMDLINE_LINUX="loop.max_part=31"

to /etc/default/grub and then sudo update-grub.
How to set a module parameter is also covered at: How to add kernel module parameters?
After a reboot, when you do:

sudo losetup -f --show my.img

it mounts the image to a /dev/loopX device, and automatically mounts the partitions to /dev/loopXpY devices.

의 해결책은 조금 귀찮으므로
https://lwn.net/Articles/274113/
에서 제시한  “modprobe loop max_part=63” 를 사용,

root@debian:~/z# ls /dev/loop0p*
/dev/loop0p1 /dev/loop0p2 /dev/loop0p3 /dev/loop0p4 /dev/loop0p5 /dev/loop0p6 /dev/loop0p7

잘된다