Sử dụng ổ cứng HDD cho việc sao lưu và sửa chữa máy tính

Duc A. Hoang 30 Dec 2018 16 Jan 2019 linux, windows

Summary

Tôi có một ổ cứng HDD SATA 320GB còn dư và muốn cài đặt và sử dụng ổ cứng này như một công cụ để thực hiện việc sửa chữa và sao lưu từ máy tính của tôi. Bài viết này ghi lại quá trình tôi cài đặt ổ cứng này với các công cụ cần thiết. Quá trình này được thực hiện chủ yếu trên Windows 10.


Mục tiêu

  • Cài đặt HDD với chức năng Multi-boot phục vụ việc cài đặt, sao lưu và sửa chữa máy tính.
  • Cài đặt hệ điều hành Manjaro trên HDD với các công cụ cần thiết để phục vụ quá trình làm việc của tôi. (Do đó, tôi có thể boot vào bất cứ máy tính nào thông qua ổ HDD này mà vẫn có thể tiếp tục công việc).

Các công cụ cần thiết

Cài đặt Easy2Boot lên HDD bằng RMPrepUSB

Trước tiên, giải nén tệp Easy2Boot_v1.A7.zip để thu được thư mục Easy2Boot_v1.A7 với nội dung như sau:

Thư mục: Easy2Boot_v1.A7
C:\USERS\[USERNAME]\DOWNLOADS\EASY2BOOT_V1.A7
└───_ISO
    ├───ANTIVIRUS
    ├───AUTO
    ├───BACKUP
    ├───docs
    │   ├───BOOT_ME_USING_QEMU
    │   │   └───QEMU
    │   ├───ChocBox
    │   ├───Download URLs
    │   │   └───GodMode.{ED7BA470-8E54-465E-825C-99712043E01C}
    │   ├───E2B Utilities
    │   │   ├───Convert Unicode file to UTF8
    │   │   ├───DelSysFiles
    │   │   ├───Disable_System_Volume_Information_Folder_Creation
    │   │   ├───Force_Windows_Safe_Mode
    │   │   ├───Fribidi
    │   │   ├───GIFtoIMA
    │   │   ├───LZMA
    │   │   ├───Make_CONTIG.ISO
    │   │   ├───MD5
    │   │   ├───MOVE_IMGPTN
    │   │   ├───Protect
    │   │   └───WinNTSetup
    │   │       └───Tools
    │   │           └───diskpart
    │   ├───FASTLOAD
    │   ├───Fonts
    │   ├───GFXBoot
    │   │   ├───cpio
    │   │   └───files
    │   │       └───penguin
    │   ├───linux_utils
    │   ├───Make_E2B_USB_Drive
    │   │   └───ChangeDriveLetter
    │   ├───Make_Ext
    │   ├───MyThemes
    │   ├───PassPass
    │   ├───Sample mnu files
    │   │   ├───DOS
    │   │   ├───E2B Menus
    │   │   │   └───GRUB2
    │   │   ├───Falcon4.6
    │   │   ├───Hirens
    │   │   ├───Linux
    │   │   ├───OpenElec
    │   │   ├───Others
    │   │   ├───WinBuilder_PE_Multiple_ISOs
    │   │   │   └───_ISO
    │   │   │       └───MAINMENU
    │   │   │           └───WB1
    │   │   ├───Windows
    │   │   └───Windows Password
    │   │       ├───PassPass_chenall
    │   │       └───PassPass_E2B
    │   ├───SysInfo
    │   ├───Templates
    │   │   ├───Aliums
    │   │   ├───Animate
    │   │   ├───BeepShowBackgroundDemo
    │   │   ├───Blue
    │   │   ├───BoxDemo
    │   │   ├───CenteredMenu
    │   │   ├───GFXMenu
    │   │   ├───Jolene
    │   │   ├───LargeFont
    │   │   ├───LargeFontCentred
    │   │   ├───LargeFontCentredOffset
    │   │   ├───Mac
    │   │   ├───MainMenu Only
    │   │   ├───N0F1F7F8F10
    │   │   ├───PET
    │   │   ├───Quick800
    │   │   ├───StripedFlat_pwd_is_fred
    │   │   ├───TextMinimal
    │   │   └───WinInstInMain
    │   │       └───MAINMENU
    │   ├───Tunes
    │   ├───USB FLASH DRIVE HELPER FILES
    │   ├───UtilMan
    │   └───WINCONTIG
    │       └───lang
    ├───DOS
    │   └───MNU
    ├───e2b
    │   ├───firadisk
    │   │   ├───awealloc
    │   │   │   ├───amd64
    │   │   │   └───i386
    │   │   ├───cli
    │   │   │   ├───amd64
    │   │   │   └───i386
    │   │   ├───cpl
    │   │   │   ├───amd64
    │   │   │   └───i386
    │   │   ├───svc
    │   │   │   ├───amd64
    │   │   │   └───i386
    │   │   └───sys
    │   │       ├───amd64
    │   │       └───i386
    │   └───grub
    │       ├───ARABIC
    │       ├───CZECH
    │       ├───DPMS
    │       │   ├───D
    │       │   ├───FIRA
    │       │   ├───NTBOOT.MOD
    │       │   └───WINV
    │       ├───DUTCH
    │       ├───ENG
    │       ├───FRENCH
    │       ├───GERMAN
    │       ├───GERMAN_ALT
    │       ├───GREEK
    │       ├───ITALIAN
    │       ├───POLISH
    │       ├───PORTU_BRAZIL
    │       ├───ROMANIAN
    │       ├───RUSSIAN
    │       ├───SIMP_CHINESE
    │       ├───SPANISH
    │       ├───SWEDISH
    │       ├───TRAD_CHINESE
    │       ├───UKRAINIAN
    │       └───VIETNAMESE
    ├───LINUX
    ├───MAINMENU
    │   ├───$$$$CONFIG
    │   └───MNU
    ├───UTILITIES
    │   └───MNU
    ├───UTILITIES_MEMTEST
    │   └───MNU
    ├───WIN
    ├───WINDOWS
    │   ├───installs
    │   │   ├───APPS
    │   │   │   ├───CHOCBOX
    │   │   │   └───CHROME
    │   │   │       ├───AMD64
    │   │   │       ├───BOTH
    │   │   │       └───X86
    │   │   ├───CONFIGS
    │   │   │   └───SDI_CHOCO
    │   │   ├───DRIVERS
    │   │   ├───INSTALLCHOCO
    │   │   ├───SNAPPY
    │   │   │   ├───drivers
    │   │   │   ├───indexes
    │   │   │   │   └───SDI
    │   │   │   │       └───txt
    │   │   │   ├───logs
    │   │   │   ├───scripts
    │   │   │   └───tools
    │   │   │       └───SDI
    │   │   │           ├───langs
    │   │   │           └───themes
    │   │   │               ├───dark
    │   │   │               ├───green_blue
    │   │   │               ├───metallic
    │   │   │               ├───metro
    │   │   │               ├───sky_clouds
    │   │   │               └───winter
    │   │   └───wsusoffline
    │   ├───SVR2012
    │   │   └───SAMPLE XML FILES
    │   ├───SVR2016
    │   ├───SVR2019
    │   ├───SVR2K8R2
    │   ├───VISTA
    │   ├───WIN10
    │   │   └───SAMPLE XML FILES
    │   │       └───Disk1 for VMs
    │   ├───WIN7
    │   │   └───SAMPLE XML FILES
    │   │       └───Disk1 for VMs
    │   ├───WIN8
    │   │   └───SAMPLE XML FILES
    │   │       └───Disk1 for VMs
    │   ├───WINAIO
    │   └───XP
    └───WINPE

