Linux 1 또는 2 용 Windows 하위 시스템의 Ubuntu Server 18.04 LTS에 dm-crypt로드

ToHeuermann

내 Windows 10 시스템에서 Linux 용 Windows 하위 시스템 (WSL1)을 사용 하고 있으며 USB 장치에서 모든 데이터 를 삭제 하고이 자습서에 따라 의사 난수로 덮어 쓰려고했습니다 (독일어로만 찾았지만이 질문에는 실제로 중요하지 않습니다.) ), 필요한 커널 모듈을로드 할 수 없습니다.

dm-crypt를로드하려고 할 때

$ sudo modprobe dm-crypt
modprobe: ERROR: ../libkmod/libkmod.c:586 kmod_search_moddep() could not open moddep file '/lib/modules/4.4.0-18362-Microsoft/modules.dep.bin'
modprobe: FATAL: Module dm-crypt not found in directory /lib/modules/4.4.0-18362-Microsoft

내 Ubuntu 버전에 dm-crypt 모듈이 없다고 가정합니다.

이제 내 질문 : WSL은 일반적으로 커널 하위 시스템 dm-crypt를 지원합니까?

64 비트 Ubuntu 18.04 LTS와 함께 WSL1을 사용하고 있습니다.

업데이트 :
WSL2 및 Ubuntu 18.04 LTS로 다시 시도했지만 동일한 오류 메시지가 나타납니다.

$ sudo modprobe dm-crypt
modprobe: ERROR: ../libkmod/libkmod.c:586 kmod_search_moddep() could not open moddep file '/lib/modules/4.4.0-19013-Microsoft/modules.dep.bin'
modprobe: FATAL: Module dm-crypt not found in directory /lib/modules/4.4.0-19013-Microsoft
요한 반 톤더

WSL1을 보증 할 수는 없지만 전체 Linux 커널을 실행하고 있기 때문에 WSL2가이를 지원하는 것으로 보입니다. 사실 나는 방금 dm-crypt 모듈을로드하려고 시도했고 성공했습니다.

dm-crypt 모듈로드 됨

먼저 WSL2를 활성화해야합니다. 이 글을 쓰는 시점에서는 Windows Insider 만 사용할 수 있습니다. https://docs.microsoft.com/en-us/windows/wsl/wsl2-install

그런 다음 dm-crypt 지원을 받기 위해 사용자 지정 커널을 컴파일해야합니다. https://github.com/microsoft/WSL2-Linux-Kernel/blob/master/README-Microsoft.WSL2

git 및 일부 컴파일러를 설치합니다.

$ sudo apt install build-essential flex bison libssl-dev libelf-dev libncurses5-dev git

Microsoft WSL2 커널을 복제합니다.

$ git clone https://github.com/microsoft/WSL2-Linux-Kernel.git
$ cd WSL2-Linux-Kernel

암호화 기능을 선택해야합니다. 나는 메뉴를 사용했다 :

$ export KCONFIG_CONFIG=Microsoft/config-wsl
$ make menuconfig
[*] Enable loadable module support

Device Drivers --->
[*] Multiple devices driver support (RAID and LVM) --->
    <*> Device mapper support
    <M>   Crypt target support    

General setup  --->
    [*] Initial RAM filesystem and RAM disk (initramfs/initrd) support

Device Drivers --->
    [*] Block Devices ---> 
        <*> Loopback device support 

File systems ---> 
     <*> FUSE (Filesystem in Userspace) support 

그리고 원하는 알고리즘이 무엇이든 ...

[*] Cryptographic API ---> 
    <*> XTS support
    <*> SHA224 and SHA256 digest algorithm
    <*> AES cipher algorithms
    <*> AES cipher algorithms (x86_64)
    <*> User-space interface for hash algorithms
    <*> User-space interface for symmetric key cipher algorithms
    <*> RIPEMD-160 digest algorithm 
    <*> SHA384 and SHA512 digest algorithms 
    <*> Whirlpool digest algorithms 
    <*> LRW support 
    <*> Serpent cipher algorithm 
    <*> Twofish cipher algorithm

원하는 작업을하려면 " Cryptographic API " 에서 " XTS 지원 " 을 선택해야합니다 .

구성을 저장하고 커널을 컴파일하십시오.

$ sudo make && make modules_install

그런 다음 새 이미지를 Windows 호스트에 복사하십시오. 내 이미지 파일은 bzImage입니다.

$ cp arch/x86_64/boot/bzImage /mnt/c/Users/your-user-name/

Windows 호스트의 "Users \ your-user-name"폴더에 ".wslconfig"라는 파일을 만듭니다 (앞에 점. 표시). Notepad ++를 사용했습니다. 다음 줄을 넣으십시오.

