Bởi Flavio De Stefano
Hướng dẫn này dành cho tất cả những ai muốn có một chiếc USB có cài đặt Kali đầy đủ để sử dụng với (các) máy Mac của bạn. Điều này không nhằm mục đích thực hiện cài đặt Live Kali một cách kiên trì.
Vấn đề khi bạn thực hiện cài đặt Kali trên thẻ USB là Kali phân vùng đĩa bằng hệ thống tệp VFAT. Mac OS chỉ nhận dạng các phân vùng HFS+ cùng với một số tệp cần thiết cho nó.
Vì vậy, bạn cần:
- Máy Mac của bạn
- Một chiếc USB có cài đặt Kali ISO
- Một thanh USB mục tiêu, thẻ SD hoặc ổ đĩa ngoài SSD mà bạn sẽ cài đặt Kali (khuyên dùng 16GB và USB 3.0)
Hướng dẫn này được lấy cảm hứng rất nhiều từ hướng dẫn này với các bản sửa lỗi thích hợp cho Kali. https://medium.com/@mmiglier/ubuntu-installation-on-usb-stick-with-pure-efi-boot-mac-tương thích-469ad33645c9
Cài đặt trực tiếp qua USB
Trước hết, hãy cài đặt Kali trên thẻ nhớ USB bằng cách làm theo hướng dẫn này. Tôi sẽ không làm phiền bạn về cách thực hiện bước này mà hãy bắt đầu tại đây:
$ sudo dd if={KALI_ISO.iso} of=/dev/{USB} bs=1m
Khi bạn đã sẵn sàng, hãy khởi động lại máy Mac của bạn. Cắm cả hai thanh USB của bạn vào, sau đó nhấn ALT và chọn EFI boot để khởi động trình cài đặt Live.

