# mount-disk-partition

### Xem danh sách disk

Để xem các ổ đĩa và phân vùng có trong máy Ubuntu Server, bạn có thể sử dụng một số lệnh sau:

1. Lệnh lsblk: Đây là lệnh đơn giản để liệt kê các ổ đĩa và phân vùng. Bạn có thể chạy lệnh này trong terminal:

   ```bash
   lsblk
   ```

   Kết quả sẽ cho bạn thông tin về các ổ đĩa (disk), phân vùng (partition), và điểm gắn kết (mount point).
2. Lệnh fdisk -l: Lệnh này giúp hiển thị thông tin chi tiết về các ổ đĩa và phân vùng trên hệ thống. Cần quyền root, vì vậy bạn phải sử dụng sudo:

   ```bash
   sudo fdisk -l
   ```
3. Lệnh df -h: Lệnh này hiển thị thông tin về dung lượng của các phân vùng đã được gắn kết. Tùy chọn -h giúp hiển thị kích thước theo định dạng dễ đọc (GB, MB, KB):

   ```bash
   df -h
   ```
4. Lệnh parted -l: Lệnh này cung cấp thông tin chi tiết về các phân vùng và ổ đĩa trong hệ thống. Cũng cần quyền root:

   ```bash
   sudo parted -l
   ```

### Mount Partition

#### 1. Kiểm tra các phân vùng trên ổ đĩa

Trước khi mount, bạn cần biết chính xác phân vùng mà bạn muốn mount. Dựa trên kết quả từ sudo `parted -l`, ổ đĩa /dev/nvme0n1 có 2 phân vùng:

* **/dev/nvme0n1p1** (524GB, NTFS)
* **/dev/nvme0n1p2** (476GB, NTFS)

Giả sử bạn muốn mount phân vùng **/dev/nvme0n1p1**.

#### 2. Tạo thư mục để mount

Trước khi mount phân vùng, bạn cần tạo một thư mục mà phân vùng sẽ được gắn vào (ví dụ: /mnt/d01).

```bash
sudo mkdir /mnt/d01
```

#### 3. Mount phân vùng vào thư mục

Giờ bạn có thể mount phân vùng vào thư mục vừa tạo. Ví dụ:

```bash
sudo mount /dev/nvme0n1p1 /mnt/d01
```

#### 4. Kiểm tra xem phân vùng đã được mount chưa

Bạn có thể kiểm tra xem phân vùng đã được mount thành công chưa bằng cách sử dụng lệnh `df -h` hoặc `lsblk`:

```bash
df -h
```

Hoặc:

```bash
lsblk
```

#### 5. Mount tự động khi khởi động lại (optional)

Nếu bạn muốn phân vùng được mount tự động mỗi khi hệ thống khởi động lại, bạn cần thêm thông tin vào file `/etc/fstab`.

1. Mở file `/etc/fstab` bằng trình soạn thảo văn bản:

   ```bash
   sudo nano /etc/fstab
   ```
2. Thêm dòng sau vào cuối file (đảm bảo thay `/dev/nvme0n1p1` và `/mnt/d01` nếu bạn sử dụng phân vùng hoặc thư mục khác):

   ```bash
   /dev/nvme0n1p1  /mnt/d01  ntfs  defaults  0  0
   ```
3. Lưu và thoát (nhấn Ctrl + X, sau đó nhấn Y để lưu và Enter để thoát).

#### 6. Kiểm tra lại fstab

Để đảm bảo rằng bạn không có lỗi trong file `/etc/fstab`, bạn có thể chạy lệnh kiểm tra:

```bash
sudo mount -a
```

Nếu không có thông báo lỗi, phân vùng đã được cấu hình mount tự động khi khởi động lại.

***

### Read and mount file `.vhdx` trên Ubuntu server

#### 1. Cài đặt các công cụ cần thiết:

Trước tiên, bạn cần cài đặt qemu-utils để hỗ trợ thao tác với file .vhdx.

```bash
sudo apt update
sudo apt install qemu-utils -y
```

#### 2. Mount file `.vhdx`:

Sau khi cài đặt xong, bạn có thể sử dụng `qemu-nbd` (Network Block Device) để mount file `.vhdx`.

* Bước 1: Kích hoạt module `nbd`.

  ```bash
  sudo modprobe nbd max_part=8
  ```
* Bước 2: Sử dụng qemu-nbd để kết nối file .vhdx với một thiết bị block.

  ```bash
  # Kết nối tệp VHDX "quyit.vhdx" vào thiết bị mạng block /dev/nbd0
  sudo qemu-nbd --connect=/dev/nbd0 /mnt/d02/devdrives/quyit.vhdx

  # Kết nối tệp VHDX "ltk1005.vhdx" vào thiết bị mạng block /dev/nbd1
  sudo qemu-nbd --connect=/dev/nbd1 /mnt/d02/devdrives/ltk1005.vhdx
  ```
* Bước 3: Kiểm tra các phân vùng trong .vhdx (nếu có):

  ```bash
  # Hiển thị thông tin phân vùng của thiết bị mạng block /dev/nbd0
  sudo fdisk -l /dev/nbd0

  # Hiển thị thông tin phân vùng của thiết bị mạng block /dev/nbd1
  sudo fdisk -l /dev/nbd1
  ```
* Bước 4: Mount phân vùng (ví dụ nếu phân vùng là /dev/nbd0p1):

  ```bash
  # Mount phân vùng thứ hai (p2) của thiết bị /dev/nbd0 vào thư mục /mnt/quyit
  sudo mount /dev/nbd0p2 /mnt/quyit

  # Mount phân vùng thứ hai (p2) của thiết bị /dev/nbd1 vào thư mục /mnt/ltk1005
  sudo mount /dev/nbd1p2 /mnt/ltk1005
  ```

Giờ bạn đã có thể truy cập nội dung của file `.vhdx` trong thư mục `/mnt`.

#### 3. Gỡ mount và ngắt kết nối:

Sau khi hoàn tất việc sử dụng file `.vhdx`, bạn có thể gỡ mount và ngắt kết nối như sau:

* Bước 1: Unmount phân vùng:

  ```bash
  # Hiển thị tất cả các phân vùng đang được mount, lọc kết quả để chỉ hiển thị những phân vùng liên quan đến /dev/nbd
  mount | grep /dev/nbd

  # Ngắt kết nối phân vùng đang được mount tại thư mục /mnt/quyit
  sudo umount /mnt/quyit

  # Ngắt kết nối phân vùng đang được mount tại thư mục /mnt/ltk1005
  sudo umount /mnt/ltk1005
  ```
* Bước 2: Ngắt kết nối nbd:

  ```bash
  # Ngắt kết nối tệp ảnh đĩa đã kết nối vào thiết bị mạng block /dev/nbd0
  sudo qemu-nbd --disconnect /dev/nbd0

  # Ngắt kết nối tệp ảnh đĩa đã kết nối vào thiết bị mạng block /dev/nbd1
  sudo qemu-nbd --disconnect /dev/nbd1
  ```

***