[wsl2]
kernel=C:\\Users\\your-user-name\\bzImage
swap=0
localhostForwarding=true

WSL2 인스턴스를 종료하고 WSL2 인스턴스를 재부팅합니다 (Powershell 사용).

> wsl --shutdown

WSL2 bash 세션을 다시 열고 dm-crypt 모듈을로드 해보십시오.

$ sudo modprobe -v dm_crypt

insmod /lib/modules/4.19.81-microsoft-standard/kernel/drivers/md/dm-crypt.ko

업데이트 1 :

블록 장치에 대한 액세스와 관련하여 ...이 글을 쓰는 시점에서 Microsoft는 여전히 작업중인 것으로 보입니다 : https://github.com/Microsoft/WSL/issues/689

희망 :)

업데이트 2 :

USB / IP 또는 iSCSI 프로토콜을 통해 호스트의 USB 드라이브를 WSL2에 제공하면 WSL2의 블록 장치 제한을 피할 수 있습니다. USP / IP를 시도했지만 USB 장치가 "허브"로 분류되어 너무 많은 문제가 발생했습니다. 그래서 Windows 호스트에 iSCSI 대상을 생성하여 iSCSI 방법을 시도한 다음 WSL2 인스턴스에서 연결했습니다.

TalAloni의 github 저장소 ( https://github.com/TalAloni/iSCSIConsole) 에서 "iSCSIConsole"애플리케이션 을 사용하여 타겟을 생성했습니다.

USB 드라이브와 같은 물리적 디스크를 연결하려면 관리자 권한으로 실행해야합니다. Windows 호스트 방화벽을 통해 WSL2 인스턴스와 통신하도록 허용해야 할 수도 있습니다. 기본 iSCSI 대상 이름이 "iqn.1991-05.com.microsoft:target1"인 USB 썸 드라이브를 연결했습니다.

iSCSI 대상 추가

물리 디스크 선택

실행 후 WSL2 인스턴스에서 연결할 수 있습니다.

먼저 사용자 지정 WSL2 커널에 대해로드 된 iSCSI 드라이버 모듈이 있는지 확인해야합니다. 커널 구성 메뉴에서 활성화 한 다음 다시 컴파일했습니다.

$ KCONFIG_CONFIG=Microsoft/config-wsl make menuconfig
[*] Networking support  --->
   Networking options  --->
      [*] TCP/IP networking 

Device Drivers  --->
  SCSI device support  --->
     <*> SCSI device support --->
     <*> SCSI disk support
     <*> SCSI generic support
     SCSI Transports --->
       <M> iSCSI Transport Attributes
     [*] SCSI low-level drivers  --->
       <M> iSCSI Initiator over TCP/IP     
$ sudo make && make modules_install

새 커널과 모듈을 설치했으면 iscsi 모듈을로드합니다.

$ sudo modprobe libiscsi
$ sudo modprobe scsi_transport_iscsi
$ sudo modprobe iscsi_tcp
$ sudo modprobe libiscsi_tcp

그런 다음 WSL2 인스턴스에 클라이언트 / 이니시에이터를 설정했습니다. open-iscsi를 사용할 예정이지만 systemd가 필요하며 systemd는 기본적으로 WSL2에서 활성화되지 않습니다. 그러나 그것은 매우 쉽습니다. 다음은이를 수행하는 방법에 대한 매우 간단한 가이드입니다. https://forum.snapcraft.io/t/running-snaps-on-wsl2-insiders-only-for-now/13033 . 스냅 부분을 건너 뛸 수 있습니다.

그런 다음 open-iscsi를 설치합니다.

$ sudo apt install open-iscsi

"/etc/iscsi/iscsid.conf"를 편집하고 "node.startup"을 "automatic"으로 변경하십시오. 자동으로 설정하면 "호스트"IP가 변경되고 다시 연결할 수 없기 때문에 다음에 다시 부팅 할 때 WSL 세션이 매우 느리게 시작됩니다.

iscsi 개시자를 시작합니다.

$ sudo /etc/init.d/open-iscsi start

그런 다음 대상에 연결하고 저장 장치를 나열합니다.

$ export WSLHOSTIP=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}')
$ sudo iscsiadm -m discovery -t st -p $WSLHOSTIP

172.26.240.1:3260,-1 iqn.1991-05.com.microsoft:target1

$ sudo iscsiadm -m node

172.26.240.1:3260,-1 iqn.1991-05.com.microsoft:target1

이제 연결할 수 있습니다.

$ sudo iscsiadm -m node --targetname "iqn.1991-05.com.microsoft:target1" --portal "$WSLHOSTIP:3260" --login

