Monday, 16 April 2018

UEFI vs BIOS - tạo USB boot cài Windows 10 từ Ubuntu

Nói gì thì nói, Linux/Ubuntu với LibreOffice (hay tệ hơn nữa là OpenOffice)  không dành cho tất cả mọi người. Khó có một trải nghiệm gõ văn bản tiếng Việt nào sánh được với sử dụng MS Word trên Windows hay Mac. Tương tự với trải nghiệm chơi AOE (đế chế) trên Windows cũng vậy.
Vậy là phải cài Windows 10.

AOE DE

Không giống như các bản Windows trước kia, khi nghe thấy tải với cài là chỉ có Win lậu, thì nay ta đã có thể tải Windows 10 từ chính Microsoft

Không giống như các file ISO có thể tạo USB boot sử dụng lệnh dd (hybrid ISO), file ISO của Windows 10 không hỗ trợ điều này, vậy nên hành trình học hành lại bắt đầu.

Windows 10 cũng là phiên bản ở thời điểm UEFI là một điều phổ biến. Và nếu bỏ qua không chịu hiểu nó là gì, ta sẽ lại phải làm lại từ đầu vì những gì đã biết đã quá cũ.

BIOS và UEFI


BIOS là một khái niệm đã có từ quá lâu, từ những năm 1980, và bắt đầu từ năm 201x nó mới bắt đầu được dần thay thế bằng UEFI. Ở thời điểm này (2018), nếu đi mua máy tính mới, khó mà có thể tìm được máy dùng BIOS chứ không phải UEFI.

BIOS là gì?

BIOS là viết tắt của Basic Input/Output System - 
một phần mềm (software) thuộc loại firmware - hiểu nôm na là phần mềm cấp thấp, không được quản lý bởi OS nào cả, thực hiện điều khiển cấp thấp các thiết bị phần cứng. Nó là chương trình ĐẦU TIÊN sẽ chạy khi ta bấm nút khởi động máy.

Các thiết bị khác sử dụng firmware có thể kể tới: modem, điện thoại nokia trước thời android.

UEFI là gì?

Sau hơn 30 năm tồn tại (từ 1975), BIOS trở nên quá lỗi thời so với các phần khác của máy tính (từ phần cứng đến phần mềm), nó trở thành cái gai trong mắt các nhà sản xuất máy tính. Intel đưa ra một thế hệ mới của BIOS, đặt tên là Extensible Firmware Interface (EFI), sau đó một thời gian, các nhà sản xuất khác cùng nhau (IBM, AMD ...) họp lại và thống nhất chuẩn Unified Extensible Firmware Interface hay viết tắt là UEFI.

UEFI cung cấp các chức năng như BIOS, nhưng xịn hơn/nhanh hơn. Với người dùng thông thường, UEFI không có tác dụng gì ngoài việc khi vào "BIOS" thấy có cả chuột (thời BIOS xưa chỉ có chọn bằng phím), và khởi động nhanh hơn (nhanh hơn ở khoảng thời gian trước khi vào OS). Hầu hết các UEFI firmware đều hỗ trợ chế độ Legacy - tương thích ngược với BIOS.

BIOS hay UEFI thì ảnh hưởng gì đến chuyện cài hệ điều hành?

BIOS thường đi kèm với khái niệm MBR - Master Boot Record
UEFI đi kèm với khái niệm GPT - GUID Partition Table. MBR và GPT là 2 partition table schemes (bảng phân vùng ổ cứng) khác biệt. MBR đi kèm với BIOS với nhiều giới hạn như không hỗ trợ ổ cứng lên tới 3 TB, GPT đi kèm với UEFI, nên mới hơn, hỗ trợ nhiều hơn.
Điều quan trọng là 2 khái niệm này không đội trời chung.

Rõ ràng nếu bạn mua một cái máy mới, hỗ trợ UEFI, thì chả có lý do gì mà không dùng GPT cả.
Với những máy cũ, chỉ có BIOS, thì bị mắc kẹt ở MBR, hay lý do đặc biệt hơn: có các OS khác đã cài và sử dụng MBR thì giờ không thể cho mình Windows dùng GPT được => lại dùng MBR.

Dù MBR hay GPT thì hệ điều hành vẫn chạy bình thường, nhưng chỉ được chọn một.
Sử dụng bất kỳ tool quản lý partition (phân vùng) nào trên Linux: fdisk, parted, gparted để xem scheme hiện tại đang dùng, rồi tạo USB boot tương ứng thì mới có thể boot vào USB và cài được nếu lệch scheme, vẫn boot vào USB được nhưng đến đoạn chọn partition cài Windows sẽ không chọn được. Ví dụ xem máy mình đang dùng scheme nào:
$ sudo parted --list
Model: ATA LITEONIT LMT-19n (scsi)
Disk /dev/sda: 128GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End    Size    File system  Name  Flags
 1      17.4kB  542kB  524kB
 2      1049kB  103GB  103GB   ext4
 4      103GB   123GB  20.4GB  ext4
 3      123GB   128GB  4295MB
 5      128GB   128GB  259MB                      bios_grub
Với máy dùng UEFI, cách tạo Boot USB Windows 10 khá đơn giản:
- Format USB, chọn sẽ dùng GPT
- Tạo 1 partition mới, format FAT32
- Mount file ISO của Windows 10 vào máy, copy toàn bộ nội dung sang USB
- Xong, khởi động lại máy, bấm phím đặc biệt để vào UEFI, chọn UEFI (not legacy) và chọn khởi động từ USB, nhấn F10 rồi khởi động vào USB và cài.

Chi tiết xem tại: https://askubuntu.com/questions/289559/how-can-i-create-a-windows-bootable-usb-stick-using-ubuntu/487970#487970

Hết.
HVN at https://pymi.vn and http://www.familug.org

Tham gia hỏi đáp lập trình, hệ thống tại https://invite.pymi.vn
Đăng ký học python tại https://pymi.vn