

一身上の都合によりArch系ディトリであるArchLabsのシステムを暗号化して使わざるをえなくなった者です.事の次第を書いていきます.

## なぜ暗号化したのか

完結にまとめますと,ラップトップを紛失した際や,万が一犯罪に巻き込まれてしまった時のために暗号化しました.もちろんプライバシー保護を強固なものにするという理由でもあります.

## 本題

システムを暗号化したものの,何故かOSの読み込み(ログインではない)と同時に暗号化が自動で解除されてしまいます.本来であれば,システム起動時にパスフレーズを求められるはずですが,なぜかそれがありませんでした.調べてみてもよくわからず,どうもキーファイルを自動で読み込んでいるのではないか(暗号化する際に英語で"キーファイルが..."と出たので)と想像していますが,根本的な解決には至りませんでした.

## 参考にしたサイト

暗号化の方法は[こちら](http://u10e10.hatenablog.com/entry/dm-crypt-
usage)の方法で暗号化しました,ただ暗号化方式はAESではなくCamelliaに変更し,システムのインストールとロケーション設定や領域のフォーマット・ディレクトリの割当には専用のインストーラーである`archlabs-
installer`を使いました.

なお,GRUBに暗号化パーティションを読み込ませる方法は上記のサイトを参考にしました.

## まとめ

まとまりのない文章になりましたが,伺いたいことをまとめると

  * システム起動時にパスフレーズを求めてくるように設定するにはどうすればよいのか?
  * どこをどのように変更すればよいのか?

なるべく情報を絞り出してみましたが,これぐらいしか書けませんでした.  
不明な点等がございましたらコメントの方までお願いします.

## 追記:設定ファイル等の諸設定

GitHubに設定等をまとめたテキストをアップロードしようかと思いましたが,スタックオーバーフローの中で完結した方が得策かと存じ上げますので,こちらに設定等を書かせていただきます.

## /etc/crypttab

特に何も書かれていませんでしたが,念の為こちらに掲載させていただきます.

[code]

    # Configuration for encrypted block devices.
    # See crypttab(5) for details.
    
    # NOTE: Do not list your root (/) partition here, it must be set up
    #       beforehand by the initramfs (/etc/mkinitcpio.conf).
    
    # <name>       <device>                                     <password>              <options>
    # home         UUID=b8ad5c18-f445-495d-9095-c9ec4f9d2f37    /etc/mypassword1
    # data1        /dev/sda3                                    /etc/mypassword2
    # data2        /dev/sda5                                    /etc/cryptfs.key
    # swap         /dev/sdx4                                    /dev/urandom            swap,cipher=aes-cbc-essiv:sha256,size=256
    # vol          /dev/sdb7                                    none
    
[/code]

## /etc/default/grub

[code]

    # GRUB boot loader configuration
    
    GRUB_DEFAULT=0
    GRUB_TIMEOUT=5
    GRUB_DISTRIBUTOR="ArchLabs"
    GRUB_CMDLINE_LINUX_DEFAULT=""
    GRUB_CMDLINE_LINUX="cryptdevice=/dev/sda2:cryptroot"
    
    # Preload both GPT and MBR modules so that they are not missed
    GRUB_PRELOAD_MODULES="part_gpt part_msdos"
    
    # Uncomment to enable booting from LUKS encrypted devices
    GRUB_ENABLE_CRYPTODISK=y
    
    # Uncomment to enable Hidden Menu, and optionally hide the timeout count
    #GRUB_HIDDEN_TIMEOUT=5
    #GRUB_HIDDEN_TIMEOUT_QUIET=true
    
    # Uncomment to use basic console
    GRUB_TERMINAL_INPUT=console
    
    # Uncomment to disable graphical terminal
    #GRUB_TERMINAL_OUTPUT=console
    
    # The resolution used on graphical terminal
    # note that you can use only modes which your graphic card supports via VBE
    # you can see them in real GRUB with the command `vbeinfo'
    GRUB_GFXMODE=auto
    
    # Uncomment to allow the kernel use the same resolution used by grub
    GRUB_GFXPAYLOAD_LINUX=keep
    
    # Uncomment if you want GRUB to pass to the Linux kernel the old parameter
    # format "root=/dev/xxx" instead of "root=/dev/disk/by-uuid/xxx"
    #GRUB_DISABLE_LINUX_UUID=true
    
    # Uncomment to disable generation of recovery mode menu entries
    GRUB_DISABLE_RECOVERY=true
    
    # Uncomment and set to the desired menu colors.  Used by normal and wallpaper
    # modes only.  Entries specified as foreground/background.
    #GRUB_COLOR_NORMAL="light-blue/black"
    #GRUB_COLOR_HIGHLIGHT="light-cyan/blue"
    
    # Uncomment one of them for the gfx desired, a image background or a gfxtheme
    #GRUB_BACKGROUND="/path/to/wallpaper"
    #GRUB_THEME="/path/to/gfxtheme"
    
    # Uncomment to get a beep at GRUB start
    #GRUB_INIT_TUNE="480 440 1"
    
    # Uncomment to make GRUB remember the last selection. This requires to
    # set 'GRUB_DEFAULT=saved' above.
    #GRUB_SAVEDEFAULT="true"
    
[/code]

## /etc/mkinitcpio.conf

HOOKSの内容は[このページを参考にしました](http://u10e10.hatenablog.com/entry/dm-crypt-usage)

[code]

    # vim:set ft=sh
    # MODULES
    # The following modules are loaded before any boot hooks are
    # run.  Advanced users may wish to specify all system modules
    # in this array.  For instance:
    #     MODULES=(piix ide_disk reiserfs)
    MODULES=()
    
    # BINARIES
    # This setting includes any additional binaries a given user may
    # wish into the CPIO image.  This is run last, so it may be used to
    # override the actual binaries included by a given hook
    # BINARIES are dependency parsed, so you may safely ignore libraries
    BINARIES=()
    
    # FILES
    # This setting is similar to BINARIES above, however, files are added
    # as-is and are not parsed in any way.  This is useful for config files.
    FILES=(/crypto_keyfile.bin)
    
    # HOOKS
    # This is the most important setting in this file.  The HOOKS control the
    # modules and scripts added to the image, and what happens at boot time.
    # Order is important, and it is recommended that you do not change the
    # order in which HOOKS are added.  Run 'mkinitcpio -H <hook name>' for
    # help on a given hook.
    # 'base' is _required_ unless you know precisely what you are doing.
    # 'udev' is _required_ in order to automatically load modules
    # 'filesystems' is _required_ unless you specify your fs modules in MODULES
    # Examples:
    ##   This setup specifies all modules in the MODULES setting above.
    ##   No raid, lvm2, or encrypted root is needed.
    #    HOOKS=(base)
    #
    ##   This setup will autodetect all modules for your system and should
    ##   work as a sane default
    #    HOOKS=(base udev autodetect block encrypt filesystems shutdown)
    #
    ##   This setup will generate a 'full' image which supports most systems.
    ##   No autodetection is done.
    #    HOOKS=(base udev block encrypt filesystems shutdown)
    #
    ##   This setup assembles a pata mdadm array with an encrypted root FS.
    ##   Note: See 'mkinitcpio -H mdadm' for more information on raid devices.
    #    HOOKS=(base udev block mdadm encrypt filesystems)
    #
    ##   This setup loads an lvm2 volume group on a usb device.
    #    HOOKS=(base udev block lvm2 filesystems)
    #
    ##   NOTE: If you have /usr on a separate partition, you MUST include the
    #    usr, fsck and shutdown hooks.
    HOOKS=(base udev autodetect modconf keyboard keymap block encrypt filesystems fsck)
    # COMPRESSION
    # Use this to compress the initramfs image. By default, gzip compression
    # is used. Use 'cat' to create an uncompressed image.
    #COMPRESSION="gzip"
    #COMPRESSION="bzip2"
    #COMPRESSION="lzma"
    #COMPRESSION="xz"
    #COMPRESSION="lzop"
    #COMPRESSION="lz4"
    
    # COMPRESSION_OPTIONS
    # Additional options for the compressor
    #COMPRESSION_OPTIONS=()
    
[/code]


CC BY-SA 4.0
2019-06-27T05:10:39.700
56132
2019-06-27T07:01:07.613
2019-06-27T07:01:07.613
30493
30493
question
linux encryption
システムを暗号化したArch系OSが自動で暗号化を解除してしまう問題について