Trình cài đặt Kali sẽ hỏi bạn những câu hỏi khác nhau về múi giờ và bố cục bàn phím.
Tiếp tục cho đến khi nó yêu cầu bạn phân vùng đĩa, ở đây chọn:Thủ công. Sau đó chọn đích USB của bạn ổ đĩa (nơi bạn muốn cài đặt Kali). Bạn có thể nhận ra bằng nhiều yếu tố khác nhau, ví dụ như kích thước của nó. Nhấp vào Tiếp tục: việc này sẽ phân vùng ổ đĩa của bạn.
Bây giờ, hãy quay lại cùng một màn hình và chọn KHÔNG GIAN MIỄN PHÍ dưới ổ đĩa đích USB. Nhấp vào Tiếp tục và chọn Tự động phân vùng không gian trống. Thực hiện theo tùy chọn được đề xuất. Sau đó nhấp vào Hoàn tất phân vùng và ghi thay đổi vào đĩa .
Quá trình cài đặt bây giờ sẽ sao chép dữ liệu vào đĩa. Đợi cho đến khi quá trình này kết thúc (quá trình này sẽ mất khoảng 30 phút).
Khởi động từ GRUB Live
Sau khi hoàn tất, máy Mac của bạn sẽ khởi động lại và bạn phải nhấn ALT một lần nữa. Chọn Khởi động EFI một lần nữa.
Những gì chúng ta phải làm bây giờ là tải hệ thống Kali đã cài đặt của mình thông qua Live GRUB , vì hệ thống đã cài đặt của chúng tôi không có bộ tải khởi động có thể nhận dạng được của MacOS.
Sau khi GRUB được tải, hãy nhấn c để lấy giao diện dòng lệnh GRUB.
Bây giờ bạn phải hiểu HD là bản cài đặt Kali của bạn. Để thực hiện việc này, khi GRUB cli được tải, hãy nhập ls; rút USB của bạn ra và gõ ls một lần nữa.
grub> ls
(memdisk) (hd0) (hd1) (hd1,gpt3) (hd1, gpt2) (hd1,gpt1) ...
Bạn sẽ nhận thấy rằng hd{X biến mất:đó là ổ đĩa của bạn. Bây giờ bạn phải tìm gpt. của mình Có lẽ đó là gpt2 , nhưng để chắc chắn, hãy gõ:
grub> ls (hdX,gpt2)/boot/grub
unicode.pf2 ...
Nếu lệnh nói unicode.. đó là gpt chính xác; thử gpts khác nếu không thì. Bây giờ hãy tìm UUID của phân vùng và chú thích nó.
grub> ls -l (hdX},gpt{X})
Partition hd2,gpt2: Filesystem type ext* 〈...snip...〉 UUID e86c20b9-83e1-447d-a3be-d1ddaad6c4c6 - Partition start at [...]
Bây giờ chúng tôi không thể đặt tham số thành GRUB để khởi động (sử dụng tab phím để sử dụng tính năng tự động hoàn thành):
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
Thao tác này sẽ khởi động Cài đặt Kali đầy đủ của bạn bằng cách sử dụng GRUB trực tiếp. Bạn có thể phân biệt với môi trường Live bằng mật khẩu mà nó nhận ra trong quá trình đăng nhập.
Sửa phân vùng EFI
Sau khi bạn đăng nhập vào bản cài đặt Kali, hãy mở Terminal và gõ:
$ fdisk -l
và tìm ổ đĩa của bạn.
Bây giờ, hãy mở gdisk (được cài đặt mặc định trên Kali) để phân vùng ổ đĩa (cẩn thận ở đây):
$ 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):
In bảng phân vùng và xác nhận rằng phân vùng đầu tiên có loại 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
[...]
Bây giờ chúng ta phải:
- xóa phân vùng EF00 đó
- tạo HFS+ mới ngay tại vị trí của nó
Command (? for help): d
Partition number (1-3): 1
Command (? for help): n
Partition number (1-128, default 1): 1
Just leave defaults values in the sector phase
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.
Bây giờ chúng ta có một phân vùng HFS+ chưa được định dạng. Để định dạng, chúng ta cần một số công cụ; nhưng để có được những công cụ này, chúng ta cần thêm danh sách nguồn Debian vào apt.
$ echo "deb http://ftp.debian.org/debian unstable main contrib non-free" > /etc/apt/sources.list.d/debian.list
$ apt update
$ apt install hfsprogs
Chúng ta có thể định dạng phân vùng đó:
$ mkfs.hfsplus /dev/sd{X}1 -v Kali
Initialized /dev/sd{X}1 as a 512 MB HFS Plus volume
Bây giờ chúng ta phải chỉnh sửa /etc/fstab tập tin:
$ gedit /etc/fstab
Điều này sẽ khởi chạy Gedit. Trong tệp này, bản địa hóa các dòng sau:
# /boot/efi được bật /dev/sd{X}1 trong khi cài đặt
UUID={XXXXXXX} /boot/efi vfat mặc định 0 1
và xóa chúng.
Bây giờ, hãy ngắt kết nối phân vùng khởi động, bản địa hóa nó bằng cách sử dụng:
$ mount | grep /boot/efi
/dev/sd{Y}1 on /boot/efi ...
$ umount /dev/sd{Y}1
Sau đó chạy lệnh này để thêm các mục cần thiết vào tệp fstab của bạn:
$ echo "UUID=$(blkid -o value -s UUID /dev/sd{X}1) /boot/efi auto defaults 0 0" >> /etc/fstab
Bây giờ chúng ta phải cài đặt lại GRUB để nó có thể sử dụng phân vùng HFS+ mới được định dạng cho dữ liệu EFI của nó:
$ 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
Sau đó, chúng ta cần phải “ban phước” cho mã bootloader để bộ nạp khởi động Mac sẽ khởi động nó. Để làm được điều đó chúng ta cần hfsbless nhị phân không có sẵn thông qua apt. Không vấn đề gì, chỉ cần sao chép kho lưu trữ và xây dựng:
$ cd /root
$ git clone https://github.com/detly/mactel-boot
$ cd mactel-boot
$ make
Vậy thì chúc phúc:
./hfs-bless /boot/efi/EFI/Kali/System/Library/CoreServices/boot.efi
Bước cuối cùng là tạo cấu hình 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
Hoàn hảo! Bây giờ hãy khởi động lại và bạn sẽ thấy thanh USB của mình trong bộ tải khởi động Mac bằng cách nhấn ALT .
Ảo hóa USB qua Virtualbox
Nếu bạn cần khởi động thanh USB này thông qua Virtualbox (trên Mac OSX), có một thủ thuật đơn giản để thực hiện điều đó.
Trước hết, bạn phải tạo một đĩa VMDK trỏ đến các cung của thanh USB của bạn. Vì vậy, hãy xác định đĩa đó:
$ 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
Trong trường hợp của chúng tôi, đó là /dev/disk3. Hãy ngắt kết nối trước khi tiếp tục:
$ diskutil unmountDisk /dev/disk{X}
Sau khi cài đặt VirtualBox, hãy chạy:
$ sudo VBoxManage internalcommands createrawvmdk -filename ~/Kali.vmdk -rawdisk /dev/disk{X}
$ chmod 777 ~/Kali.vmdk
$ chmod 777 /dev/disk{X}
Hoàn hảo. Bây giờ, hãy chạy Virtualbox UI và tạo một máy mới với các cài đặt sau:

Khi VirtualBox yêu cầu bạn cung cấp ổ đĩa, hãy trỏ tới VMDK đã tạo trước đó:

Trước khi khởi động máy, hãy đi tới Cài đặt và điều chỉnh số lượng quy trình, video và bộ nhớ của bạn.
Điều quan trọng là đặt Bật EFI trong Hệ thống> Motherboa thứ 3.

Điều này sẽ cho phép bạn khởi động thông qua EFI. Bây giờ khởi động máy ảo và nhấn ngay F12 .
Chọn Trình quản lý bảo trì khởi động:

Chọn Khởi động từ tệp:

Sau đó chọn {SATA_DRIVE}> EFI> Kali> Hệ thống> Thư viện> CoreServ băng> boot.efi

Và, thì đấy:

Hãy theo dõi nhé :)
Học cách viết mã miễn phí. Chương trình giảng dạy mã nguồn mở của freeCodeCamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu