Một trong những giải pháp ảo hoá nổi bật hiện nay là VirtualBox được các doanh nghiệp và nhiều người dùng nhờ vào khả năng hỗ trợ đa nền tảng, số lượng lớn tính năng đơn giản, thân thiện
Trang 1VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
──────── * ───────
BÁO CÁO MÔN LINUX VÀ PHẦN MỀM MÃ NGUỒN MỞ
ĐỀ TÀI
Tìm hiểu, cài đặt và thử nghiệm
VirtualBox để cài đặt hệ điều hành khác
trên máy dùng Linux
Sinh viên thực hiện : Nguyễn Thị Hải Hằng
Lê Thị Thu Hà
Hà Kiều Trang
Hà Văn Đức Đoàn Xuân Tùng
Giáo viên hướng dẫn : Trần Hải Anh
Hà Nội, tháng 12 năm 2018
Trang 2MỤC LỤC
CHƯƠNG 1 TÌM HIỂU VỀ VIRTUALBOX 5
1.1 Lịch sử phát triển 5
1.2 Giới thiệu về VirtualBox 5
1.3 Các tính năng chính 6
1.4 Các cơ chế ảo hoá của VirtualBox 7
1.4.1 Ảo hoá bằng phần cứng 7
1.4.2 Ảo hoá dựa trên phần mềm 8
1.5 Lợi ích và hạn chế 8
1.5.1 Lợi ích 8
1.5.2 Hạn chế 9
CHƯƠNG 2 CÀI ĐẶT VIRTUALBOX 10
2.1 Tải và cài đặt gói VirtualBox từ trang chủ 10
2.2 Tải và cài đặt gói trực tiếp bằng Terminal 11
CHƯƠNG 3 CÀI ĐẶT MÁY ẢO TRÊN VIRTUALBOX 12
3.1 Thiết lập phần cứng 12
3.2 Thiết lập phần mềm 12
3.2.1 Cài đặt Windows (windows 7) 12
3.2.2 Cài đặt Ubuntu 13
CHƯƠNG 4 MỘT SỐ THAO TÁC VỚI MÁY ẢO 14
4.1 Chia sẻ file giữa máy thật và máy ảo 14
4.2 Copy, Paste giữa máy thật và máy ảo 14
4.3 Tạo và khôi phục Snapshots 15
4.4 Điều khiển VirtualBox bằng command line 16
CHƯƠNG 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 18
Trang 3LỜI NÓI ĐẦU
Hiện nay, công nghệ ảo hoá tồn tại ở khắp mọi nơi, từ những công ty nhỏ đến các trung tâm dữ liệu có hàng nghìn máy tính, là tiền đề cho điện toán đám mây, Ảo hoá, hiểu theo cách đơn giản là công nghệ giúp tạo ra các máy tính ảo dựa trên phần cứng thật Một trong những giải pháp ảo hoá nổi bật hiện nay là VirtualBox được các doanh nghiệp và nhiều người dùng nhờ vào khả năng hỗ trợ đa nền tảng, số lượng lớn tính năng đơn giản, thân thiện, dễ hoạt động, bảo trì máy ảo Đặc biệt, phần mềm được cung cấp dưới dạng mã nguồn mở và hoàn toàn miễn phí
Phần mềm VirtualBox cũng được sử dụng để phục vụ việc học tập trong các môn học tại trường Đại học Bách Khoa Hà Nội, ví dụ như môn “Linux và phần mềm nguồn mở” Do đó, nhóm em quyết định lựa chọn đề tài “Tìm hiểu, cài đặt và thử nghiệm VirtualBox để tìm hiểu và cài dặt và chạy thử hệ điều hành khác trên máy dùng Linux” để có thể hiểu rõ hơn về VirtualBox cũng như các tính năng hữu ích của
nó Đồng thởi, việc tìm hiệu về phần mềm cũng hoàn thành tốt những môn học cần ứng dụng phần mềm VirtualBox để chạy nhiều máy ảo, tìm hiểu các hệ điều hành
Để hoàn thành được bài tập lớn, nhóm chúng em xin đưuọc gửi lời cảm ơn chân thành đến thầy giáo hướng dẫn đề tài này: thầy Trần Hải Anh, Giảng viên Khoa Công nghệ Thông tin Trường Đại học Bách Khoa Hà Nội- đã hết lòng giúp đỡ, hướng dẫn, chỉ dạy tận tình để nhóm em hoàn thành được đề tài này
Hà Nội, tháng 12 năm 2018
Nhóm 14, Lớp 101406
(Danh sách thành viên ký tên)
Trang 4PHÂN CÔNG THÀNH VIÊN TRONG NHÓM
STT Họ tên MSSV Công việc đóng góp Mức độ hoàn thành
1 Nguyễn Thị Hải
Hằng 20161385 Tìm hiểu chương 1, tổng hợp, làm báo cáo Hoàn thành công việc đầy đủ và đúng
hạn
2 Lê Thị Thu Hà 20161222 Viết Lời mở đầu, Kết
luận, làm slide, thuyết trình
Hoàn thành công việc đầy đủ và đúng hạn
3 Hà Kiều Trang 20164153 Tìm hiểu chương 2 Hoàn thành công
việc đầy đủ và đúng hạn
4 Hà Văn Đức 20161068 Tìm hiểu chương 3, Hoàn thành công
việc đầy đủ và đúng hạn
5 Đoàn Xuân Tùng 20164505 Tìm hiểu chương 4 Hoàn thành công
việc đầy đủ và đúng hạn
Trang 5CHƯƠNG 1 TÌM HIỂU VỀ VIRTUALBOX
1.1 Lịch sử phát triển
- Ban đầu, VirtualBox được phát triển bởi Innotek GmbH – một công ty phát triển phần mềm có trụ sở tại Đức
- Phần mềm được phát hành lần đầu vào ngày 15-1-2007, dưới dạng phần mềm nguồn mở theo một giấy phép phần mềm độc quyền, tuân theo các yêu cầu của giấy phép công cộng GPL, phiên bản 2
- Tháng 2, năm 2008, công ty Sun Microsystems đã mua lại Innotek và đổi tên phần mềm thành “Sun Virtual Box”, “Sun xVM”
- Kể từ phiên bản 4 vào tháng 12 năm 2010, phần mềm được phát hành tự do theo giấy phép công cộng GPLv2 Riêng gói mở rộng VirtualBox (Oracle VM VirtualBox Expansion) lại được phát hành dưới dạng phần mềm sở hữu độc quyền
- Trước phiên bản 4, có hai gói khác nhau của phần mềm VirtualBox Gói đầy
đủ được cung cấp miễn phí theo PUEL, với giấy phép cho các triển khai thương mại khác có thể mua được từ Oracle Một gói thứ hai được gọi là VirtualBox Open Source Edition (OSE) đã được phát hành dưới GPLv2 Điều này đã loại bỏ các thành phần độc quyền tương tự không có trong GPLv2
1.2 Giới thiệu về VirtualBox
- VirtualBox là phần mềm máy ảo miễn phí phổ biến nhất thế giới, được các doanh nghiệp và nhà sử dụng ưa thích vì dễ dàng sử dụng, có tính năng phong phú và hiệu suất mạnh mẽ
- VirtualBox là một trình tạo hoá toàn vẹn cho phần cứng x86, nhằm mục tiêu đến máy chủ, máy tính để bàn và sử dụng chúng
- VirtualBox là máy chủ ảo đa nền tảng, hoạt động trên mọi nền tảng hệ điều hành như Linux (Ubuntu), MacOs, Windows, Solaris,… sau khi cài đặt có thể tạo và chạy nhiều máy ảo với hệ điều hành khác nhau cùng một lúc trên cùng một máy tính.z
- VirtualBox hỗ trợ việc tạo và quản lý các máy ảo đang chạy các phiên bản và dẫn xuất của Windows, Linux, Osx86, Solaris,… và ảo hoá hạn chế khác MacOS trên phần cứng của Apple
- VirtualBox được viêt bởi ngôn ngữ: C, C++, x86 Assembly
- Được cung cấp hoàn toàn miễn phí và có dung lượng tương đối nhẹ: 61-118
MB tuỳ nền tảng, và không tốn quá nhiều tài nguyên của máy tính
Trang 6- VirtualBox đang được tích cực phát triển với bản phát hành thường xuyên và
có một danh sách ngày càng phát triển các tính năng, hệ điều hành được hỗ trợ và các nền tảng chạy trên VirtualBox là một nỗ lực cộng đồng được hỗ trợ bởi một công ty chuyên dụng: tất cả mọi người được khuyến khích đống gớp trong khi Oracle đảm bảo sẳn phẩm luôn đáp ứng tiên chuẩn chất lượng chuyên nghiệp
- Cho phép các hệ điều hành máy chủ và các hệ điều hành và ứng dụng khách
có thể giao tiếp với nhau thông qua một số cơ chế bao gồm một khay nhớ tạm thời và một thiết bị mạng ảo
- Đối với một số hệ điều hành khách, VirtualBox đã có sẵn gói trình điều khiển thiết bị và ứng dụng hệ thống “Khách bổ sung”, thường cải thiện hiệu suất, đặc biệt là
đồ hoạ
1.3 Các tính năng chính
- Khả năng tương thích: VirtualBox tương thích trên hầu hết các hệ điều hành chạy 32 bit và 64 bit Các máy ảo có tính năng giống hệt như một hệ điều hành chạy trên một máy tính vật lý Máy ảo được tạo ra có thể chạy trên tất cả các máy chủ khác nhau Ví dụ, ta tạo một máy ảo Ubuntu trên Windows 7, sau đó ta có thể sao chép máy
ảo này và chạy nó trên một hệ điều hành MacOS X có cài dặt VirtualBox
- Không yêu cầu phần cứng ảo hoá: VirtualBox có thể thực hiện ảo hoá theo hai
cơ chế: cơ chế phần cứng và cơ chế phần mềm Với cơ chế phần cứng, ta cần có bộ xử
lý hỗ trợ công nghệ Intel VT-x hoặc AMD-V Tuy nhiên với các thiết bị có nền tảng phần cứng đời cũ, chưa có các công nghệ trên, VirtualBox vẫn có thể ảo hoá dựa theo
cơ chế phần mềm Đây là ưu điểm lớn của VirtualBox so với các phần mềm ảo hoá khác
- Guest Additions: VirtualBox Guest Additions là gói phần mềm dùng để cài đặt trong các máy ảo nhằm hỗ trợ tăng hiệu suất và tính năng cho máy ảo Với gói Guest Additions này, ta có thể chỉnh full màn hình trong VirtualBox, điều chỉnh độ phân giải màn hình, tăng tốc độ đồ hoạ 3D…
- Hỗ trợ phần cứng tuyệt vời: VirtualBox hỗ trợ:
Đa xử lý (multiprocessing): VirtualBox có thể xử lý lên đến 32 CPU cho mỗi máy ảo Mặc dù máy tính của ta có bao nhiêu CPU, phần mềm vẫn cho phép
Hỗ trợ USB: chúng ta không cần phải cài đặt bất kỳ driver cụ thể nào trên máy tính mà vẫn có thể dùng USB trong VirtualBox Ngoài ra ta cũng có thể kết nối bất cứ loại USB nào mong muốn mà không bị giới hạn
Tương thích phần cứng: Phần mềm hỗ trợ hầu hết các thiết bị, bao gồm trình điều khiển ổ cứng IDE, SCSI và SATA, card mảng ảo và cả card
âm thanh ảo
Hỗ trợ đầy đủ ACPI: điều này giúp giảm bớt nhân bản hình ảnh máy tính
từ máy thật hoặc bên thứ ba máy ảo vào VirtualBox
Multisreen solution: máy ảo VirtualBox hỗ trợ độ phân giải màn hình nhiều lần so với một màn hình vật lý, cho phép hiển thị một số lượng lớn màn hình gắn vào hệ thống máy chủ
Trang 7 Built-in hỗ trợ iSCSI: tính năng độc đáo cho phép kết nối với một máy
ảo trực tiếp đến một máy chủ lưu trữ iSCSI mà không thông qua hệ thống máy chủ
Khởi động PXE mạng: các card mạng ảo tích hợp của VirtualBox hỗ trợ đầy đủ khả năng khởi đông từ xa thông qua các môi trường thực hiện Preboot (PXE)
- Snapshots: đây là tính năng chụp lại một ảnh hiện tại của máy ảo Phần mềm
có thể khôi phục hiện trạng của máy ảo về trước đó nếu như máy ảo xảy ra lỗi Tính năng này có thể được hình dung như việc ghost với Windows Ta cũng có thể chụp snapshots ngay cả khi máy ảo đang chạy
- VM Groups: VirtualBox cung cấp một nhóm tính năng cho phép người dùng
để tổ chức và kiểm soát các máy ảo chung cũng như cá nhân
- Kiến trúc rõ ràng với mô-đun mới: VirtualBox có một mô-đun thiết kế với những quy định các giao diện lập trình nội bộ và tách biệt rõ ràng của khách hàng và
mã máy chủ Điều này làm cho nó dễ dàng để kiểm soát nó từ giao diện cùng một lúc
Ví dụ, ta có thể bắt đầu một VM chỉ đơn giản bằng cách nhấp chuột vào một nút trong
đồ hoạ VirtualBox giao diện người dùng và sau đó kiểm soát rằng máy từ dòng lệnh, hoặc thậm chí từ xa Do kiến trúc mô-đun của nó, VirtualBox cũng có thể phơi bày đầy đủ chức năng của nó và cấu hình thông qua một bộ phát triển phần mềm toàn diện (SDK), cho phép tích hợp mọi khía cạnh của VirtualBox với các hệ thống phần mềm khác
- Remote Machine Display: tính năng cho phép ta remote tới bất kỳ máy ảo nào Tính năng mày hỗ trợ Remote Desktop Protocol (RDP) ngoiaf ra nó còn hỗ trợ USB cho máy khách khi kết nối vào máy ảo
- Một số tính năng yêu cầu gói mở rọng VirtualBox (VirtualBOx Extention Pack):
Hỗ trợ điều khiển USB 2.0/3.0 ảo (EHCI/xHCI)
VirtualBox RDP: hỗ trợ giao thức kết nối từ xa độc quyền
Khởi động PXE cho các card của Intel
Mã hoá ảnh đĩa (disk image) VM
1.4 Các cơ chế ảo hoá của VirtualBox
1.4.1 Ảo hoá bằng phần cứng
- VirtualBox hỗ trợ cơ chế ảo hoá phần cứng:
Intel VT-x của Intel
AMD-V của AMD
- Sử dụng các cơ sở này, VirtualBox có thế chạy mỗi máy ảo khách trong không gian địa chỉ riêng của nó
- Nhân của hệ điều hành khách sẽ chạy dựa trên nhân của máy chủ (ring 0), thay vì chạy trên ring 1 (device drives)
- VirtualBox hỗ trợ một số hệ điều hành khách (bao gồm hệ điều hành 64 bit, hệ điều hành SMP – hệ điều hành đa xử lý đối xứng, và một số hệ điều hành độc quyền), trên các máy chủ có ảo hoá được hỗ trợ bởi phần cứng
Trang 81.4.2 Ảo hoá dựa trên phần mềm
- Trong trường hợp không có sự hỗ trợ ảo hoá phần cứng, VirtualBox sử dụng một phương pháp ảo hoá dựa trên phần mềm tiêu chuẩn,
- Chế độ này hỗ trợ các hệ điều hành khách 32 bit chạy trong ring 0 và ring 3 của kiến trúc vòng Intel
- Các bước thực hiện:
Hệ thống sẽ cấu hình lại mã điều hành khách, thường sẽ chạy trong vòng
0, để thực hiện trong vòng 1 trên phần cứng máy chủ Vì mã này chứa nhiều hướng dẫn đặc quyền không thể chạy nguyên bản trong vòng 1, VirtualBox sử dụng trình quét và phân tích mã (CSAM) để quét mã 0 vòng đệ quy trước khi thực thi đầu tiên để xác định hướng dẫn có vấn đề
và sau đó gọi trình quản lý bản bá (PATM) để thực hiện vá tại chỗ Điều này thay thế hướng dẫn bằng cách nhảy tới đoạn mã VM-safe, được biên dịch tương đương trong bộ nhớ hypervisior
Các đoạn mã trong chế độ user-mode mà được chạy trong ring 3 của hệ điều hành khách thường được chạy trực tiếp trên ring 3 của máy chủ
- Trong cả hai trường hợp, VirtualBox sử dụng CSAM và PATM để kiểm tra và sửa các lệnh vi phạm bất cứ khi nào xảy ra lỗi
- VirtualBox cũng chứa một trình biên dịch động, dựa trên QEMU để biên dịch lại bất kỳ chế độ thực hoặc mã chế độ bảo vệ hoàn toàn (ví dụ: mã BIOS, hệ điều hành DOS, hoặc bất kỳ quá trình khởi động hệ điều hành nào)
- Sử dụng những kỹ thuật này, VirtualBox có thể đạt được một hiệu suất tương đương với hiệu năng của Vmware
1.5 Lợi ích và hạn chế
1.5.1 Lợi ích
- Chạy nhiều hệ điều hành cùng lúc: các công nghệ ảo hóa của VirtualBox cho phép chúng ta chạy nhiều hệ điều hành cùng lúc và trên cùng một máy tính Có lẽ bạn
đã từng cài đặt và sử dụng song song các hệ điều hành với nhau, nhưng bạn chỉ boot được 1 trong số đó VirtualBox cho phép bạn khởi động 2 hoặc nhiều hệ điều hành trên máy tính của bạn Chẳng hạn bạn có thể boot và sử dụng nhiều phiên bản của Ubuntu, Windows, Mac OS X ngay trên Windows 7 của bạn
- Tìm hiểu về hệ điều hành: nhiều khi bạn muốn làm quen để sử dụng thành thạo các hệ điều hành nhưng lại lo lắng về lỗi và hỏng máy VirtualBox giúp bạn giải quyết vấn đề này, bạn có thể tìm hiểu về các hệ điều hành như Linux, Mac OS X và cài đặt các phần mềm tùy ý mà không sợ lỗi máy VirtualBox cũng cho phép bạn khôi phục máy ảo trong trường hợp nó bị lỗi bằng việc lưu lại snapshot, giống như bạn tạo
1 file ghost để ghost khi máy tính bị lỗi vậy
- Tiết kiệm và khai thác tối đa tài nguyên của máy tính: Hầu hết các máy tính
ngày nay chỉ sử dụng một phần nhỏ tài nguyên của phần cứng và điện năng nên điều
đó gây ra một sự lãng phí rất lớn Giả sử máy tính của bạn có sức mạnh để xử lý hai hệ điều hành trong một lúc Nhưng bạn lại đi mua một máy tính khác chỉ để sử dụng được
hệ điều hành đó Bạn nên cân nhắc cài hệ điều hành đó trên máy tính hiện có thông
Trang 9qua VirtualBox Điều này giúp bạn tiết kiệm một khoản chi phí khổng lồ trong việc mua máy tính mới
- Tiết kiệm thời gian và không gian: bạn hãy thử nghĩ rằng nếu bạn có hai máy tính và bạn muốn sử dụng chúng cùng một lúc Điều này là quá khó khăn để thao tác
và di chuyển trong khi bạn có thể chạy và làm việc trên cả hai hệ điều hành trên một máy tính với VirtualBox
1.5.2 Hạn chế
- VirtualBox có tốc độ truyền tải rất thấp từ và đến các thiết bị USB2.0
- Mặc dù là một sản phẩm nguồn mở, một số tính năng của nó chỉ có sẵn dưới dạng giấy phép thương mại
- Hỗ trợ EFI cho hệ thống khách bị hạn chế (chưa có hỗ trợ đầy đủ cho EFI hoặc hỗ trợ cho UEFI không có sẵn)
- Video RAM được giới hạn đến 128 MiB (256 MiB với 2D video Acceleration kích hoạt) do trục trặc kỹ thuật
- Thông thường, mỗi máy ảo chỉ dùng một tập tin để lưu tất cả những gì diễn ra trong máy ảo Do đó nếu bị mất tập tin này xem như mất tất cả
- Nếu máy tính có cấu hình phần cứng thấp nhưng cài quá nhiều chương trình, máy sẽ chậm và ảnh hưởng đến các chương trình khác
- Do tập trung vào một máy tính, nếu máy bị hư thì toàn bộ các máy tính ảo đã thiết lập trên nó cũng bị ảnh hưởng theo
- Ở góc độ bảo mật, nếu hacker nắm quyền điều khiển máy tính chứa các máy
ảo thì hacker có thể kiểm soát được tất cả các máy ảo trong nó
Trang 10CHƯƠNG 2 CÀI ĐẶT VIRTUALBOX
Có hai cách để cài đặt VirtualBox trên Linux:
- Thông qua gói VirtualBox dạng deb tải từ trang chủ
- Cài đặt trực tiếp trong Terminal bằng lệnh apy-get
2.1 Tải và cài đặt gói VirtualBox từ trang chủ
Các bước tiến hành như sau:
Bước 1: Xác định phiên bản Linux trên máy:
- Mở phần System Settings của hệ điều hành, chọn Details để hiển thị thông tin chi tiết của máy
- Ở đây máy tính sử dụng hệ điều hành Ubuntu 18.04 LTS, kiểu máy 64 bit Bước 2: Tải gói VirtualBox:
- Truy cập vào địa chỉ: http://download.virtualbox.org/virtualbox/5.2.22 để tải
về gói cài đặt VirtualBox phiên bản mới nhất (hiện tại là 5.2.22)
- Chọn gói tương thích với hệ điều hành:
Chọn các gói có dạng deb cho hệ điều hành nhân Linux
Chọn gói phù hợp với bản phân phối (Ubuntu hoặc Debian), đúng phiên bản đang sử dụng
Chọn i386 với máy 32 bit, amd64 với máy 64 bit
Với cấu hình máy như trên, ta chọn gói
virtualbox-5.2_5.2.22-126460~Ubuntu~xenial_amd64.deb
Bước 3: Cài đặt gói VirtualBox:
- Mở cửa sổ Terminal (phím tắt Ctrl+Alt+T)