Cài đặt RMPrepUSB và chạy với quyền Administrator.

Cửa sổ RMPrepUSB

Các bước lựa chọn (xem thêm ở trang này) như sau:

  • Chọn menu Settings > List Large Drives > 128GiB, hoặc bấm Ctrl + Z, để làm việc với ổ HDD.
  • Tick No User Prompts check box.
  • Mục 1. Partition Size (MiB): Tôi muốn sử dụng khoảng 30GB để lưu và boot các ISO images, do đó tôi chọn kích thước phân vùng là khoảng 30720 MiB. Kích thước tối đa mà Easy2Boot đề nghị là 131072 MiB (xem trang này).
  • Mục 2. Volume Name: EASY2BOOT (hoặc bất kỳ tên nào bạn thích).
  • Mục 3. Bootloader Options: Chọn WinPEv2/WinPEv3/Vista/Win 7 bootable [BOOTMGR] (CC4) (thực ra bất kỳ lựa chọn nào ngoài SYSLINUX đều được).
  • Mục 4. Filesystem and Overrides: Chọn NTFS.
  • Mục 5. Copy OS Files: Bấm Choose Source, trả lời Copy Files='YES', và chọn đường dẫn tới thư mục Easy2Boot_v1.A7 (trong trường hợp của tôi là C:\Users\[username]\Downloads\Easy2Boot_v1.A7, với [username] là username sử dụng trong Windows).
  • Bấm 6. Prepare drive. Bước này sẽ định dạng ổ HDD, tạo phân vùng mới với nhãn bạn đã chọn (EASY2BOOT), và sao chép các tệp cần thiết từ thư mục Easy2Boot_v1.A7 vào phân vùng này.
  • Sau khi hoàn thành bước trên, bấm Install grub4dos, chọn Yes để cài Grub4dos vào MBR (Master Boot Record) của HDD. Chọn Cancel khi được hỏi Overwrite existing grldr file on E: (với E: là tên Windows gán cho phân vùng EASY2BOOT) để tránh việc ghi đè tệp grldr của Easy2Boot.
  • Bấm Install grub4dos, chọn No để cài Grub4dos vào PBR (Partition Boot Record) của phân vùng EASY2BOOT. Chọn Cancel khi được hỏi Overwrite existing grldr file on E: (với E: là tên Windows gán cho phân vùng EASY2BOOT) để tránh việc ghi đè tệp grldr của Easy2Boot.

