niemtin007

facebook.com/niemtin007

hãy theo đuổi đam mê - chủ nợ sẽ theo đuổi bạn

Monday, December 28, 2015

Multiboot USB Flash Drive for UEFI/Legacy Mode - không chỉ là một chiếc USB cứu hộ


Bạn thường dùng USB để làm gì? Ngoài lưu trữ dữ liệu bạn còn làm gì nữa? Có bao giờ bạn tự hỏi là mình có thể làm gì khác trên chiếc USB của mình? Và cũng có bao giờ bạn cũng tự hỏi: "có cách nào để chạy Windows và Linux trực tiếp mà không phải cài đặt!?"

Công cụ dưới đây sẽ giúp bạn sở hữu một chiếc USB đa năng không chỉ dùng để lưu dữ liệu, cứu hộ mà còn nhiều hơn thế!




Changelog Multiboot Toolkit 2.3.2: (work-in-process)
  • Fixed installer script for Virtual Disk & USB in the Turkish system language
  • Added more modules (AOMEI Backupper, TrueImage 2020, Bob.Ombs.Win10PEx64...)
  • Supported to update Grub4dos automatic with the batch script
  • Fixed bug in the grub2 installer script for GPT disk
  • Supported script to create a new WIM menu in the WinPE Boot Manager
  • Supported Simplified Chinese language (thanks to A1ive)
  • Supported script to arrange the grub2 menu (add, remove, sort)
  • Supported script to create BIOS Boot Partition automatic
  • Supported to create GPT bootable USB disk (limited features)
  • Display copy percentage when integrating Wim, ISO modules type
  • Disabled SpVoice on Windows lite, added more grub2 themes
  • Supported install Windows from ISO directly (thanks to A1ive)
  • Supported script to update grub2 and grubfm automatic (thanks to By_FaRuK)
  • Supported to boot Linux Distro live ISO via partnew - Easy2Boot method
    (thanks to Steve6375 & A1ive)
  • Type: open-source project
  • Platform: Windows (7 or higher version)
  • License: GNU General Public License v3.0
  • User Interface: Console/Terminal
  • WinSetupFromUSB (Home Page)
  • YUMI boot (Home Page) - Multiboot Toolkit does not support for UEFI YUMI



Cách tích hợp:







Multiboot Toolkit được thiết kế cho ai?

Đây là món quà dành tặng cho những người bạn là kỹ thuật viên, chuyên viên cứu hộ, chuyên gia bảo mật/ an ninh mạng/ hacker mũ trắng, sinh viên IT hay đơn giản hơn là những newbie, vọc sĩ thích khám phá
P/s: xin lưu ý bản thân Multiboot Toolkit không chứa những công cụ nguy hiểm nhưng nó giúp tích hợp rất nhiều công cụ mạnh mẽ vì vậy hãy sử dụng với mục đích tốt và đừng lạm dụng nó!



Demo


rEFInd boot manager - UEFI


Chế độ UEFI - Grub2


Xorboot boot manager - UEFI


Chế độ Legacy - Grub2


Chế độ Legacy - Syslinux


Chế độ Legacy - Grub4dos





Mã nguồn:
    Tool được phát triển dựa trên gói BootUSB của anh Đặng Văn Anh (anhdv), sử dụng các bootloader mã nguồn mở Grub2/rEFInd/Xorboot/Clover/Grub4dos/Syslinux. Các module trong tool gồm WinPE SE được build bởi anhdv, apolloneptune, dinhphucit, Hoàng Khiển, ... gói Apps của anh Hà Sơn. Ngoài ra distro của linux, recuse, các tool cứu hộ khác được lấy từ trang chủ. Multiboot Toolkit được phát triển để liên kết các công cụ khác lại với nhau với mục đích tạo một chiếc USB đa năng giải quyết được hầu hết các vấn đề trong sử dụng máy tính



Tính năng hỗ trợ:
  • Hỗ trợ boot Legacy bằng Grub2, Grub4dos và Syslinux
  • Hỗ trợ boot UEFI bằng Grub2, Clover, Xorboot và rEFInd boot manager
  • Hỗ trợ boot qua lại giữa các bootloader mà không phải khởi động lại máy
  • Menu hiện thị tính năng phù hợp với chuẩn boot Legacy hay UEFI
  • Hỗ trợ boot Linux live ISO (tích hợp nhiều code boot sẵn - chỉ hiện thị menu khi có file ISO)
  • Hỗ trợ boot Antivirus live ISO dùng để quét virus ngoài môi trường Windows
  • Hỗ trợ boot WinPE SE để cứu hộ chuyên sâu



Cụ thể bạn có thể làm gì?
  • Phân vùng, cứu dữ liệu, test phần cứng máy tính thông qua WinPE SE
  • Cài Windows trực tiếp qua WinSetupfromUSB hoặc gián tiếp thông qua WinPE SE
  • Chạy trực tiếp các distro của linux dạng ISO mà không phải dùng bất kỳ tool tích hợp vào USB nào cả (có thể cài được linux trong môi trường live ISO)
  • Chạy các công cụ cứu hộ, diệt virus nền linux như: Acronis True Image, Parted Magic, Bitdefender Rescue CD ...
  • Chạy live các hacker distro gồm các công cụ mạnh mẽ trong pentesting, hacking, ẩn danh, pháp y, bảo mật...
  • Boot vào Windows/Linux/MacOS chế độ UEFI (chỉ hỗ trợ máy mac thật, chưa support cho hackintosh) thông qua rEFInd trong Multiboot OS





Danh sách themes





Link download Module

Multiboot Toolkit hỗ trợ cho rất nhiều dạng module, các phiên bản mới nhất của các module luôn được cập nhật liên tục. Để sử dụng các module mới nhất vui lòng lên trang chủ và tải về. Tùy nhu cầu sử dụng của mỗi người mà các bạn chọn tải về từng module mà các bạn muốn dùng. Càng muốn thêm nhiều module bạn cần phải sử dụng USB có dung lượng lớn hơn. Bản thân mình sử dụng USB 32GB

(Chi tiết xem ở file .modules)

WinPE SE - Mini Windows
Download
Apps cho WinPE (Hà Sơn)
Win8PE - Win10PE SE (anhdv)
Win8.1SE - Win10PE SE (apolloneptune)

Desktop/Service Linux Distros
Download
Android-x86
Arch
CentOS
Clonezilla
Chromixium
Debian
Elementary
Fedora
Gentoo
Knoppix
Linux Mint
Mageia
Manjaro
OpenSuse
Parted Magic
Sabayon
Slackware
Systemrescuecd
Ubuntu
Zorin OS

Hacker Distro
Download
ArchAssault
Backbox
BlackArch
DEFT-Z
Fedora Live Security
Kali Linux
NodeZero
Network Security Toolkit
Parrot OS
Tails
Wifislax
Weakerthan

Antivirus Live ISO
Download
AVG Rescue CD 
Avira Rescue System
BitDefender Rescue CD
Dr.Web® LiveDisk
ESET SysRescue Live
F-Secure Rescue CD
Kaspersky Rescue Disk 10
Vba32 Rescue



Công cụ test USB & cách test


Đối với việc kiểm tra khả năng boot và chỉnh sửa giao diện khuyên bạn dùng Qemu Boot Tester để chạy thử. Còn để test WinPE, test ISO booting và các module tích hợp khác khuyên dùng Virtualbox cùng với công cụ Virtual Machine USB Boot. Hoặc để không rườm rà bạn khởi động lại máy bạn chọn chế độ boot vào USB để trải nghiệm




Vấn đề lỗi và báo lỗi

Mặc dù đã cố gắng hoàn thiện nhưng không tránh khỏi sai sót về code boot, mặt khác code boot live ISO còn phụ thuộc vào phiên bản phát hành của các hãng nên sẽ khác nhau đôi chút. Vì vậy sẽ được tiến hành fix lỗi qua các phiên bản tiếp theo để theo kịp các gói update của các phần mềm, OS ... tích hợp trong Multiboot Toolkit dưới dạng module. Nếu một tính năng nào đó hoạt động không tốt mong được phản hồi (các bạn có thể gửi email hoặc nhắn tin trực tiếp trên trang facebook cá nhân của mình, cám ơn)





Lời nhắn gửi!

Trước tiên xin gửi lời cám ơn chân thành đến anh Hà Sơn đã góp ý và giúp fix lỗi cũng như chia sẻ rất nhiều gói Apps chạy tốt trên nền WinPE. Cám ơn anhdv đã ra bộ WinPE tuyệt vời cũng như là người có công đầu trong việc đặt nền móng để công cụ Multiboot Toolkit này ra đời. Cám lethimaivi đã giúp cải tiến chức năng, cám ơn bác Hoang Duch2 đã giúp support nhiệt tình trên diễn đàn. Và đặc biệt cám ơn các bài viết cũng như comment trên các diễn đàn linux (code mình lượm và chế từ đây ra :D )

Bản chất Multiboot Toolkit được build lại, và cũng có thể gọi là bản nâng cấp từ gói BootUSB của anhdv. Tất cả các công cụ người khác đã làm sẵn, mình chỉ làm cho nó màu mè hơn cũng như thêm code boot để nó đa năng hơn

Multiboot Toolkit thực sự giúp chiếc USB có thể làm hơn những gì nó được thiết kế ra, thông qua đây mình muốn xây dựng một cộng đồng phát triển nó và hưởng lợi từ nhau vì mình có ý tưởng nhưng bản thân còn nhiều hạn chế về trình độ cũng như kiến thức. Mình quyết định đặt tên phiên bản cho nó với mục đích là sẽ tiếp tục phát triển và nâng cấp nó thêm nhiều tính năng hữu ích hơn. Multiboot Toolkit luôn miễn phí cho tất cả các bạn. Chúc vui ^_^








Changelog Multiboot Toolkit 2.3.1: (01-07-2019)
  • Fixed "Load driver failed..." on Windows 64bit
  • Fixed bug for bcdedit, method change to keep configuration for WinSetupFromUSB
  • Updated WinSetup.ISO.Module_(ISO.method) -- developed by Tayfun Akkoyun
  • Added Hiren’s BootCD PE as a module (in Windows Boot Manager menu & Grub2)
  • Supported Wimboot in UEFI mode (thanks to A1ive, Serhat100, Tayfun Akkoyun)
  • Fixed grub2 configuration for Linux Distro, Rescue Disk (live ISO & extracted)
  • Added more themes (thanks to gnome-look.org & clover team):
    32 themes for the Grub2 Bootloader & 42 themes for the rEFInd Boot Manager

Changelog Multiboot Toolkit 2.3.0: (28-05-2019)
  • Supported Install Hackintosh - add all versions with only one bootable device
  • Changed the Multiboot devices' partition order, Support GPT Disk for HDD Box
    (ESP1-ESP2-BIOS Boot Partition-MULTIBOOT-MacInstaller1-MacInstaller2-...)
  • Changed the configuration for the bootloader to suitable with the new partition table
  • Using wimboot to boot the .wim image from GPT disk in Legacy BIOS Mode
  • Fixed Grub2 & Syslinux cannot bootable on some machines (thanks to Hoàng Đức)
  • Added option for creating/uncreate the EFI partition for Secure Boot in UEFI mode
  • Fixed config for about 50 Distros Linux, support multi-version in a menu
    (thanks to SmartFinn)
  • Added colortool to improve user experience in the installer interface
  • Added grub2-filemanager as an extra module (thanks to A1ive)
  • Fixed boot menu for DLC 2019, easy to use together with Strelec, HKboot, Anhdv...
  • Optimized source code for the batch script
  • And, a newly released version with many bugs @@

Changelog Multiboot Toolkit 2.2.0: (28-05-2017)
  • Updated the AOMEI Partition Assistant (thanks to Hoàng Khiển, Krishna)
  • Changed partition method, increase read and write speeds for Multiboot device
  • Updated partition tools configuration for Grub2 (updated by Tayfun Akkoyun)
  • Allowed install on the Virtual Disk, support to test quickly a Multiboot device
  • Fixed Grub2 cannot be bootable in UEFI mode on the External Portable Hard Drives
  • Fixed DLC Boot cannot be bootable from Grub2 menu in Legacy mode on the
    External Portable Hard Drives (thanks to steve6375 from reboot.pro forum)
  • Supported Grub2 Menu with multi-language (Vietnam, English, Turkish languages)
    (Changed the script structure for easy translation into other languages)
  • Updated Windows Setup from Source module with both WIM and ISO method
    (updated by Tayfun Akkoyun)
  • Added timeout between the partition commands. It makes the installation slower
    but it makes the Multiboot Installer works well in the system has low performance
  • Fixed missing disk and partition number variables in Windows 7, it is the cause of
    can not run script install file in the hidden partitions

Changelog Multiboot Toolkit 2.1.3: (03-05-2017)
  • Fixed bug scripts in the previous version, fixed bug for Windows 7
  • Added EasyUEFI Portable to edit UEFI boot entries for MultiOS
  • Supported script to change default bootloader/boot manager for UEFI mode
  • Updated new WinPE modules (thanks to Hoàng Khiển, anhdv, dinhphucIT)
  • Fixed boot Grub2, WinPE Boot Manager for UEFI 32bit (thanks to Ahmet Bulut)
  • Added WinPE Boot Manager & WinSetupFromUSB to Grub2 Menu in UEFI mode
  • Swapped files between ESP1 and ESP2 for compatibility with secure boot
    in some machine does not allow to choose boot option

Changelog Multiboot Toolkit 2.1.2: (28-04-2017)
  • Add Grub2 File Manager (thanks to karadurak, Tayfun Akkoyun)
  • Update Grub2 Bootloader 2.02 (thanks to Tayfun Akkoyun, Hà Sơn)
  • Convert more themes from Clover bootloader for rEFInd boot manager
  • Add script support to create config.plist for Clover (Hackintosh)
  • Fix script was not able to run in directory contain Unicode symbols or Whitespace
  • Support secure boot with original Microsoft UEFI boot files, only support for WIM format
    (Thanks to köylü, Tayfun Akkoyun from TNCTR forum)

Changelog Multiboot Toolkit 2.1.1: (29-03-2017)
  • Support Turkish Language (translate by tayfun akkoyun)
  • Improve Grub2 Config, more powerful with auto scan menu (thanks to aguslr)
    (fix boot for Wifislax64 or some particular ISO unbootable on a real machine)
  • Add NT6 method as a other option to install Windows (thanks to tayfun akkoyun)
  • Update WinSetup.ISO.Module, better than WIM method (update by tayfun akkoyun)
  • Add more options for XorBoot Boot Manager (UEFI mode)
  • Fix AOMEI Partition Assistant Warning in Windows XP, 7

Changelog Multiboot Toolkit 2.1.0:  (19-03-2017)
  • Improve modules script to prevent lost name file while running again
  • Improve multiboot_update script to auto update config for grub2
  • Add boot live ISO Wifislax64 (Grub2 UEFI/Legacy)
  • Fix multiboot_update script to keep the current grub2's theme setting
  • Loopback original config for some Linux distributions (need testing)
  • Fix missing Grub4dos config while installing WinSetupFromUSB (thanks to tayfun akkoyun)
  • Add many useful ISO tool on Grub4dos menu (thanks to tayfun akkoyun)
  • Make Grub4dos more powerful with auto menu (thanks to tayfun akkoyun and karadurak)
  • Add Wim method as an alternative to WinSetupFromUSB, saving more space
    (thanks to tayfun akkoyun, his friend Aşkın ÖZTAV and oguzhan43 from TNCTR)
  • Add ISO method as the other option to install Windows from original ISO
    (not support for modified ISO versions like Windows AIO - thanks to tayfun akkoyun)
  • Fix boot live ISO for Manjaro Linux 17 (Thanks to kainonergon)
  • Fix and Update the modules link

Changelog Multiboot Toolkit 2.0.1:  (28-02-2017)
  • Fix Windows format warning for USB (use bootice v1.3.3 instead bootice v1.3.4)
  • Add DLC boot menu from Grub2, fix WinPE Strelec menu in UEFI mode
  • Use Windows built-in chkdsk utility to check the partition before preparing
    the partition for HDD box. This method will help the data safety more
  • Update Grub2 bootloader 2.02 rc1 (thanks to Hà Sơn)
  • Fix config for Clover bootloader to auto scan entries like rEFInd
  • Add new module boot live ISO: AiO-SRT (thanks to kiet2507)

Changelog Multiboot Toolkit 2.0.0:  (27-01-2017)
  • Fix to miss Grub4dos configuration files when installing Grub2 with new method
  • Set Grub2 is the default legacy bootloader
  • Support some special ISO run only with FAT32 format on the hide partition
    (Bitdefender; Fedora; Network Security Toolkit...)
  • Support script auto add some special ISO in the hide partition
  • Fix and add much more the Grub2 themes
  • Improved the script to keep the original name when adding modules to boot live ISO
  • Support script to manually update the rEFInd boot manager and the Clover bootloader
  • Build new script to install rEFInd/Clover to Internal Hard Drives, support for MultiOS
  • Support edit mini Windows boot manager and WinSetup boot manager with bootice
  • Support script auto add ISO extracted to multiboot drive
  • Support script auto install portable software to multiboot drive

Changelog MultibootUSB 1.0.6:  (31-12-2016)
  • Fix Grub2 booting error in some devices without using CleanMBR
  • Add the another method to install/reinstall GRUB2 from Legacy mode
  • Support script change easily the Grub2 theme
  • Fix warning driver letter B:\ when installing to USB Flash Driver
  • Fix Shutdown error in some devices

Changelog MultibootUSB 1.0.5:  (31-10-2016)
  • Build new installer to install MultibootUSB for External Portable Hard Drives (HDD box) with 1 click (create boot without data loss - very safe for your data)
  • Add WinPE Sergei Strelec like a module (UEFI/Legacy)
  • Update Grub2, Clover bootloader
  • Fix boot error when booting to Syslinux bootloader
  • Fix boot AndroidOS, PhoenixOS, CubLinux
  • Add password recovery tool for web browsers and wifi
  • Build new script for update MultibootUSB manually
  • Add boot live ISO Caine OS (Grub2 UEFI/Legacy mode)

Changelog MultibootUSB 1.0.4:  (02-09-2016)
  • Set NTFS is a main boot partition
  • Use NTFS Drive Protection to protect USB 
  • Add WinSetupFromUSB for UEFI 32bit
  • Update Clover, rEFInd Boot Manager
  • Set rEFInd is the default boot manager for UEFI mode
  • Auto partition with simple script (thanks to AOMEI)
  • Build new instaler to install MultibootUSB for USB Flash Drive with 1 click
  • Fix boot live ISO for Parrot OS, Fix some bugs for script
  • Optimize the boot menu
  • Add new Mini Windows module (thanks to Hoàng Khiển)
  • Add boot live ISO Apricity OS (Grub2 UEFI/Legacy mode)
  • Remove Clover legacy (not support for NTFS)

Changelog MultibootUSB 1.0.3:  (15-08-2016)
  • Add boot live ISO Cyborg Essentials (Grub2 UEFI/Legacy)
  • Add boot live Cyborg Hawk (Grub2 UEFI/Legacy - extracted)
  • Add boot live LionSec Linux (Grub2 UEFI/Legacy - extracted)
  • Add boot live Cyborg Hawk (Grub2 UEFI/Legacy - extracted)
  • Add boot live Weakerthan 7 (Grub2 UEFI/Legacy - extracted)
  • Add boot live ISO Wifislax (Grub2 UEFI/Legacy) + Persistent just support with extracted method
  • Add boot live ISO Network Security Toolkit (NST 24) (Grub2 UEFI/Legacy)
  • Add boot live ISO BlackArch Linux on the second partition (NTFS) (Grub2 UEFI/Legacy)
  • Add boot live ISO Solus Linux (Grub2 UEFI/Legacy)
  • Add boot live ISO Antergos Linux (Grub2 UEFI/Legacy)
  • Add boot live ISO BBQLinux (Grub2 UEFI/Legacy)
  • Add boot live ISO Arch Strike Linux (x86_64) (Grub2 UEFI/Legacy)
  • Fix boot live ISO Fedora, Manjaro -- (thank Steave' E2B & hanhtrung92)
  • Fix boot Remix OS (new beta)
  • Fix bug & update MultibootUSB_HDD_Installer_(160812)
  • Add Simple Script auto add module (*.iso / *.wim / *.exe)
  • Add YUMI boot like a module Legacy & simple script to fix boot with Syslinux/Grub2
  • Add DLC boot like a module both UEFI & Legacy mode
  • Add WinSetupFromUSB to install multi windows-setup like a module for UEFI/Legacy mode
  • Update Clover bootloader, add more icon (Kali, Parrot, Remix), add more config.plist
  • Add Minitool Partition Wizard portable for MultibootUSB_HDD_Installer to partition and format manually
  • Try to boot Syslinux from UEFI mode (failure)

Changelog MultibootUSB 1.0.2:  (18-06-2016)
  • Hỗ trợ thêm Boot-Repair-Disk (Grub2 UEFI - Legacy chưa test)
  • Fix boot cho Kaspersky Rescue Disk 10 (Grub2 UEFI/Legacy + Syslinux/grub4dos legacy)
  • Fix boot cho AVG Rescue CD (Syslinux)
  • Fix boot WEAKERTHAN Linux 7 (Syslinux)
  • Thêm menu boot Wifislax + Persistent (syslinux)
  • Thêm menu cho Matriux Leandros (chỉ syslinux + không tích hợp cùng WEAKERTHAN Linux)
  • Thêm boot cho Deft linux (Grub2 UEFI/Legacy)
  • Thêm boot cho CAINE Linux (Syslinux + Grub2 UEFI/Legacy)
  • Thêm boot cho NodeZero Linux (Syslinux + grub2 Legacy)
  • Thêm boot cho Bugtraq-II blackwidow (Syslinux) -- (thank YUMI boot)
  • Thêm boot cho Network Security Toolkit (NST 22) (Syslinux)
  • Thêm Xiaopan OS (Syslinux)
  • Thêm boot Dr.Web LiveDisk  (Syslinux) -- (thank YUMI boot)
  • Thêm boot Eset rescue (Syslinux + Grub2 Legacy) -- (thank YUMI boot)
  • Thêm boot Comodo rescue (Syslinux)
  • Hỗ trợ boot live ISO PCLinuxOS (Grub2 UEFI/Legacy)
  • Hỗ trợ boot live ISO LXLE linux (Grub2 UEFI/Legacy)
  • Hỗ trợ boot live ISO Linux Lite (Grub2 UEFI/Legacy)
  • Hỗ trợ script chống phân mảnh tự động cho ISO -- (thank Steve' E2B)
  • Hỗ trợ boot qua syslinux từ menu grub2 và grub4dos -- (thank Steve' E2B)
  • Cập nhật bootloader (Grub2, Grub4dos, Clover)
  • Thêm menu cho Win8/8.1/10 PE/SE vào Xorboot Menu cho UEFI 32bit
  • Cập nhật MultibootUSB_HDD_installer_(160618).exe
  • Bổ sung các hướng dẫn trong file readme


Wednesday, August 12, 2015

[Guide] Tạo USB và cài đặt Kali Linux trên UEFI chạy multiboot với các OS khác


Dành cho các bạn muốn theo đuổi con đường bảo mật chân chính, một phần chia sẻ của chuyên gia bảo mật Mr. Ghaznavi-Zadeh hi vọng các bạn sẽ có được cái nhìn tổng quan và một thái độ đúng đắn khi bước vào ngành đặc thù này. Cám ơn Mr. Noor đã chia sẻ.
Ethical Hacking and Stepshttps://www.vpnmentor.com/blog/kali-linux-a-guide-to-ethical-hacking/

Kali Linux 2.0 đã chính thức phát hành với tên gọi Kali Sana với một loạt cải tiến về giao diện đồ họa và tính năng mới. Là một hệ điều hành nổi tiếng dành cho các chuyên gia bảo mật, tester... Hiện tại bạn có thể lên trang chủ để download nó về. Bạn có thể tải các file ảnh của máy ảo VMware hay VirtualBox để sử dụng và trải nghiệm, máy ảo là khá tốt để cho bạn rèn luyện kỹ năng về bảo mật nhưng nó có một hạn chế là không thao tác thuận tiện được với các kết nối không dây (do bản thân máy ảo sử dụng mạng lan ảo với máy thật). Và một điều nữa nếu sử dụng máy ảo bạn sẽ không tận dụng hết được sức mạnh phần cứng của máy bạn khiến trải nghiệm dùng bị hạn chế rất nhiều.



Trong bài này mình sẽ hướng dẫn các bạn chi tiết cách cài đặt Kali Linux 2.0 multiboot trên chế độ UEFI sử dụng kiến trúc phân vùng GPT. Ở đây mình cài Kali Linux khi đã cài Windows và các OS khác trước rồi, nếu chưa biết cách cài Windows trên UEFI bạn tham khảo bài viết này: [Guide from UEFI-GPT Team] Cài Windows trên UEFI



Bước 1: Tạo USB cài đặt

Tải file ISO của Kali linux 64 bit về máy. Tải một trong các công cụ sau để tích hợp bộ cài đặt:
Cách tích hợp bộ cài từ file ISO vào USB bằng Rufus, các tool khác tương tự


Sau khi tạo USB thành công bạn đã có thể dùng USB này để chạy Kali Linux ở chế độ Live giống như các distro của Linux khác. Nếu bạn chỉ cần có vậy chắc bạn không cần phải đọc phần tiếp theo dưới đây, nhưng nếu muốn cài đặt trên máy để chạy multiboot với các OS khác thì mời bạn tiếp tục


Bước 2: Chuẩn bị phân vùng dành cho Kali Linux

Bất kỳ OS nào trước khi cài đặt ta đều cần phải chuẩn bị phân vùng riêng cho nó, các phân vùng cài OS bạn nên để chúng sát nhau tránh nằm lộn xộn với các phân vùng dữ liệu vì sẽ gây khó khăn cho bạn trong quá trình xác định phân vùng sau này. Ổ dữ liệu và các phân vùng chứa OS khác cần được đặt tên để không gây nhầm lẫn trong quá trình chọn phân vùng cài đặt


Phân vùng bạn muốn cài Kali cần delete nó để trở thành Unallocated (nghĩa là phân vùng chưa được chia)

Lưu ý: Chia phân vùng mình luôn khuyến cáo nên chia trong môi trường WinPE (hay Mini Windows). Lúc này tất cả các phân vùng trong máy sẽ được tool hiểu là các ổ dữ liệu vì vậy quá trình thao tác nhanh chóng và an toàn hơn




Bước 3: Sao lưu lại file trong phân vùng EFI

Bước này đối với những bạn đã có kinh nghiệm thì không cần thiết nhưng với newbie mình khuyên nên làm, lỡ sau này có vô tình làm mất boot của Windows hay bị lỗi gì đó liên quan đến boot thì có thể khắc phục nhanh chóng

Chạy Command Prompt (Admin) bằng cách click chuột phải vào góc dưới cùng bên tay trái của Desktop và chọn nó, giao diện cmd hiện ra bạn copy-paste-enter từng lệnh sau:

Code Miêu tả
Diskpart Khởi chạy tiện ích Diskpart
List Disk Khởi tạo danh sách ổ cứng trên máy bạn
Select Disk 0 Chọn ổ cứng (thông thường máy chỉ có 1 ổ thì oánh số 0)
List Partition Khởi tạo danh sách phân vùng trên ổ cứng
Select partition 1 Chọn phân vùng EFI (thường nằm đầu tiên nên chọn số 1)
Assign letter=Z Đặt tên cho phân vùng EFI
Exit Thoát Diskpart
Taskkill /im explorer.exe /f Tắt Explorer
Explorer.exe Khởi động lại Explorer


Truy cập vào ổ Z vừa mới được tạo trong Explorer, copy folder "EFI" sang một phân vùng nào khác hoặc có thể nén nó và lưu trữ lại


Bước 4: Boot vào USB ở chế độ UEFI, kích hoạt giao diện cài đặt đồ họa

Sau khi tích hợp USB cài Kali linux xong, khởi động lại máy. Ngay khi máy vừa bật lại bấm liên tục F12 (đối với Dell) để vào Boot Option --- đối với ASUS là Esc ... các dòng máy khác bạn tự tìm hiểu cách boot vào chế độ này



Chọn boot vào Graphical Install



Bước 5: Cài đặt Kali Linux

Chọn theo hình và nhấn continue để chuyển sang thiết đặt tiếp theo, giải thích 1 vài chi tiết nhỏ:
  • Từ hình 1 đến 7 không có gì đặc biệt, bạn cứ nhấn continue mà không phải thiết đặt gì. Chú ý tại hình 4 bạn chọn No và nhấn continue (có thể thao tác này phải lặp lại 2 lần)
  • Hình 8 tạo mật khẩu của root để quản trị
  • Hình 10 chọn manual để tạo phân vùng bằng tay, không chọn các lựa chọn khác
  • Hình 11 chọn vào phân vùng unallocated đã được chuẩn bị trước cho Kali linux
  • Từ hình 12 đến hình 15 chọn như hình và bấm continue, quá trình cài đặt bắt đầu (hình 16)
    • Chú ý: tại hình 12 khi chọn automatic... nó sẽ tự động tạo phân vùng tối ưu cho máy bạn. Nếu trước đó máy đã có linux và có phân vùng Swap thì tại bước này nó không tạo thêm phân vùng Swap nữa mà dùng chung với phân vùng Swap của phiên bản Linux khác trên máy bạn (Khi multiboot các distro khác nhau của Linux sử dụng chung phân vùng Swap)
  • Hình 17 bạn có thể chọn yes, qua vài bước nữa chọn Wifi của bạn và kết nối internet để hệ thống cập nhật. ở đây mình chọn No để quá trình cài cho nhanh, việc update sau khi vào Kali có thể thực hiện sau. Nhưng nếu muốn kali chạy ổn định bạn nên update hệ thống từ bước này
  • Hình 18 quá trình cài đã thành công, máy tính sẽ tự khởi động lại và boot vào Grub2 của Kali Linux, lúc này trên đó sẽ xuất hiện thêm lựa chọn boot vào Windows



Bước 6: đăng nhập vào Kali Linux

Khi khởi động vào Kali Linux phần User Name bạn gõ tên là root phần password chính là mật khẩu mà bạn đặt tại hình số 8. Ok, hãy bắt đầu trải nghiệm nó




Lời kết

Thực ra đối với nhiều người Kali Linux không nhất thiết phải cài trên máy, bạn vẫn có thể sử dụng nó ngay trên USB để cơ động hơn. Nhưng đối với mình thì mình vẫn thích cài nó. Hi vọng bài viết này có ích cho các bạn :)


Saturday, July 4, 2015

[Guide] Tinh chỉnh và hoàn thiện máy hackintosh (Phần 6)


Lever 6: Tinh chỉnh và hoàn thiện máy hackintosh



Thiết lập cơ bản:

Mặc định muốn Copy cái gì trên Mac OS ta đều phải dùng tổ hợp phím Alt + C vậy làm sao thay nút Alt kia thành Ctrl cho giống Windows với Linux? Cuộn trang cũng bị ngược, để cho nó giống Windows thì làm thế nào? Touchpad chỉnh sao? Đưa icon ổ cứng ra desktop như thế nào?



Phần mềm không thể thiếu cho Mac OS trên máy Hackintosh

Có một điều hơi phiền phức là Mac OS trên máy hackintosh không cho phép ghi dữ liệu lên phân vùng định dạng NTFS, Finder mặc định của Mac OS vẫn chưa được tiện lợi. Để giải quyết điều đó sau khi cài Mac OS ta luôn cài 2 tool này (Search google để tìm phiên bản mới nhất mà dùng nhé):
  • Paragon NTFS (nhiều bạn thích Tuxera NTFS vì nó nhẹ hơn, mình lại thích thằng này hơn)
  • Total Finder

Một số phần mềm miễn phí dành cho Mac OS:
  • VLC - khi nói đến phần mềm xem phim không thể thiếu thằng này
  • Chrome - trình duyệt Safari của Mac cũng khá nhanh rồi, nhưng chrome là lựa chọn không tồi
  • Teamview - hỗ trợ điều khiển máy tính từ xa
  • Skype - Gọi điện nhắn tin miễn phí
Ngoài ra còn rất nhiều phần mềm miễn phí khác trên Apple Store, các bạn chỉ cần tạo một tài khoản Apple ID là có thể tải được.



Thiết lập nâng cao cho config.plist

Nếu như mục đích ban đầu tạo config.plist là làm sao để USB có thể boot thành công vào bộ cài Mac OS để ta có thể cài thì sau khi cài xong bạn cần tạo lại config.plist để máy nhận đúng và đủ cấu hình, fix lỗi, tùy biến ... bla! bla! bla!

Trong hướng dẫn ở phần này mình chỉ giới thiệu cho các bạn những thiết lập thường gặp và cần thiết nhất, còn nếu bạn muốn tìm hiểu ý nghĩa từng thiết lập vui lòng đọc tại đây



Trước tiên đừng quên là bạn cần phải mở file config.plist



ACPI

Những thiết đặt ở đây có thể giúp bạn giải quyết trục trặc trong quá trình cài đặt, nhưng nếu bạn đã cài xong rồi thì có thể bỏ qua các tùy chọn ở đây. Bạn chỉ cần quan tâm hai thiết lập như hình dưới



Boot

Cách chọn Windows làm hệ điều hành khởi động mặc định:
Mặc định thì Mac OS luôn được chọn để khởi động vào mặc định trong 5s chờ. Vì một lý do nào đó bạn không thích vậy, bạn thích trong 5s chờ đó Clover sẽ tự khởi động vào Windows, dưới đây là cách làm

Bước 1: Xác định thứ tự từ trái sang phải xem Windows là phân vùng thứ mấy (của mình là 2)

Bước 2: Xác định địa chỉ của phân vùng chứa Windows

Bước 3: Dán chuỗi số vừa tìm được trên khung thứ 2 được đánh dấu như hình, tại khung đánh dấu thứ 3 thiết lập y chang như vậy

Tùy chọn slide=0 khá cần thiết và quan trọng cho một số máy để có thể boot được. Nếu sau khi sử dụng tùy chọn này mà máy bạn không boot được thì có thể thử các tùy chọn boot flag khác - khu vực 1 (với điều kiện bạn phải hiểu ý nghĩa của tùy chọn đó)

Nếu bạn muốn sử dụng tính năng ảo hóa phần cứng của intel hay bật VD-T bạn có thể sử dụng thiết lập dart=0

Nếu sử dụng Yosemite thì tùy chọn kext-dev-mode=1 luôn luôn được chọn, cũng tương tự tùy chọn rootless=0 luôn phải chọn nếu dùng El Capitan



CPU, Devices và Disable Drivers

Phần này bạn có thể tùy chỉnh sau nếu cần



Gui

Khu vực 1 bạn thích thì có thiết lập các thông số phù hợp với máy bạn, không làm cũng không sao. Có một chức năng khá hay ở đây là ẩn phân vùng. Có lẽ sau khi cài xong Mac OS bạn nào cũng sẽ thấy hơi chướng mắt vì bên cạnh Mac OS lại có thêm thằng Recovery HD, bạn có thể ẩn nó đi bằng cách oánh tên nó như trên hình




Graphics

Trên máy hackintosh thường không dùng được card đồ họa rời, thông số ở đây chỉ cần quan tâm ở mục đánh dấu. Đối với những card đồ họa không được hỗ trợ bạn cần nạp hoặc chỉnh sửa thông tin trong EDID hay device ID

Một vài card video ví dụ như Nvidia GTX 6xx hay AMD Radeon HD 6xxx không cần phải inject mà nó sẽ tự động tắt mà người dùng không cần can thiệp. Việc inject khá quan trọng, nó giúp cho máy của bạn hoạt động tốt




Kernel and Kext Patches

Tùy chọn KernelCPU sẽ giúp fix Kernel Panics với những CPU không được nhận biết cụ thể. Tùy chỉnh này không dùng được cho hệ thống sử dụng CPU AMD hay Pentium, đối với những loại này bạn cần phải patched kernel

Nếu đang sử dụng Haswell và motherboard có khóa MSR (thường gặp trên Asus) thì bạn chọn tùy chỉnh KernelPM giúp patch kernel để kích hoạt power management.

Nếu máy bạn không dính dáng đến Haswell thì sử dụng tùy chọn Asus AICPUPM, tùy chọn này giúp ngăn kernel panics do liên quan đến power management và khóa MSR đồng thời ngăn không cho ghi vào AICPM (Apple Intel CPU Power Management)

Nếu như bạn bị lỗi máy tự dưng bị reboot lại mà không làm gì cả hay chọn boot vào Mac OS mà nó cứ bị bật ra và reboot lại máy thì chọn AppleRTC (riêng máy mình sau khi tích vào cái này cần tích thêm vào KernelPm mới được, cũng chả hiểu vì sao lại như vậy!?)





Rt Variables

Nếu bạn muốn dùng iMessages và iCloud trên máy hackintosh bạn có thể copy thông tin ROM và MLB trên một máy Mac thật (nhưng đừng bao giờ chia sẻ nó cho quá nhiều người vì Apple có thể lock tài khoản của máy Mac thật mà bạn xin copy)

Nếu không có thông tin từ Mac thật thì bạn có thể nhấn vào nút Calculate thể Clover tạo chuỗi số ngẫu nhiên cho bạn (lưu ý rằng cách này không khuyến cáo để dùng)

Cách khuyên dùng nên sử dụng là dùng iMessage Debug Tool từ HVT để dump thông tin.










SMBIOS

Thiết lập ở đây rất quan trọng, tại đây bạn chọn kiểu máy Macintosh nào có cấu hình gần giống với máy bạn nhất để máy bạn có thể hoạt động một cách ổn định và đạt hiệu suất tốt nhất. Nếu không biết máy của bạn có cấu hình gần nhất với máy nào thì sử dụng MacTracker để bạn so sánh và tìm cấu hình gần nhất giống của bạn.

Bản chất của OS X đã tối ưu cho nền tảng CPU Ivy & Haswell nên đối với những dòng máy này cần phải chọn đúng kiểu hệ thống mới có thể kích hoạt được



Tương tự phía trên, bạn cũng lấy nó từ iMessage Debug Tool


System Parameters

Bạn cần chọn vào tùy chỉnh Inject System ID để nạp SMBIOS




Và cuối cùng đừng quên lưu lại thiết lập cho config.plist nhé!



Đồng bộ thời gian của Windows và Mac OS:

Có một điểm cũng hơi bất tiện nữa khi dualboot Windows với Mac là thời gian giữa 2 thằng không giống nhau. Nguyên nhân là do Ubuntu hay Linux/Unix (Mac OS cũng là một nhánh của tụi này mà ra nhé các bạn) sử dụng múi giờ GMT trong khi Windows vần xài chức năng đồng bộ giờ với máy tính nên ra vấn đề như vậy.

Để thời gian được đồng bộ mà không gây phiền phức ta chỉnh như sau: Trên Windows bạn chọn đúng múi giờ cho Việt Nam, bật tính năng cập nhật thời gian thực. Bên Mac OS bạn chỉnh múi giờ lùi về "Greenwich mean time"



Update Mac OS:

Đây có lẽ là một ưu điểm lớn của các cài Mac OS sử dụng Bootloader Clover. Mỗi khi có phiên bản mới nâng cấp bạn có thể tiến hành update trực tiếp như một máy Mac thật mà không phải cài lại, nhưng với điều kiện bạn cần thiết lập cho config.plist và backup kexts của bạn. Riêng về vấn đề này Guide [AIO] đã nói rất kỹ, bạn có thể tham khảo tại đây hoặc có thể tham khảo bài viết này








Lời kết

Cám ơn các bạn đã theo dõi guide từ phần 1 đến giờ, hi vọng qua những hướng dẫn cơ bản mà mình hướng dẫn thì bạn đã có một máy hackintosh chạy ngon lành phục vụ cho trải nghiệm, tạo môi trường lập trình thoải mái hơn ...

Thông qua đây xin cám ơn sự góp ý và hỗ trợ nhiệt tình từ anh La Văn Tiến, DươngTH, em gái Ngọc Nguyễn ... và rất rất nhiều thành viên khác

Sáu tháng, đó chắc hẵn là khoảng thời gian mình nghiên cứu về hackintosh từ lúc chưa biết tý gì về nó. Mình làm quen nó khi đã khá vững về Windows, nhưng nó một điều mình nhận thấy Guide [AIO] hình như không dành cho Newbie mà nó đúng hơn là cuốn cẩm nang dành cho người đã biết chút ít về hackintosh. Mình viết chuỗi bài viết dành cho newbie không phải là để cạnh tranh với guide [AIO] của Pokeguyen hay của các cây gạo cội trong làng hackintosh cả, chỉ đơn giản là mình muốn bổ sung những hình ảnh tư liệu, hay đơn giản là những lưu ý nhỏ mà newbie thường bỏ sót. Newbie thường có căn bệnh chung là lười và thích ăn sẵn (mình cũng vậy thôi), guide mình viết có rất nhiều hình ảnh với mục đích giúp các bạn dễ hình dung và trải nghiệm trước hackintosh bằng mắt, qua việc nhìn thấy kết quả nó như vậy mà dũng cảm thử trên máy mình. Bạn muốn giỏi một cái gì liên quan đến máy tính cần phải sử dụng chất xám và kèm theo đó là trải nghiệm, thử nghiệm nó liên tục ;)

Hackintosh không dành cho người lười. Mình đến với hackintosh khá trễ, kiến thức luôn có sự kế thừa và phát huy, bản thân nội dung trong guide không phải do mình tự nghĩ ra hoặc hư cấu lên mà nó được thừa kế từ các bài viết hay kinh nghiệm từ các đàn anh đi trước. Công lao duy nhất của mình chỉ là tổng hợp lại nó và trình bày lại với cách nhìn của Newbie, mình cũng chỉ là Newbie :)


Chuỗi bài viết có sử dụng thông tin từ các nguồn sau:





Monday, May 25, 2015

[Guide] Patch DSDT cho máy Hackintosh (Phần 5)


Lever 5: Hướng dẫn Patch DSDT cho máy Hackintosh:



Patch DSDT có khó không?

Bản chất việc Patch DSDT khá là khó vì bạn phải làm việc với ngôn ngữ máy, phải làm việc với ngôn ngữ cấp thấp sẽ rất khó khăn với newbie. Nếu bạn đã có kiến thức lập trình thì sẽ đỡ vất vả hơn. Nhưng trong thế giới Hackintosh, hầu như các Patch đã được làm sẵn. Các bạn newbie chỉ cần chọn đúng gói Patch và áp dụng cho đúng vào DSDT của máy mình là được. Cho nên tuy khó nhưng thành ra lại dễ. Tất nhiên, nếu bạn muốn đi sâu vào thế giới hackintosh bạn cần hiểu những dòng code mình patch nó là gì để tối ưu nó, chúc các bạn thành công!


Tôi có thể dùng DSDT của máy khác không (đỡ phải patch)?

Câu trả lời là có nhưng chỉ với những máy có cùng chung mainboard. Thường thì không khuyến cáo sử dụng DSDT của máy khác vì bản thân mỗi máy ACPI có thể hơi khác nhau nên có thể sinh ra một số bug làm cho máy chạy không ổn định. Nếu không lười hãy tự tạo DSDT cho riêng mình và sử dụng!


Làm sao để lấy được file DSDT của máy mình?

DSDT có thể dump được từ Windows, Mac hay Linux; nhưng thuận lợi và nhanh chóng nhất ta nên tận dụng chức năng này của Clover






Có DSDT rồi giờ ta làm gì?

DSDT khi được dump sẽ có đuôi *.aml nhưng khi patch ta cần biên dịch nó về đuôi *.dsl (Sau khi patch xong ta lại lưu về *.aml để sử dụng)

Để DSDT ít lỗi và hoạt động tốt nhất bạn cần dịch ngược nó đúng cách. Nếu dịch sai sẽ gây ra một số lỗi rất khó chịu và rất khó để khắc phục. Chi tiết về cách dùng lệnh MacIASL được giới thiệu tại đây

Link tải iasl mới nhất https://bitbucket.org/RehabMan/acpica/downloads

Copy các file DSDT, SSDT đã dump ở trên và iasl vào một folder tên là Patch đặt ngoài Desktop sau đó mở terminal và Copy/Paste/Enter các lệnh sau:

cd ~/Desktop/Patch
./iasl -da -dl *.aml


Lưu ý: thư mục Patch chỉ chứa DSDT, SSDT và iasl, không được để cùng các file nào khác.



Tất cả các file đuôi *.aml sẽ được nhân bản thành các file cùng tên với đuôi *.dsl ta bắt đầu làm việc với các file này. Click đúp vào file dsdt.dsl (mặc định sẽ được mở bằng MacIASL) và làm theo hình:
Link tải MacIASL mới nhấthttps://bitbucket.org/RehabMan/os-x-maciasl-patchmatic/downloads

Thiết lập MacIASL về ACPI 5.0 hoặc cao hơn


Cách thêm kho patch online vào MacIASL:


Kho Patch Online hữu ích:
  • Rehabman DSDT Patches:
    http://raw.github.com/RehabMan/Laptop-DSDT-Patch/master
  • HP Probook patch:
    http://raw.github.com/RehabMan/HP-ProBook-4x30s-DSDT-Patch/master
  • PCbeta dxxs dsdt Patches:
    http://raw.github.com/Yuki-Judai/dxxs-DSDT-Patch/master
  • MacMan Gigabyte:
    http://www.tonymac86.com/DSDT/
  • Toleda Audio HDMI HD4600/Haswell/8 Series:
    http://raw.github.com/toleda/audio_hdmi_8series/master
  • Toleda Airport PCle Half Mini:
    http://raw.github.com/toleda/audio_ALCInjection/master
  • Toleda Audio Realtek ALC injection
    http://raw.github.com/toleda/audio_ALCInjection/master
  • Toleda Audio HDMI UEFI Audio dsdt edits - Desktop/Laptop/Intel NUC
    http://raw.github.com/toleda/audio_hdmi_uefi/master
  • Toleda Audio HDMI HD4000/Ivy Bridge/7 Series
    http://raw.github.com/toleda/audio_hdmi_hd4000/master
  • Toleda Audio HDMI HD3000/Sandy Bridge/6 Series
    http://raw.github.com/toleda/audio_hdmi_hd3000/master
  • Toleda Audio HDMI 5 Series
    http://raw.github.com/toleda/audio_hdmi_5series/master

