MacでEFIブートを使ってUSBにKali Linuxを完全インストールする方法【VirtualBoxでの仮想化手順も解説】
著者:Flavio De Stefano
このチュートリアルは、Macで使えるKali Linuxのフルインストール済みUSBメモリを作成したい方のためのガイドです。なお、永続化機能付きのLive版Kaliを作成する方法ではない点にご注意ください。
USBメモリにKaliをインストールする際の問題点は、KaliがディスクをVFATファイルシステムでパーティショニングすることです。macOSが認識できるのはHFS+パーティションと、それに必要な特定のファイルのみだからです。
用意するもの
- お使いのMac
- Kali ISOインストーラーを書き込んだUSBメモリ
- Kaliのインストール先となるUSBメモリ、SDカード、または外付けSSD(16GB以上・USB 3.0推奨)
このチュートリアルは、Kali向けに適切な修正を加えた上で、以下の記事から大きな影響を受けています。https://medium.com/@mmiglier/ubuntu-installation-on-usb-stick-with-pure-efi-boot-mac-compatible-469ad33645c9
ステップ1:USBへのLiveインストール
まず、以下のコマンドでKaliをUSBメモリに書き込みます。この手順の詳細は割愛しますが、まずはここから始めましょう。
$ sudo dd if={KALI_ISO.iso} of=/dev/{USB} bs=1m
準備ができたらMacを再起動し、2つのUSBメモリを挿してALTキーを押しながら起動します。EFI bootを選択すると、Liveインストーラーが立ち上がります。

Kaliインストーラーはタイムゾーンやキーボードレイアウトなど、いくつかの質問をしてきます。
ディスクのパーティショニングを尋ねられたら、Manual(手動)を選択します。次に、KaliをインストールしたいターゲットのUSBドライブを選択してください。ドライブはサイズなどの特徴で見分けられます。Continueをクリックすると、ドライブのパーティショニングが行われます。
同じ画面に戻ったら、ターゲットUSBドライブ配下のFREE SPACE(空き領域)を選択し、Continueをクリックします。続いてAutomatically partition the free space(空き領域の自動パーティショニング)を選び、推奨オプションに従って進みます。最後にFinish partitioning and write the change to disk(パーティショニングの終了と変更の書き込み)を実行しましょう。
これでデータのコピーが始まります。完了まで約30分ほどかかりますので、しばらくお待ちください。
ステップ2:GRUB Liveからの起動
インストールが完了するとMacが再起動するので、再びALTキーを押してEFI bootを選択します。
次にすべきことは、Live GRUB経由でインストール済みのKaliシステムを読み込むことです。インストールされたシステムには、macOSが認識できるブートローダーが存在しないためです。
GRUBが読み込まれたら、cキーを押してGRUBのコマンドラインインターフェースを表示します。
ここで、KaliがどのHDにインストールされているかを確認する必要があります。GRUB CLIでlsと入力し、その後USBメモリを抜いて再度lsと入力してみましょう。
grub> ls
(memdisk) (hd0) (hd1) (hd1,gpt3) (hd1, gpt2) (hd1,gpt1) ...
あるhd{X}が消えたことに気づくはずです。それがあなたのドライブです。次に、正しいgptを見つけます。おそらくgpt2でしょうが、念のため以下のコマンドで確認できます。
grub> ls (hdX,gpt2)/boot/grub
unicode.pf2 ...
unicode..と表示されればそれが正しいgptです。違う場合は他のgptを試してみてください。続いて、パーティションのUUIDを調べて控えておきます。
grub> ls -l (hdX},gpt{X})
Partition hd2,gpt2: Filesystem type ext* 〈...snip...〉 UUID e86c20b9-83e1-447d-a3be-d1ddaad6c4c6 - Partition start at [...]
これでGRUBに起動パラメータを設定できます(Tabキーで補完が使えます)。
grub> set root=(hd{X},gpt{X})
grub> linux /boot/vmlinuz〈...tab here!...〉.efi.signed root=UUID=〈the UUID〉
grub> initrd /boot/initrd〈...tab here!...〉
grub> boot
これでLive GRUB経由でKaliのフルインストール環境が起動するはずです。Live環境との違いは、ログイン時に設定したパスワードが認識される点で判別できます。
ステップ3:EFIパーティションの修正
Kaliにログインしたら、ターミナルを開いて以下を入力します。
$ fdisk -l
自分のドライブを見つけてください。
次に、gdisk(Kaliにデフォルトでインストール済み)を開いてドライブをパーティショニングします(この操作は十分注意してください)。
$ gdisk /dev/sd{X}
GPT fdisk (gdisk) version 1.0.1
Partition table scan:
MBR: hybrid
BSD: not present
APM: not present
GPT: present
Found valid GPT with hybrid MBR; using GPT.
Command (? for help):
パーティションテーブルを表示し、最初のパーティションのタイプがEF00であることを確認します。
Command (? for help): p
Disk /dev/sdd: ...
[...]
Number Start (sector) End (sector) Size Code Name
1 2048 1050623 512.0 MiB EF00 EFI System Partition
[...]
ここから行うのは以下の2つです。
- EF00パーティションを削除する
- 同じ場所に新しいHFS+パーティションを作成する
Command (? for help): d
Partition number (1-3): 1
Command (? for help): n
Partition number (1-128, default 1): 1
セクターの指定ではデフォルト値のまま進めてください
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): AF00
Changed type of partition to 'Apple HFS/HFS+'
Command (? for help): w
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!
Do you want to proceed? (Y/N): Y
OK; writing new GUID partition table (GPT) to /dev/sdd.
Warning: The kernel is still using the old partition table.
The new table will be used at the next reboot.
The operation has completed successfully.
これで未フォーマットのHFS+パーティションができました。フォーマットには専用ツールが必要ですが、そのためにはDebianのソースリストをaptに追加する必要があります。
$ echo "deb https://ftp.debian.org/debian unstable main contrib non-free" > /etc/apt/sources.list.d/debian.list
$ apt update
$ apt install hfsprogs
これでパーティションをフォーマットできます。
$ mkfs.hfsplus /dev/sd{X}1 -v Kali
Initialized /dev/sd{X}1 as a 512 MB HFS Plus volume
次に、/etc/fstabファイルを編集します。
$ gedit /etc/fstab
Geditが起動したら、以下の行を探して削除してください。
# /boot/efi was on /dev/sd{X}1 during installation
UUID={XXXXXXX} /boot/efi vfat defaults 0 1
続いて、ブートパーティションをアンマウントします。まず以下のコマンドで場所を特定しましょう。
$ mount | grep /boot/efi
/dev/sd{Y}1 on /boot/efi ...
$ umount /dev/sd{Y}1
そして、fstabに必要なエントリを追加します。
$ echo "UUID=$(blkid -o value -s UUID /dev/sd{X}1) /boot/efi auto defaults 0 0" >> /etc/fstab
次に、新しくフォーマットしたHFS+パーティションにEFIデータを格納できるよう、GRUBを再インストールします。
$ mkdir -p /boot/efi/EFI/Kali
$ echo "This file is required for booting" > /boot/efi/EFI/Kali/mach_kernel
$ echo "This file is required for booting" > /boot/efi/mach_kernel
$ grub-install --target x86_64-efi --boot-directory=/boot --efi-directory=/boot/efi --bootloader-id=Kali
さらに、Macのブートローダーが起動できるよう、ブートローダーコードを「bless(祝福)」する必要があります。これにはhfsblessというバイナリが必要ですが、aptでは入手できません。問題ありません。リポジトリをクローンしてビルドしましょう。
$ cd /root
$ git clone https://github.com/detly/mactel-boot
$ cd mactel-boot
$ make
そしてblessを実行します。
./hfs-bless /boot/efi/EFI/Kali/System/Library/CoreServices/boot.efi
最後のステップは、GRUB設定ファイルの作成です。
$ sed -i 's/GRUB_HIDDEN/#GRUB_HIDDEN/g' /etc/default/grub
$ sed -i 's/GRUB_TIMEOUT=10/GRUB_TIMEOUT=0.1/' /etc/default/grub
$ grub-mkconfig -o /boot/grub/grub.cfg
これで完成です!再起動してALTキーを押せば、MacのブートローダーにUSBメモリが表示されるはずです。
ステップ4:VirtualBoxでUSBを仮想化する
このUSBメモリをVirtualBox(macOS上)で起動したい場合、簡単なテクニックがあります。
まず、USBメモリのセクタを指すVMDKディスクを作成します。そのために、対象ディスクを特定しましょう。
$ diskutil list
/dev/disk0 (internal):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme 500.3 GB disk0
1: EFI EFI 314.6 MB disk0s1
2: Apple_APFS Container disk1 499.3 GB disk0s2
/dev/disk1 (synthesized):
#: TYPE NAME SIZE IDENTIFIER
0: APFS Container Scheme - +499.3 GB disk1
Physical Store disk0s2
1: APFS Volume Macintosh HD 222.0 GB disk1s1
2: APFS Volume Preboot 22.4 MB disk1s2
3: APFS Volume Recovery 519.9 MB disk1s3
4: APFS Volume VM 3.2 GB disk1s4
/dev/disk3 (external, physical):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *32.0 GB disk3
この例では/dev/disk3が該当します。作業前に必ずアンマウントしておきましょう。
$ diskutil unmountDisk /dev/disk{X}
VirtualBoxがインストールされている状態で、以下を実行します。
$ sudo VBoxManage internalcommands createrawvmdk -filename ~/Kali.vmdk -rawdisk /dev/disk{X}
$ chmod 777 ~/Kali.vmdk
$ chmod 777 /dev/disk{X}
これで準備完了です。VirtualBoxのUIを起動し、以下の設定で新しい仮想マシンを作成しましょう。

VirtualBoxがディスクを尋ねてきたら、先ほど作成したVMDKファイルを指定します。

仮想マシンを起動する前に、設定画面でCPU数、ビデオ、メモリを調整しておきましょう。
特に重要なのは、System > MotherboardでEnable EFIを有効にすることです。

これでEFI経由での起動が可能になります。仮想マシンを起動したら、すぐにF12キーを押してください。
Boot Maintenance Managerを選択します。

次にBoot from fileを選択します。

そして{SATA_DRIVE} > EFI > Kali > System > Library > CoreServices > boot.efiの順に選んでいきます。

これで完成です!

それでは、良いペネトレーションテストライフを!
-
iPhoneのライブ写真をInstagramに投稿する方法【ストーリーズ・フィード対応】
```html ライブ写真(Live Photos)は、iPhone 6sおよび6s Plus以降のすべてのiPhoneに搭載されている魅力的な機能です。シャッターを切った前後約3秒間の動画と音声が記録され、静止画に動きが加わることで、まるでハリー・ポッターの世界のような魔法の写真を実現します。さらに、Instagramのアップデートにより、このライブ写真をストーリーズはもちろん、フィードにも投稿できるようになりました。必要なのはiPhone、Instagramアカウント、そして最近撮影したライブ写真だけ。手順はとてもシンプルなので、SNSのプロフィールにひと味違う動きを加えたい方は、ぜひ以下
-
MacBookが充電できないときの原因と対処法まとめ
MacBook ProやMacBook Airが充電できなくなると、バッテリー残量との勝負のような焦りを感じるものです。この記事では、Macノートブックが充電されなくなる考えられる原因と、その解決方法を詳しく解説します。 さらに、充電してもすぐに減ってしまう場合や、Appleが公表しているバッテリー駆動時間より大幅に短い場合の対処法についてもご紹介します。 MacBookが充電できない原因は? MacBook AirやMacBook Proが充電できない理由は、実はとても単純なケースも少なくありません。まずは以下の基本的なチェックから始めて、問題の所在を特定しましょう。 本当にプラグが差し込