Logging in to [iface: default, target: iqn.1991-05.com.microsoft:target1, portal: 172.26.240.1,3260] (multiple)
Login to [iface: default, target: iqn.1991-05.com.microsoft:target1, portal: 172.26.240.1,3260] successful.

내 USB 드라이브는 / dev / sdb 로 나열되었습니다 .

$ ls /dev/sd*

/dev/sda  /dev/sdb

$ sudo fdisk -l /dev/sdb

Disk /dev/sdb: 30 GiB, 32212254720 bytes, 62914560 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x3958509f

Device     Boot Start      End  Sectors Size Id Type
/dev/sdb1  *     2048 62914559 62912512  30G  b W95 FAT32

이제 드라이브 암호화를 수행 할 수 있습니다.

$ sudo modprobe dm_crypt
$ sudo cryptsetup -d /dev/urandom -c aes-xts-plain create delete /dev/sdb  && shred -vzn 0 /dev/mapper/delete && sync && sleep 4 && cryptsetup remove delete

shred: /dev/mapper/delete: pass 1/1 (000000)...
shred: /dev/mapper/delete: pass 1/1 (000000)...32MiB/30GiB 0%
shred: /dev/mapper/delete: pass 1/1 (000000)...62MiB/30GiB 0%
shred: /dev/mapper/delete: pass 1/1 (000000)...90MiB/30GiB 0%
shred: /dev/mapper/delete: pass 1/1 (000000)...108MiB/30GiB 0%
shred: /dev/mapper/delete: pass 1/1 (000000)...137MiB/30GiB 0%
shred: /dev/mapper/delete: pass 1/1 (000000)...149MiB/30GiB 0%
...

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Windows의 Ubuntu 또는 Linux 용 Windows 하위 시스템 (WSL)의 Bash를 사용하여 파일을 .sh 스크립트로 끌어다 놓을 수 있습니까?

분류에서Dev

Windows 10 용 Linux 하위 시스템 (WSL)에서 Ubuntu 16.04 로의 업그레이드가 작동하지 않음

분류에서Dev

Windows .sh 문제에 Linux 하위 시스템을 사용하는 Ubuntu

분류에서Dev

Ubuntu WSL (Linux 용 Windows 하위 시스템)에서 VIM으로 URL 열기

분류에서Dev

Proxychains에서 구성 편집 | Windows Linux 하위 시스템 용 Ubuntu

분류에서Dev

Linux 용 Windows 하위 시스템에서 Azure Ubuntu 16x에 SSH를 사용하는 방법

분류에서Dev

bash 스크립트에서 스크립트가 Ubuntu pure 또는 Windows 용 Linux 하위 시스템에서 실행 중인지 어떻게 알 수 있습니까?

분류에서Dev

Windows (Ubuntu)의 Linux 하위 시스템을 16.04로 업데이트

분류에서Dev

Linux 용 Windows 하위 시스템에서 실행되는 Ubuntu 18.04에서 PostreSQL 10이 시작되지 않음

분류에서Dev

치명적-> Ubuntu가있는 Linux 용 Windows 하위 시스템에서 포크하지 못했습니다.

분류에서Dev

Linux 용 Windows 하위 시스템의 OpenZFS

분류에서Dev

Linux 용 Windows 하위 시스템의 Ubuntu에서 32 비트 애플리케이션 실행

분류에서Dev

Linux 용 Windows 하위 시스템의 Ubuntu에서 32 비트 애플리케이션 실행

분류에서Dev

Linux 용 Windows 하위 시스템에서 X 마우스 포인터의 크기를 설정하는 방법

분류에서Dev

Visual Studio Code에서 Linux 용 Windows 하위 시스템 내에서 포함 경로를 설정하는 방법

분류에서Dev

Linux 용 Windows 하위 시스템에서 Windows 및 Linux 용 동일한 Python을 사용하는 방법

분류에서Dev

WSL에서 Redis로 RediSearch 모듈을 실행하는 방법 (Linux 용 Windows 하위 시스템)

분류에서Dev

Windows Ubuntu 하위 시스템 경로에 Windows 경로를 추가하는 방법

분류에서Dev

시스템 재설정 또는 재설치 전에 Windows 10 용 Linux 하위 시스템을 백업 (WSL)하는 방법은 무엇입니까?

분류에서Dev

Store를 사용하지 않고 Win10 (v1709)에 Ubuntu (Linux 용 Windows 하위 시스템)를 설치하는 방법이 있습니까?

분류에서Dev

Windows Linux 하위 시스템 (Windows 10의 Ubuntu에서 Bash)을 손상 시켰습니다. Linux 도움말?

분류에서Dev

Linux 및 Windows를 사용하는 쿼드 부팅 시스템의 파티션

분류에서Dev

Windows의 Ubuntu (Windows 용 Linux 하위 시스템) 10의 BASH-내 PATH를 어떻게 설정합니까?

분류에서Dev

Windows에서 Linux 하위 시스템의 localhost에 액세스하는 방법

분류에서Dev

Linux 용 Windows 하위 시스템 용 GUI

분류에서Dev

Linux 용 Windows 하위 시스템 바탕 화면 GUI에 대한 바로 가기

분류에서Dev

Linux 용 Windows 하위 시스템에 비 저장소 프로그램 설치

분류에서Dev

Linux 시스템의 ZFS (RAID-Z1) 또는 "하드웨어"(RAID 5)?

분류에서Dev

Linux 용 Windows 하위 시스템 (Ubuntu 16.04)에서 "set -eo pipefail"이 작동하지 않음

Related 관련 기사

  1. 1

    Windows의 Ubuntu 또는 Linux 용 Windows 하위 시스템 (WSL)의 Bash를 사용하여 파일을 .sh 스크립트로 끌어다 놓을 수 있습니까?

  2. 2

    Windows 10 용 Linux 하위 시스템 (WSL)에서 Ubuntu 16.04 로의 업그레이드가 작동하지 않음

  3. 3

    Windows .sh 문제에 Linux 하위 시스템을 사용하는 Ubuntu

  4. 4

    Ubuntu WSL (Linux 용 Windows 하위 시스템)에서 VIM으로 URL 열기

  5. 5

    Proxychains에서 구성 편집 | Windows Linux 하위 시스템 용 Ubuntu

  6. 6

    Linux 용 Windows 하위 시스템에서 Azure Ubuntu 16x에 SSH를 사용하는 방법

  7. 7

    bash 스크립트에서 스크립트가 Ubuntu pure 또는 Windows 용 Linux 하위 시스템에서 실행 중인지 어떻게 알 수 있습니까?

  8. 8

    Windows (Ubuntu)의 Linux 하위 시스템을 16.04로 업데이트

  9. 9

    Linux 용 Windows 하위 시스템에서 실행되는 Ubuntu 18.04에서 PostreSQL 10이 시작되지 않음

  10. 10

    치명적-> Ubuntu가있는 Linux 용 Windows 하위 시스템에서 포크하지 못했습니다.

  11. 11

    Linux 용 Windows 하위 시스템의 OpenZFS

  12. 12

    Linux 용 Windows 하위 시스템의 Ubuntu에서 32 비트 애플리케이션 실행

  13. 13

    Linux 용 Windows 하위 시스템의 Ubuntu에서 32 비트 애플리케이션 실행

  14. 14

    Linux 용 Windows 하위 시스템에서 X 마우스 포인터의 크기를 설정하는 방법

  15. 15

    Visual Studio Code에서 Linux 용 Windows 하위 시스템 내에서 포함 경로를 설정하는 방법

  16. 16

    Linux 용 Windows 하위 시스템에서 Windows 및 Linux 용 동일한 Python을 사용하는 방법

  17. 17

    WSL에서 Redis로 RediSearch 모듈을 실행하는 방법 (Linux 용 Windows 하위 시스템)

  18. 18

    Windows Ubuntu 하위 시스템 경로에 Windows 경로를 추가하는 방법

  19. 19

    시스템 재설정 또는 재설치 전에 Windows 10 용 Linux 하위 시스템을 백업 (WSL)하는 방법은 무엇입니까?

  20. 20

    Store를 사용하지 않고 Win10 (v1709)에 Ubuntu (Linux 용 Windows 하위 시스템)를 설치하는 방법이 있습니까?

  21. 21

    Windows Linux 하위 시스템 (Windows 10의 Ubuntu에서 Bash)을 손상 시켰습니다. Linux 도움말?

  22. 22

    Linux 및 Windows를 사용하는 쿼드 부팅 시스템의 파티션

  23. 23

    Windows의 Ubuntu (Windows 용 Linux 하위 시스템) 10의 BASH-내 PATH를 어떻게 설정합니까?

  24. 24

    Windows에서 Linux 하위 시스템의 localhost에 액세스하는 방법

  25. 25

    Linux 용 Windows 하위 시스템 용 GUI

  26. 26

    Linux 용 Windows 하위 시스템 바탕 화면 GUI에 대한 바로 가기

  27. 27

    Linux 용 Windows 하위 시스템에 비 저장소 프로그램 설치

  28. 28

    Linux 시스템의 ZFS (RAID-Z1) 또는 "하드웨어"(RAID 5)?

  29. 29

    Linux 용 Windows 하위 시스템 (Ubuntu 16.04)에서 "set -eo pipefail"이 작동하지 않음

뜨겁다태그

보관