Ngoài ra còn kho patch khác khá hữu ích là PJALM's DSDT Patches (nguồn)
  • ASUS: All-in-one patches for ASUS motherboards
    http://maciasl.sourceforge.net/pjalm/asus/
  • MSI: All-in-one patches for MSI motherboards
    http://maciasl.sourceforge.net/pjalm/msi/
  • Zotac: All-in-one patches for Zotac motherboards
    http://maciasl.sourceforge.net/pjalm/zotac/
  • Gigabyte: All-in-one patches for Gigabyte motherboards
    http://maciasl.sourceforge.net/pjalm/gigabyte/
  • ASRock: All-in-one patches for ASRock motherboards
    http://maciasl.sourceforge.net/pjalm/asrock/
  • Graphics: Patches for Intel HD and AMD/nVidia graphic cards
    http://maciasl.sourceforge.net/pjalm/graphics/
  • Intel Series 6: Intel Series 6 Patches for SATA, USB, SMBUS, IGPU, GbE and general fixes
    http://maciasl.sourceforge.net/pjalm/intel6/
  • Intel Series 7: Intel Series 7 Patches for SATA, USB, SMBUS, IGPU, GbE and general fixes
    http://maciasl.sourceforge.net/pjalm/intel7/
  • Intel Series 8: Intel Series 8 Patches for SATA, USB and general fixes
    http://maciasl.sourceforge.net/pjalm/intel8/
  • Intel Series 9: Intel Series 9 Patches for SATA, USB and general fixes
    http://maciasl.sourceforge.net/pjalm/intel9/
  • General: General patches for Shutdown, HDEF, USB3, SATA and LAN
    http://maciasl.sourceforge.net/pjalm/general/


Làm quen một chút đến giao diện của công cụ MacIASL



Khu vực 1: Chứa các gói patch được tác giả liên tục cập nhật trên server, khi click đúp vào gói lập tức các code trong gói patch sẽ xuất hiện tại khu vực 2
Khu vực 2: Hiển thị nội dung của gói patch
Khu vực 3: Hiện thị sự thay đổi khi áp dụng gói patch trên máy bạn (nhấn Apply để hoàn tất)




Cách thêm kho Patch Offline:

Thường có một vấn đề khá nhỏ nhưng hơi phiền phức của hầu hết mọi người khi cài xong mac OS là máy không có wifi cũng đồng nghĩa với không có internet (trừ khi bạn dùng mạng dây). Vậy để thuận tiện trước đó bạn nên tải gói patch offline
https://github.com/RehabMan/Laptop-DSDT-Patch

Bạn chỉ cần tìm đến file *.txt chứa code cần patch cho máy bạn:



Giới thiệu chi tiết về kho patch của RehabMan

RahabMan là một Moderator của tonymacx86.com rất nổi tiếng trong cộng đồng hackintosh với nhiều bài viết chất lượng. Thông qua việc support nhiệt tình cho member và tham gia các dự án khác nhau. Anh đã và đang xây dựng một kho patch tự động giúp ích rất nhiều cho cộng đồng.

Trong gói patch của RehabMan bao gồm 2 phần:

Patch cơ bản:
  • Various Syntax Error Fixes: được bắt đầu bằng ký hiệu [syn]. Công dụng của nó là fix các lỗi phổ biến của DSDT/SSDT sau khi biên dịch để có được bản DSDT/SSDT sạch trước khi patch. Hoặc dùng để sửa lỗi sau khi patch.

  • System Patches: được bắt đầu bằng ký hiệu [sys]. Là các gói patch giúp fix lỗi cơ bản của một máy hackintosh (lỗi này thường phổ biến trên hầu hết các máy). Thí dụ như:

    Nếu như chíp máy bạn đang dùng là Haswell CPU/8-series nên sử dụng gói patch Haswell LPC để giúp Mac OS có thể load được AppleLPC.kext

  • USB (ECHI) Patches: được bắt đầu bằng ký hiệu [usb]
    Nếu bạn sử dụng kext của USB 3.0 trong công cụ HVT do pokenguyen tổng hợp thì bạn không được sử dụng gói [usb] 7-series USB3 Multiplex. Bạn chỉ dùng gói patch này khi dùng kext gốc của Mac là AppleUSBXHCI.kext. Thường khá ít máy có thể áp dụng gói patch này ví dụ như Lenovo u310/u410.

    [usb] 6-series USB và [usb] 7-series/8-series USB được sử dụng rộng rãi cho hầu hết các máy, patch này sử dụng kèm với GenericUSBXCHI.kext trong gói HVT của pokenguyen. Tùy cấu hình máy mà bạn chọn cho đúng. Ví dụ như các dòng chip từ Ivy trở về sau đều sử dụng [usb] 7-series/8-series USB

    Nếu sử dụng Yosemite bạn nên dùng GenericUSBXHCI.kext riêng cho phiên bản hệ điều hành này, ngoài ra bạn cần phải thêm lệnh -gux_defer_usb2 trên kernel flag của Clover (việc này bạn có thể làm thông qua chỉnh sửa config.plist)
Patch nâng cao:
  • Audio: tùy cách thiết đặt thông số khi patch AppleHDA mà sử dụng gói patch [audio] Audio Layout cho phù hợp. Luôn sử dụng kèm theo [sys] IRQ Fix khi sử dụng patch này. Tùy khi cài kext AppleHDA nó yêu cầu áp dụng Layout nào thì bạn thay đổi số 12 thành số tương ứng mà nó yêu cầu (đa số các máy đều dùng layout 12)

  • Battery Patches: gói patch giúp nhận đúng phần trăm của pin được bắt đầu bằng ký hiệu [bat]. Có thể một số máy không cần patch pin máy vẫn có thể nhận được. Đây là gói patch tùy chọn (không bắt buộc)

  • Intel Graphics Patches: gói patch giúp máy nhận đúng card onboard (full QE/CI) và fix thanh tăng giảm độ sáng được mượt mà. Được bắt đầu bằng ký hiệu [igpu]

  • Disable Nvidia/Radeon: gói patch giúp tắt card rời, sử dụng card onboard để máy tiêu thụ điện năng và giúp máy mát hơn. Được bắt đầu bằng ký hiệu [gfx0]. Thường khuyên nên disable card rời thông qua SSDT

  • Fan control/temperature/LID status Patches: gói patch giúp điều khiển quạt để quản lý nhiệt độ của máy. Được bắt đầu bằng ký hiệu [misc]

  • Luôn áp dụng Patch DTGP: DTGP là thành phần của Method _DSM dùng để nhận diện phần cứng của Mac OS. Thường thì DSDT gốc đã có chứa Method này nhưng ta cần remove hết nó rồi áp dụng Menthod DTGP mới đã chỉnh sửa. Patch này có sẵn trong kho Patch online của MacIASL.


Luôn backup file DSDT trước khi tiến hành patch

Làm việc với mấy dòng code không phải lúc nào bạn cũng có thể chắc chắn không có lỗi xảy ra cả, luôn copy dự phòng DSDT là một cách hiệu quả và đừng coi thường việc này vì nó có thể khiến bạn mất thời gian vô ích.

Bạn nên giữ lại DSDT.dsl đã lưu lại thiết lập sau khi đã fix hết lỗi và một bản sao của nó sau khi patch thành công để sau này cần patch thêm ta patch tiếp từ bản sao này và lưu về DSDT.aml để sử dụng.


Check lỗi của DSDT/SSDT bằng MacIASL:

Khi check lỗi sẽ hiện ra bảng Compiler Summary khi click vào từng dòng thông báo lỗi nó sẽ chỉ cho bạn đến vị trí lỗi.



Sửa lỗi của DSDT/SSDT sau khi biên dịch

Khi gặp thông báo lỗi với newbie thì câu hỏi trong đầu luôn là: "fix nó thế nào?" Thật nực cười nhưng hãy tận dụng anh Google. Bạn chọn vào dòng thông báo lỗi trên bảng Compiler Summary nhấn tổ hợp phím Alt + C để sao chép tên lỗi và tìm nó với cụm từ

How to fix ...

Để phạm vi tìm kiếm cho nhiều kết quả bạn nên chỉ giữ lại tên thông báo chính bỏ hết các nội dung miêu tả vị trí hay mở ngoặc đóng ngoặc, thí dụ đối với máy mình

How to fix ResoureTag larger than Field

Fix mấy thứ linh tinh liên quan đến code luôn đòi hỏi kiên nhẫn, nhiều lúc phải thử nhiều cách mới tìm ra cái nào là tối ưu nhất, nên nói patch DSDT khó là khó ở chỗ này. Các cảnh báo Errors phải được sửa hết trước khi patch DSDT còn Warnings bạn có thể fix sau cũng không sao

Một số quy tắc:

  • Luôn sử dụng các patch Various Syntax Error Fixes của RehabMan để fix DSDT/SSDT trước. Những lỗi còn sót lại tiếp tục khắc phục bằng tay!
  • Lời khuyên nên remove tất cả  _DSM methods (của DSDT và SSDT) trước khi áp dụng các gói patch



Fix Errors và Warnings (DSDT) của một số trường hợp

Warning Result is not used, possible operator timeout will be missed 
Trước khi fix Sau khi fix
Acquire (MUT0, 0x0FFF) Acquire (MUT0, 0xFFFF)


Warning Not all control paths return a value (_DSM) hay Warning Reserved method must return a value (Integer/String/Buffer/Package/Reference required for _DSM) ta sửa bằng cách thêm lệnh Return (zero) trước dấu "}" cuối cùng của một method
Trước khi fix Sau khi fix
Method (_DSM, 4, Serialized)
{
    Name (DRET, Buffer (0x04)
    {      
       ...........
    }
}
Method (_DSM, 4, Serialized)
{
    Name (DRET, Buffer (0x04)
    {
         ...........
    }
    Return (Zero)
}


Warning Not all control paths return a value (_HID) hay Warning Reserved method must return a value (Integer/String required for _HID).
Trước khi fix Sau khi fix
Method (_HID, 0, NotSerialized)
{
    If (TCMF) {}
    Else
    {
        Return (0x310CD041)
    }
}
Method (_HID, 0, NotSerialized)
{
    If (TCMF)
    {
        Return (Zero)
    }
    Else
    {
        Return (0x310CD041)
    }
}


Một số lỗi khi gặp thông báo lỗi thí dụ như cảnh báo về return ta click vào nó để biết vị trí, tiến hành xóa nó sẽ fix được lỗi.


Ngoài ra nếu gặp cảnh báo Warning như Dell Vostro 3560 của mình thì fix như phía dưới





Patch DSDT sau khi DSDT đã fix sạch errors và warning

Làm sao biết được cái nào cần để patch? Đó là câu hỏi chung của newbie

Câu trả lời là: xem máy bạn thiếu chức năng gì hoặc chức năng gì chưa hoạt động tốt thì patch cái đó

Thực ra trong gói patch của RehabMan đã chứa đầy đủ những thành phần quan trọng cần cho một máy hackintosh, ta chỉ việc chọn cho đúng. Nếu lười tìm hiểu chức năng của từng patch thì cứ áp dụng các gói patch từ trên xuống của RehabMan, cái nào không có cho máy bạn ta ghi nhớ nó và khắc phục sau bằng cách sử dụng các kho Patch khác hoặc những cách Patch khác dành riêng cho máy bạn được share trên diễn đàn.

Trước khi áp dụng gói patch nào bạn nên đọc miêu tả của nó xem dùng khi nào, cho máy nào...? Nếu không rõ thì cứ thử patch và compile (miễn sao khi bỏ vào clover không gây lỗi cho máy là được)

Tôi muốn patch cho âm thanh, màn hình...  vậy sao xác định được vị trí của nó trong đống code của DSDT?

DSDT lưu lại địa chỉ của phần cứng nên việc của ta là xác định đúng tên gì dành cho phần cứng gì. Dưới đây là bảng danh sách tên phần cứng thường gặp trên DSDT:


Tên phần cứng
Tên thường gặp trên DSDT
PCI Bus (hay PCI Root) PCI0
ACPI Lid LID0
ACPI Power Button PWRB
ACPI Sleep Button SLPB
AC Adapter ADP1
Battery BAT0
Backlight panel PNLF
SMC Control SMC
Embedded Controller EC
HPET (High precision event timer) HPET
RTC (Real time clock) RTC
PIC (Programmable Interrupt Controller) IPIC
TMR (System Timer) TIMR
DMA (Direct memory access controller) DMAC
Numeric data processor MATH
Firmware Hub Device FWHD
LPC (Low pin count) LPCB
PCI Express Root Port x RP0x
SMBUS Controller SBUS
High Definition Audio Controller HDEF
HDMI Audio Controller HDAU
SATA AHCI Controller SATA
Integrated Graphics IGPU
Discrete Graphics GFX0
PCI Bridge PCIB
Display Output DDxx
USB UHCI/EHCI UHCx, EHCx


Một vài ví dụ patch DSDT
Các path DSDT trong gói patch của RehabMan đã được chuyển về dạng code tự động, nghĩa là bạn chỉ cần copy/paste nó vào khu vực 2 của tool MacIASL khi nhấn nút patch (đã giới thiệu phía trên) là nó sẽ tự động dò tìm đến địa chỉ của thiết bị và patch nó. Thường thì các patch được chia sẻ trên diễn đàn là các patch thuần nên ta cần dò nó qua khung search trên MacIASL và dán nó trực tiếp vào khu vực code

  • PWRB, SLPB: Khi ta nhấn nút nguồn trên máy Mac sẽ xuất hiện bảng shut down, restart hay sleep nhưng một số máy nút này không có tác dụng, cách fix sẽ là:

    Bước 1
    : Thay HID thành CID trong Device (PWRB)
    Trước khi fix Sau khi fix
    Device (PWRB)
    {
        Name (_HID, EisaId ("PNP0C0C"))
        Method (_STA, 0, NotSerialized)
        {
            Return (0x0B)
        }
    }
    Device (PWRB)
    {
        Name (_CID, EisaId ("PNP0C0C"))
        Method (_STA, 0, NotSerialized)
        {
            Return (0x0B)
        }
    }

    Bước 2: Thêm Device (SLPB) vào sau Device (PWRB)
    Trước khi fix Sau khi fix
    Device (PWRB)
    {
        ...
    }
    Device (PWRB)
    {
        ...
    }
    Device (SLPB)
    {
        Name (_HID, EisaId ("PNP0C0E"))
        Name (_STA, 0x0B)
    }

  • HPET: Nguyên nhân gây lỗi không nhận HPET dẫn đến Kernel Panic khi load AppleIntelCPUPowerManagement.kext là do lỗi giá trị của _STA (Status) và _CRS (Current Resource Settings). Lỗi này đã có code fix tự động trong kho patch của RehabMan ( [sys] HPET fix )

  • RTC: Lỗi RTC hay gặp trên các mainboard Gigabyte, cụ thể là khi boot vào Mac OS, AppleRTC.kext khi xử lí dữ liệu RTC sẽ gây lỗi cho CMOS, dẫn đến khi khởi động lại sẽ Reset CMOS. Lỗi này đã có code fix tự động trong kho patch của RehabMan ( [sys] RTC fix )

  • PIC, TMR: trong một số trường hợp fix PIC, TMR sẽ giúp màn hình tự giảm độ sáng khi chuyển sang dùng pin hoặc ở trạng thái nghỉ, cách fix:

    Bước 1: Xóa IRQNoFlags trong IPIC và TIMR
    Bước 2: Sửa method _CRS của TIMR để luôn trả về giá trị ATT6 (tương tự fix HPET)

    Trước khi fix Sau khi fix
    Device (PIC)
    {
        Name (_HID, EisaId ("PNP0000"))
        Name (_CRS, ResourceTemplate ()
        {
            IO (Decode16,
                0x0020, // Range Minimum
                0x0020, // Range Maximum
                0x01, // Alignment
                0x02, // Length
            )
            IO (Decode16,
                0x00A0, // Range Minimum
                0x00A0, // Range Maximum
                0x01, // Alignment
                0x02, // Length
            )
            IRQNoFlags ()
            {2}
        })
    }
    Device (PIC)
    {
        Name (_HID, EisaId ("PNP0000"))
        Name (_CRS, ResourceTemplate ()
        {
            IO (Decode16,
                0x0020, // Range Minimum
                0x0020, // Range Maximum
                0x01, // Alignment
                0x02, // Length
            )
            IO (Decode16,
                0x00A0, // Range Minimum
                0x00A0, // Range Maximum
                0x01, // Alignment
                0x02, // Length
            )
            /* Xoa IRQNoFlags */

        })
    }
    Device (TMR)
    {
        Name (_HID, EisaId ("PNP0100"))
        Name (ATT5, ResourceTemplate ()
        {
            IO (Decode16,
                0x0040, // Range Minimum
                0x0040, // Range Maximum
                0x00, // Alignment
                0x04, // Length
            )
            IRQNoFlags ()
            {0}
        })
        Name (ATT6, ResourceTemplate ()
        {
            IO (Decode16,
                0x0040, // Range Minimum
                0x0040, // Range Maximum
                0x00, // Alignment
                0x04, // Length
            )
        })
        Method (_CRS, 0, NotSerialized)
        {
            If (LGreaterEqual (OSFX, 0x03))
            {
                If (HPTF)
                {
                    Return (ATT6)
                }
                Else
                {
                    Return (ATT5)
                }
            }
            Else
            {
                Return (ATT5)
            }
        }
    }
    Device (TMR)
    {
        Name (_HID, EisaId ("PNP0100"))
        Name (ATT5, ResourceTemplate ()
        {
            IO (Decode16,
                0x0040, // Range Minimum
                0x0040, // Range Maximum
                0x00, // Alignment
                0x04, // Length
            )
            /* Xoa IRQNoFlags */
        })
        Name (ATT6, ResourceTemplate ()
        {
            IO (Decode16,
                0x0040, // Range Minimum
                0x0040, // Range Maximum
                0x00, // Alignment
                0x04, // Length
            )
        })
        Method (_CRS, 0, NotSerialized)
        {
            Return (ATT6)
        }
    }

  • Backlight: Fix backlight sẽ giúp Mac OS điều khiển được độ sáng màn hình (thay đổi độ sáng trong System Preferences / Display). Thực hiện fix bằng cách thêm Device (PNLF) vào Scope (_SB) (có thể thêm sau Device (PWRB)). Fix này đã có ở trong kho patch của RehabMan

  • Adapter: Fix này giúp AppleACPIACAdapter nhận diện được bộ sạc laptop (AC adapter), tức là Mac OS sẽ biết được rằng bạn có cắm bộ sạc hay không. Fix này không thật sự cần thiết khi xài VoodooBattery.kext vì VoodooBattery.kext có thể nhận bộ sạc. Fix này đã có ở trong kho patch của RehabMan ( [sys] AC Adapter fix )

  • LPC: LPC là bộ phận trong Chipset có nhiệm vụ quản lí năng lượng của các Device trong máy tính, trong đó có CPU. Việc nhận LPC sẽ giúp Mac OS quản lí năng lượng tốt hơn, đặc biệt là quản lí C-State của CPU cho phép CPU chuyển về các trạng thái thấp năng lượng (và cũng góp phần giảm nhiệt độ của CPU)

    AppleLPC.kext là kext nhận LPC trong Mac OS. Tuy nhiên kext này không hỗ trợ hết các chip LPC mà chỉ hỗ trợ một số lượng hữu hạn LPC tương ứng với các dòng Chipset mà máy Mac sử dụng. Lỗi này thường gặp trên hệ thống sử dụng chip Haswell

    Fix này đã có ở trong kho patch của RehabMan ( [sys] Haswell LPC )

  • SATA: Một số máy gặp tình trạng các port SATA bị nhận nhầm thành External (Gắn ngoài) thay vì Internal (Gắn trong), dẫn đến các phân vùng của ổ cứng gắn trong hiện biểu tượng màu vàng cam của ổ cứng gắn ngoài

    Fix lỗi này bằng cách inject device-id SATA vào DSDT và đổi tên các Device tương ứng với các port SATA theo chuẩn DSDT của Mac, dẫn đến các port được nhận là Internal

  • HDEF: Đây là patch cho âm thanh, gói patch này đã có trên kho patch của RehabMan

  • SMBUS: SMBUS (System Management Bus) là một kênh truyền tốc độ thấp dùng để truyền các thông tin cơ bản (thông tin thiết bị, trạng thái, các chỉ lệnh, lỗi, ...) từ bo mạch chủ tới các thiết bị. Thực hiện fix SMBUS giúp AppleSMBUS nhận và điều khiển được SMBUS Controller. Gói fix này đã có trong kho patch của RegabMan ( [sys] SMBUS fix )


Đây là danh sách các patch cơ bản dành cho hầu hết các máy

[Sys] Fix _WAK Arg0 v2
[Sys] HPET Fix
[Sys] SMBUS Fix
[Sys] IRQ Fix
[Sys] RTC Fix
[Sys] OS Check Fix
[Sys] Fix Mutex with non-zero SyncLevel
[Sys] Fix PNOT/PPNT
[Sys] Add IMEI



Đây là những gói patch mình áp dụng lên DSDT của Dell Vostro 3560

[Audio] Audio Layout 12
[Igpu] Brightness fix (HD3000/HD4000)

[Igpu] HD4000 High Resolution
[Igpu] Rename GFX0 to IGPU
[Misc] Poll for LID changes
[Misc] remove _PRW from LID
[Sys] Fix TNOT Error
[Sys] AC Adapter Fix
[Sys] Add IMEI
[Sys] Add MCHC
[Sys] Fix Mutex with non-zero SyncLevel
[Sys] Fix PNOT/PPNT
[Sys] HPET fix
[Sys] IRQ fix
[Sys] OS check fix (windows 8)
[Sys] Shutdown Fix 2
[Sys] SMBUS fix
[usb] 7-series/8-series USB
[usb] USB3 _PRW(0x0D) and rename XHC to XHC1







Lưu DSDT về đuôi *.aml, tiến hành xác định và patch SSDT để hoàn thiện




Đôi chút về chức năng của SSDT

Nói một cách đơn giản thì SSDT là các bảng đặc tả hệ thống phụ cho DSDT, mô tả một số thiết bị phụ giúp hãng sản xuất phần cứng dễ quản lý và cập nhật thiết bị. Không như DSDT có rất nhiều khoá, trái lại SSDT có khá ít nên ta dễ dàng xác định được nó đang miêu tả về thành phần gì


Tên Scope Ý nghĩa
_SB (System Bus) Scope chính, chứa tất cả các Device trong hệ thống
PTID Thường thì vô dụng đối với Mac. Nó liên quan đến tốc độ quạt, nhiệt độ hay system status
_PR (Processor) Chứa các Processor (nhân CPU) và các method liên quan đến Processor (như _PSS, _CST, ...)
_GPE (General Purpose Events) Chứa các method GPE dùng để quản lí các event của hệ thống
_TZ (Thermal Zone) Chứa các ThermalZone
PCI0.GFX0 hoặc PCI0.VID Quản lý Intel HD
PEGP hoặc DGFX, ... Quản lý đồ họa rời



Trên máy mình có 7 cái SSDT thông qua tên khóa mình xác định được SSDT nào đang mô tả thiết bị nào




Lưu ý: Nếu bạn đang sử dụng hệ thống máy tính sử dụng các dòng Core i của SandyBridge/IvyBridge/Haswell hay Xeon thì bạn nên sử dụng SSDTPrgen để tạo ra SSDT.aml giúp quản lý CPU thay vì dùng các SSDT gốc. Chỉ có script SSDTPrgen của PikerAlpha được xem là chuẩn và đầy đủ nhất cho OS X, và luôn được cập nhật liên tục. (đồng nghĩa với việc ta loại tất cả các SSDT quản lý CPU ở phía trên - như máy mình thì chỉ giữ lại SSDT1 và SSDT4). SSDT quản lý CPU là nhân tố để máy có Speedstep - Speedstep không cần phải nhiều hay trải dài từng step một, chỉ cần khi kiểm tra máy bạn có khoảng 5 cái trở lên là ổn.


Cách tắt card rời Nvidia/Radeon:

Bản thân Mac OS không hỗ trợ các thiết bị phần cứng không phải của Mac nên có patch giúp máy nhận được card rời thì nó cũng không thể phát huy được hết sức mạnh của mình do thiếu phần mềm đi theo để tối ưu hiệu suất. Ta nên tắt nó, chỉ cần tận dụng card onboard sẽ giúp máy tiêu thụ ít điện năng hơn và mát hơn. Bạn có thể tắt nó ở DSDT hoặc SSDT

Đối với DSDT:
Ta tiến hành backup DSDT đã patch trước đó. Bản DSDT yêu cầu trước đó phải rename trước để tránh lỗi khi patch
ban đầu ta sử dụng gói patch này trước:

[gfx0] Disable from _REG (DSDT)

Sau khi patch ta thử dùng nó, nếu trong quá trình shutting down hay restarting có xuất hiện lỗi thì bạn dùng lại bản DSDT backup từ trước và tiến hành patch gói này để sử dụng:

[gfx0] Disable/Enable on _WAK/_PTS (DSDT)

Đối với SSDT:
Tiến hành rename thiết bị, fix hết các lỗi liên quan tương tự DSDT. Sau đó áp dụng 2 gói patch dành cho SSDT:

[gfx0] Cleanup/Fix Errors (SSDT)
[gfx0] Disable from _INI (SSDT)


Đối với các SSDT còn lại

Fix hết lỗi và gom cùng DSDT bỏ vào Clover theo đúng đường dẫn, các SSDT cần được đặt tên theo thứ tự SSDT.aml, SSDT-1.aml, SSDT-2.aml,...




Làm gì khi không thể vào Mac OS được do đặt DSDT (patch sai) vào Clover?

Một số trường hợp, do vô ý đặt DSDT & SSDT patch còn lỗi vào Clover, hay thử nghiệm cách patch mới khiến máy không thể khởi động được vào Mac OS. Cách khắc phục là ta truy cập vào phân vùng EFI để xóa DSDT & SSDT (bị lỗi), rồi lại boot vào Mac OS để tiến hành fix lại.

Trên Windows:
Chạy Command Prompt (Admin) - Copy/ Paste từng lệnh và Enter

Code Miêu tả
Diskpart Khởi chạy tiện ích Diskpart
List Disk Khởi tạo danh sách ổ cứng trên máy bạn
Select Disk 0 Chọn ổ cứng (thông thường máy chỉ có 1 ổ thì oánh số 0)
List Partition Khởi tạo danh sách phân vùng trên ổ cứng
Select partition 1 Chọn phân vùng EFI (thường nằm đầu tiên nên chọn số 1)
Assign letter=Z Đặt tên cho phân vùng EFI
Exit Thoát Diskpart
Taskkill /im explorer.exe /f Tắt Explorer
Explorer.exe Khởi động lại Explorer




Trên WinPE (mini Windows):
Trên WinPE thì đơn giản hơn, bạn chỉ cần dùng tool phân vùng để đặt tên cho phân vùng EFI là có thể truy cập ngay vào phân vùng này

Hiện tại để boot ở chế độ EFI thì có 2 bản cứu hộ này đáng để sử dụng là gói MiniWin8 của anhdv và bản cứu hộ DLC của tranduylinh





Cơ bản việc cài Mac OS đến đây đã hoàn thành. Sau khi khởi động lại máy bạn sẽ nhận thấy được được sự khác biệt khá lớn, nhưng đã là người chơi hackintosh bạn cần test nó xem sau những công sức mình bỏ ra nó có hoạt động đúng như mình mong muốn không, đã ổn định và full tính năng như một máy Mac thật chưa? Cần tối ưu những gì để tiếp tục hoàn thiện?

To be continued....!
Blog được tạo ra chỉ với mục đích chia sẻ kinh nghiệm. Không thu phí bạn đọc dưới bất kỳ hình thức nào. Chúc các bạn thành công!
Join Our Newsletter