Tạo các phân vùng khác trên HDD

Như đã nói ở trên, tôi muốn cài đặt Manjaro trên HDD để phục vụ quá trình làm việc của mình. Tôi sử dụng EaseUS Partition Master Free để tạo các phân vùng Logical trên HDD như sau:

  • Phân vùng có nhãn E2B_PTN2, định dạng FAT32 để cài đặt và sử dụng GRUB2 với Easy2Boot (phiên bản Beta, xem ở đây).
  • Phân vùng có nhãn DATA, định dạng NTFS, để chứa các dữ liệu và bản sao cần thiết.
  • Phân vùng có nhãn EFI_BOOT, kích thước khoảng 300MiB, định dạng FAT32 để chứa các thông tin liên quan đến việc boot với UEFI mode. (Tôi muốn cài đặt cả UEFI và (Legacy) BIOS boot mode).
  • Phân vùng có nhãn LINUX_SWAP, kích thước khoảng 2GB, định dạng EXT3.
  • Phân vùng có nhãn MANJARO_ROOT, định dạng EXT3, để cài hệ điều hành Manjaro.

Chú ý rằng việc khởi tạo các phân vùng logical như trên chỉ nhằm mục đích tạo ra cấu trúc có sẵn để cài hệ điều hành. Khi cài Manjaro, tất cả các phân vùng trên (trừ E2B_PTN2DATA) sẽ được định dạng lại.

Cài đặt Easy2Boot

Cách đơn giản nhất là bạn chỉ cần sao chép ISO image vào một trong các thư mục con của thư mục _ISO trong phân vùng EASY2BOOT. Bạn cũng có thể chuyển đổi tệp có đuôi .iso sang tệp có đuôi .imgPTN để boot từ Easy2Boot menu (xem trang này). Trang chủ của Easy2Boot có chứa các hướng dẫn chi tiết về việc cài đặt và sử dụng Easy2Boot. Chú ý rằng bạn có thể đổi đuôi .imgPTN sang .imgPTN23 nếu muốn hiện các phân vùng còn lại của ổ HDD khi bạn boot với tệp đuôi .imgPTN. Để cài đặt GRUB2 với Easy2Boot, xem hướng dẫn ở đây.

Cài đặt Manjaro

Tôi cài đặt Manjaro với Manjaro Architect. Xem hướng dẫn cài đặt tại đây. Cấu trúc menu của Manjaro Architect ở thời điểm tôi viết bài này có dạng như sau:

|
├── Prepare Installation
│    ├── Set Virtual Console
│    ├── List Devices
│    ├── Partition Disk
│    ├── LUKS Encryption
│    ├── Logical Volume Management
│    ├── Mount Partitions
│    ├── Configure Installer Mirrorlist
│    └── Refresh Pacman Keys
│
├── Install Desktop System
│   ├── Install Manjaro Desktop
│   ├── Install Bootloader
│   ├── Configure Base
│   │   ├── Generate FSTAB
│   │   ├── Set Hostname
│   │   ├── Set System Locale
│   │   ├── Set Desktop Keyboard Layout
│   │   ├── Set Timezone and Clock
│   │   ├── Set Root Password
│   │   └── Add New User(s)
│   │
│   ├── Security and systemd Tweaks
│   │   ├── Amend journald Logging
│   │   ├── Disable coredump Logging
│   │   └── Restrict Access to Kernel Logs
│   │
│   ├── Review Configuration Files
│   └── Chroot into Installation
│
├── Install CLI System
│   ├── Install Base Packages
│   ├── Install Bootloader
│   ├── Configure Base
│   │   ├── Generate FSTAB
│   │   ├── Set Hostname
│   │   ├── Set System Locale
│   │   ├── Set Desktop Keyboard Layout
│   │   ├── Set Timezone and Clock
│   │   ├── Set Root Password
│   │   └── Add New User(s)
│   │
│   ├── Install Custom Packages
│   ├── Security and systemd Tweaks
│   │   ├── Amend journald Logging
│   │   ├── Disable coredump Logging
│   │   └── Restrict Access to Kernel Logs
│   │
│   ├── Review Configuration Files
│   └── Chroot into Installation
│
├── Install Custom System
│   ├── Install Base Packages
│   ├── Install Unconfigured Desktop Environments
│   │   ├── Install Display Server
│   │   ├── Install Desktop Environment
│   │   ├── Install Display Manager
│   │   ├── Install Networking Capabilities
│   │   ├── Install Multimedia Support
│   │   └── Install Custom Packages
│   ├── Install Bootloader
│   ├── Configure Base
│   │   ├── Generate FSTAB
│   │   ├── Set Hostname
│   │   ├── Set System Locale
│   │   ├── Set Desktop Keyboard Layout
│   │   ├── Set Timezone and Clock
│   │   ├── Set Root Password
│   │   └── Add New User(s)
│   │
│   ├── Install Custom Packages
│   ├── Security and systemd Tweaks
│   │   ├── Amend journald Logging
│   │   ├── Disable coredump Logging
│   │   └── Restrict Access to Kernel Logs
│   │
│   ├── Review Configuration Files
│   └── Chroot into Installation
│
└── System Rescue
    ├── Install Hardware Drivers
    │   ├── Install Display Drivers
    │   └── Install Network Drivers
    │
    ├── Install Bootloader
    ├── Configure Base
    │   ├── Generate FSTAB
    │   ├── Set Hostname
    │   ├── Set System Locale
    │   ├── Set Desktop Keyboard Layout
    │   ├── Set Timezone and Clock
    │   ├── Set Root Password
    │   └── Add New User(s)
    │
    ├── Install Custom Packages
    ├── Remove Packages
    ├── Review Configuration Files
    └── Chroot into Installation

Cấu trúc HDD của tôi nhìn từ Manjaro sau khi hoàn tất cài đặt có dạng như sau (kết quả từ sudo fdisk -l):

Disk /dev/sdb: 298.1 GiB, 320072933376 bytes, 625142448 sectors
Disk model: 5AS             
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 33553920 bytes
Disklabel type: dos
Disk identifier: 0x6b85a911

Device     Boot     Start       End   Sectors   Size Id Type
/dev/sdb1            2048  56623103  56621056    27G  7 HPFS/NTFS/exFAT
/dev/sdb2        56623104  83886079  27262976    13G  c W95 FAT32 (LBA)
/dev/sdb3        83886080 625141759 541255680 258.1G  f W95 Ext'd (LBA)
/dev/sdb5        83886143 398458879 314572737   150G  7 HPFS/NTFS/exFAT
/dev/sdb6  *    398458943 399507455   1048513   512M ef EFI (FAT-12/16/32)
/dev/sdb7       399509504 403703807   4194304     2G 82 Linux swap / Solaris
/dev/sdb8       403705856 625141759 221435904 105.6G 83 Linux

Quan hệ giữa các phân vùng là

Nhãn trên Windows ban đầu Định dạng trên Windows ban đầu Phân vùng trên Linux sau khi cài Định dạng trên Linux sau khi cài Loại (Primary/Logical) Chức năng
EASY2BOOT NTFS /dev/sdb1 HPFS/NTFS/exFAT
[Không thay đổi]
Primary Phân vùng Multi-boot sử dụng bởi Easy2Boot
E2B_PTN2 FAT32 /dev/sdb2 W95 FAT32 (LBA)
[Không thay đổi]
Primary Phân vùng 2 sử dụng bởi Easy2Boot với GRUB2
DATA NTFS /dev/sdb5 HPFS/NTFS/exFAT
[Không thay đổi]
Logical Lưu trữ dữ liệu
EFI_BOOT FAT32 /dev/sdb6 EFI (FAT-12/16/32)
[Định dạng lại]
Logical Phân vùng cài đặt EFI boot
LINUX_SWAP EXT3 /dev/sdb7 Linux swap / Solaris
[Định dạng lại]
Logical Phân vùng swap cho Manjaro
MANJARO_ROOT EXT 3 /dev/sdb8 Linux (EXT4)
[Định dạng lại]
Logical Phân vùng cài đặt Manjaro

Một số chú ý khi cài đặt:

  • Ở bước Mount Partitions, chọn /dev/sdb6 khi được hỏi về “EFI boot partition”. Chọn mount phân vùng này vào thư mục /boot/efi, và chọn grub ở mục Install Bootloader sau này.
  • Ở bước Chroot into Installation, cài đặt lại GRUB2 bootloader để boot với UEFI mode như sau (xem thêm ở đây):
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=Manjaro --boot-directory=/boot/efi --debug
grub-mkconfig -o /boot/efi/grub/grub.cfg

Tiếp đó, cài đặt GRUB Bootloader để boot với BIOS mode như sau (xem thêm ở đây):

grub-install --target=i386-pc /dev/sdb # Install GRUB2 to MBR, which overwrites Grub4dos installed before
chattr -i /boot/grub/i386-pc/core.img
grub-install --target=i386-pc --debug --force /dev/sdb8 # Install GRUB2 to partition /dev/sdb8
chattr +i /boot/grub/i386-pc/core.img
grub-mkconfig -o /boot/grub/grub.cfg

Cài đặt Windows (2019-01-13)

Thay vì Manjaro, có thể sử dụng WinToUSB để cài đặt Windows To Go. Có thể thực hiện điều này bằng cách tạo phân vùng EASY2BOOT định dạng NTFS để cài Windows lên ổ HDD thông qua WinToUSB, và phân vùng WIN_BOOT định dạng FAT32 tầm 300MiB để chứa thông tin liên quan đến việc boot vào Windows với cả BIOS và UEFI mode. Tôi sử dụng ISO image của phiên bản Windows 10 Enterprise LTSC 2019 tải trực tiếp từ Microsoft Evaluation Center với WinToUSB. Khi sử dụng WinToUSB, chọn WIN_BOOTsystem partitionEASY2BOOTboot partition. Chú ý rằng EASY2BOOT phải là phân vùng thứ nhất. Điều này nhằm thuận lợi cho việc cài đặt Easy2Boot lên phân vùng này với RMPrepUSB (chỉ sao chép các tệp của Easy2Boot vào phân vùng EASY2BOOT và thực hiện cài Grub4dos, không định dạng lại phân vùng EASY2BOOT) sau khi hoàn thành các bước cài đặt với WinToUSB. Nếu gặp lỗi PROBLEM: Sector at LBA30 appears to contain code - please reformat using RMPrepUSB khi boot với tệp đuôi .imgPTN thì xử lý như sau: Chọn ổ HDD với phân vùng EASY2BOOT từ RMPrepUSB. Sau đó bấm nút Drive->File, lưu tệp với tên MBR.bin và điền các tham số như sau: Start = 0, Length=1SEC, FileStart=0. Tiếp theo, bấm nút File->Drive, chọn tệp MBR.bin vừa lưu và điền các tham số như sau: Start=0, USBStart=30, Length=0. (Xem thêm ở đây để biết thêm chi tiết.) Để cài đặt phần mềm trên Windows, có thể sử dụng Chocolatey với lệnh choco install packages.config -y, với tệp packages.config có dạng như sau (cho Windows 64-bit). Chú ý là một số phần mềm như texmaker phiên bản 5.0.3 hay jdk11 chỉ chạy trên nền hệ điều hành 64-bit.

Tệp: packages.config
<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="7zip" version="18.6" />
  <package id="7zip.install" version="18.6" />
  <package id="7zip.portable" version="18.6" />
  <package id="adobereader" version="2019.010.20064.01" />
  <package id="autohotkey.portable" version="1.1.30.01" />
  <package id="chocolatey" version="0.10.11" />
  <package id="chocolatey-core.extension" version="1.3.3" />
  <package id="chocolatey-misc-helpers.extension" version="0.0.3.1" />
  <package id="chocolatey-windowsupdate.extension" version="1.0.3" />
  <package id="chocolateygui" version="0.16.0" />
  <package id="defraggler" version="2.22.995.20181017" />
  <package id="DotNet3.5" version="3.5.20160716" />
  <package id="DotNet4.5.2" version="4.5.2.20140902" />
  <package id="dropbox" version="64.4.141" />
  <package id="filezilla" version="3.39.0" />
  <package id="Firefox" version="64.0.2" />
  <package id="git" version="2.20.1" />
  <package id="git.install" version="2.20.1" />
  <package id="GoogleChrome" version="71.0.3578.98" />
  <package id="gpg4win" version="3.1.5" />
  <package id="imdisk" version="2.0.10.20181231" />
  <package id="jdk11" version="11.0.1" />
  <package id="k-litecodecpackmega" version="14.6.0" />
  <package id="KB2919355" version="1.0.20160915" />
  <package id="KB2919442" version="1.0.20160915" />
  <package id="KB2999226" version="1.0.20181019" />
  <package id="KB3033929" version="1.0.4" />
  <package id="KB3035131" version="1.0.2" />
  <package id="notepadplusplus" version="7.6.2" />
  <package id="notepadplusplus.install" version="7.6.2" />
  <package id="Opera" version="57.0.3098.116" />
  <package id="ruby" version="2.5.3.101" />
  <package id="texmaker" version="5.0.3" />
  <package id="thunderbird" version="60.4.0" />
  <package id="unikey" version="4.3.180714" />
  <package id="vcredist140" version="14.16.27024.1" />
  <package id="vcredist2015" version="14.0.24215.20170201" />
  <package id="veracrypt" version="1.23.2" />
  <package id="vlc" version="3.0.6" />
  <package id="vmware-horizon-client" version="4.10.0" />
  <package id="vscode" version="1.30.2" />
  <package id="Wget" version="1.20" />
  <package id="windjview" version="2.1" />
  <package id="zotero" version="5.0.60" />
</packages>

Phiên bản Windows 10 Enterprise LTSC 2019 cho phép sử dụng thử trong 90 ngày, và có thể sử dụng lệnh slmgr /rearm 3 lần để gia hạn. Một cách thường dùng với các phiên bản Windows Enterprise và Windows Server cũ để gia hạn thời gian sử dụng mỗi khi hết 90 ngày là như sau: tìm đến HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform trong Windows Registry và thay giá trị của SkipRearm từ 0 thành 1, sau đó dùng lệnh slmgr /rearm để gia hạn thời gian sử dụng thử. Có thể đọc thêm về SkipRearmđây.

GRUB2 và Grub4dos menu

Từ Windows 10, sử dụng RMPrepUSB để cài đặt lại Grub4dos như đã thực hiện ở trên. Sau đó, tạo một tệp _ISO/MAINMENU/MNU/Manjaro.mnu với nội dung sau

# --- Manjaro Linux Boot Menu -----
title Pre-Installed Manjaro Linux
kernel (hd0,7)/boot/grub/i386-pc/core.img

để boot Manjaro từ Grub4dos menu của Easy2Boot.

Ở đây, (hd0, 7) ứng với phân vùng /dev/sdb8 trên ổ HDD.

Từ Manjaro, để boot vào Easy2Boot, thêm dòng sau vào /etc/grub.d/40_custom

if [ "${grub_platform}" == "pc" ]; then
	menuentry "EASY2BOOT"{
		set root='(hd1,1)'
		search --no-floppy --fs-uuid --set 48B001F4B001E970
		drivemap -s (hd0) ${root}
		chainloader +1
	}
fi

trong đó 48B001F4B001E970 là UUID của phân vùng /dev/sdb1 chứa Easy4Boot. Để lấy UUID của /dev/sdb1, dùng lệnh sudo blkid /dev/sdb1. Cập nhật lại GRUB2 bootloader menu như sau:

grub-mkconfig -o /boot/grub/grub.cfg

Để load từ GRUB2 menu của Easy2Boot, tôi tạo tệp _ISO/MAINMENU/MNU/grub2/Manjaro.grub2_ISO/MAINMENU/grub2/Manjaro.grub2 với nội dung như sau:

if $EFI; then
if $BIT64; then
menuentry 'Pre-Installed Manjaro Linux (x64 UEFI)' --class manjaro --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-e76694c2-cd39-443c-b487-be95c5bac27e' {
	if [ -z "${boot_once}" ]; then
		saved_entry="${chosen}"
		save_env saved_entry
  	fi
	if [ x$feature_all_video_module = xy ]; then
    	insmod all_video
  	else
		insmod efi_gop
		insmod efi_uga
		insmod ieee1275_fb
		insmod vbe
		insmod vga
		insmod video_bochs
		insmod video_cirrus
  	fi
	set gfxpayload=keep
	insmod gzio
	insmod part_msdos
	insmod ext2
	set root='hd0,msdos6'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos6 --hint-efi=hd0,msdos6 --hint-baremetal=ahci0,msdos6  350E-515A
	else
	  search --no-floppy --fs-uuid --set=root 350E-515A
	fi
	chainloader /efi/boot/bootx64.efi
}
fi
fi

Chú ý rằng phân vùng /dev/sdb6 là phân vùng lưu giữ các thông tin phục vụ việc boot với UEFI boot mode. Ở đây, khi bạn load GRUB2 menu từ Grub4dos của Easy2Boot bằng cách load tệp UEFI_GRUB2_PTN2_xxxx.imgPTNLBAa23, đuôi .imgPTNLBAa23 cho thấy sau khi load tệp này thì ổ HDD (chứa Easy2Boot) của bạn sẽ được coi là ổ hd0 khi boot, và các phân vùng khác trên ổ HDD này đều sẽ được nhận dạng (nếu bỏ đuôi 23 thì bạn sẽ không tìm thấy các phân vùng này khi chạy bất kỳ chương trình nào, ví dụ như Acronis True Image CD). Do đó, tôi đặt set root='hd0,msdos6', với msdos6 ở đây chỉ phân vùng /dev/sdb6 chứa các thông tin để boot Manjaro Linux với UEFI mode. Để chắc chắn hơn, tôi đặt lệnh tìm kiếm UUID của phân vùng này (ở đây là 350E-515A, thông tin này có thể được lấy bằng lệnh sudo blkid /dev/sdb6 trong Manjaro Linux) và đặt lại root nếu phân vùng không phải 'hd0,msdos6'. Chú ý rằng tôi có thể boot thành công là do tôi đã sao chép tất cả các tệp cần thiết cho việc boot với UEFI mode vào phân vùng /dev/sdb6 khi cài đặt với grub-installgrub-mkconfig.

GRUB2 menu entry cho một số tệp ISO để sử dụng với Easy2Boot

Các entry sau được thêm vào các tệp đuôi .grub2 tương ứng. Chú ý rằng tên tệp ISO cần phải trùng với tên tệp trong entry, và tốt nhất là không chứa khoảng cách.

manjaro-architect-18.0-stable-x86_64.iso

if $BIT64; then
if [ -e "$isofpath/manjaro-architect-18.0-stable-x86_64.iso" ]; then
menuentry 'Manjaro Architect (x86-64 UEFI)' --unrestricted --class manjaro{
    set isoname=manjaro-architect-18.0-stable-x86_64.iso ; CHECK_MNU_FOLDER
	set root=$root2
	loopback loop $isofile
# probe params: -p = partmap, -f = filesystem, -u = uuid, -l = label
	probe -l (loop) --set=isolabel
	linux  (loop)//boot/vmlinuz-x86_64  img_dev=/dev/disk/by-uuid/$root2uuid img_loop=$isofile 
	initrd (loop)/boot/intel_ucode.img (loop)/boot/initramfs-x86_64.img
	boot
}
fi
fi

clonezilla-live-20180812-bionic-amd64.iso

if $BIT64; then
if [ -e "$isofpath/clonezilla-live-20180812-bionic-amd64.iso" ]; then
menuentry "Clonezilla Live Bionic (64-bit)" --unrestricted --class clonezilla {
	set isoname=clonezilla-live-20180812-bionic-amd64.iso ; CHECK_MNU_FOLDER
	gfxpayload=keep
	set root=$root2
	loopback loop $isofile
	linux (loop)/live/vmlinuz boot=live union=overlay username=user config components quiet noswap nolocales edd=on nomodeset nodmraid ocs_live_run=\"ocs-live-general\" ocs_live_extra_param=\"\" keyboard-layouts= ocs_live_batch=\"no\" locales= vga=788 ip=frommedia nosplash toram=filesystem.squashfs findiso=$isofile
	initrd (loop)/live/initrd.img
} 
fi
fi

AcronisTrueImage2019_14110.iso

if $BIT64; then
if [ -e "$isofpath/AcronisTrueImage2019_14110.iso" ]; then
menuentry "Acronis True Image Home 2019 (ISO)" --unrestricted --class icon-ati {
    set isoname=AcronisTrueImage2019_14110.iso ; CHECK_MNU_FOLDER
	set quiet=1
	set pager=0
	set gfxpayload=1024x768x32,1024x768
	set mbrcrcs=on
	set root=$root2
	loopback loop $isofile
	linux (loop,msdos1)/dat10.dat quiet force_modules=usbhid lang=1
	initrd (loop,msdos1)/dat11.dat (loop,msdos1)/dat12.dat
	boot
}
fi
fi

Chú ý rằng bạn cũng có thể đặt tệp ISO trên vào thư mục bất kỳ trên ổ cứng, ví dụ như /iso, và thêm một entry tương tự vào /etc/grub.d/40_custom để boot tệp ISO này từ ổ cứng của máy tính bạn đang sử dụng. Xem thêm ở đây để tìm hiểu về một số cách khác để boot Acronis True Image CD.

menuentry "Acronis True Image Home 2019 (ISO)" {
    set quiet=1
	set gfxpayload=1024x768x32,1024x768
	set mbrcrcs=on
	set isofile="/iso/AcronisTrueImage2019_14110.iso"
	search --set -f $isofile
	loopback loop $isofile
	linux (loop,msdos1)/dat10.dat lang=1 quiet force_modules=usbhid
	initrd (loop,msdos1)/dat11.dat (loop,msdos1)/dat12.dat
	boot
}