Trả lời nhanh
Làm thế nào để mount và format đĩa storage trên Linux VPS?
Để mount và format đĩa storage trên Linux VPS, hãy tìm nó bằng lsblk, tạo một partition GPT, format thành ext4 hoặc XFS, tùy chọn bên trong LUKS, và mount từ /etc/fstab theo UUID với nofail, để một đĩa bị thiếu không bao giờ chặn boot. Các bước áp dụng cho mọi KVM storage VPS, bao gồm các gói Coffervale từ 1 TB với $1.66 một tháng khi trả 12 tháng (2 November 2026).
Các bước là gì?
Xác định đĩa trống
lsblkhiển thị mọi đĩa; đĩa storage không có partition nào và không có mount point.Tạo một partition GPT
partedghi một nhãn GPT và một partition trải khắp toàn bộ đĩa.Mã hóa nó (tùy chọn)
cryptsetup luksFormatvàcryptsetup open, sau đó sao lưu LUKS header ra khỏi server.Tạo filesystem
mkfs.ext4 -m 1hoặcmkfs.xfs, với một nhãn bạn sẽ dễ nhận ra.Mount theo UUID với nofail
Một dòng trong
/etc/fstab, sau đómountvàfindmntđể xác nhận.
Đĩa nào là đĩa storage?
Chạy lsblk: đĩa storage là đĩa lớn không có partition, không có filesystem và không có mount point. Storage VPS có hai cách bố trí, một đĩa hệ thống nhỏ cộng một đĩa dữ liệu lớn, hoặc một đĩa lớn duy nhất. Theo khảo sát của Coffervale trên 2 November 2026, 6 trong số 18 nhà bán storage VPS chấp nhận crypto không cần giấy tờ tùy thân nêu trên trang của họ rằng storage được cấp dưới dạng một đĩa hoặc block device riêng; 12 nhà còn lại mô tả một đĩa duy nhất hoặc không nói rõ. Hãy kiểm tra đĩa của bạn trước khi gõ bất cứ lệnh nào có thể gây mất dữ liệu.
Trên KVM, đĩa virtio được đặt tên vda, vdb v.v., còn đĩa virtio-SCSI là sda, sdb. Dung lượng hiển thị theo đơn vị nhị phân, nên đĩa 1 TB đọc ra khoảng 931G. Nếu lsblk chỉ liệt kê một đĩa và / đã trải hết dung lượng của nó, thì không có gì để format: tạo một thư mục như /srv/data và chuyển sang phần về lựa chọn mã hóa ở cuối.
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS
# Use the empty disk from the list above; this example assumes /dev/vdb
DISK=/dev/vdb
PART=/dev/vdb1Tôi nên chia partition cho đĩa storage hay format toàn bộ đĩa?
Tạo một partition GPT trải khắp đĩa. Ghi filesystem thẳng lên device trần cũng hoạt động, nhưng một partition table cho mọi công cụ và mọi admin xem sau này biết rằng đĩa đang được dùng, và parted căn chỉnh partition giúp bạn. Ảnh cloud của Debian và Ubuntu không phải lúc nào cũng có sẵn parted, nên hãy cài nó trước (dnf install parted trên AlmaLinux hoặc Rocky Linux, và tương tự cho cryptsetup bên dưới).
apt install parted
parted -s -a optimal "$DISK" mklabel gpt mkpart data 0% 100%
partprobe "$DISK"
lsblk "$DISK"Tôi có nên mã hóa đĩa storage bằng LUKS không?
Hãy mã hóa nếu có bất cứ thứ gì trên VPS sẽ lưu file dạng plain: chạy cryptsetup luksFormat trên partition, mở nó dưới một tên, và tạo filesystem trên device đã mở. LUKS2 là định dạng mặc định. Giữ ổ đĩa hệ thống không mã hóa và ổ đĩa dữ liệu dưới LUKS: sau khi khởi động lại, đăng nhập qua SSH và mở khóa ổ đĩa dữ liệu bằng cụm mật khẩu của bạn. Về mặt kỹ thuật, bất kỳ ai vận hành hypervisor cũng có thể đọc ổ đĩa ảo không mã hóa, ở bất kỳ nhà cung cấp VPS nào. Chúng tôi không mở tệp của bạn, và dữ liệu bạn mã hóa trước khi rời khỏi máy sẽ loại bỏ câu hỏi đó.
Sao lưu LUKS header và chuyển bản sao ra khỏi server: nếu header bị hỏng, dữ liệu phía sau coi như mất. Hướng dẫn của cryptsetup có thêm một cảnh báo đáng đọc hai lần: một bản sao lưu header cộng với một passphrase còn hiệu lực tại thời điểm bạn tạo bản sao sẽ giải mã được đĩa ngay cả sau khi passphrase đó bị đổi hoặc gỡ bỏ. Hãy đối xử với file sao lưu như chính passphrase.
apt install cryptsetup
cryptsetup luksFormat "$PART"
cryptsetup open "$PART" coffer
cryptsetup luksHeaderBackup "$PART" --header-backup-file /root/coffer-luks-header.img
# copy /root/coffer-luks-header.img to your own machine, then delete it hereĐĩa storage nên dùng ext4 hay XFS?
Hãy dùng ext4 trừ khi bạn có lý do để không dùng; đây là định dạng duy nhất trong hai loại có thể shrink. Cả hai đều xử lý kho sao lưu nhiều terabyte và đồng bộ file mà không gặp trục trặc, và cả hai đều có thể grow khi đang mount khi đĩa trở nên lớn hơn. Những khác biệt quan trọng trên một storage VPS:
| Thuộc tính | ext4 | XFS |
|---|---|---|
| Tăng kích thước khi đang mount | Có, resize2fs | Có, xfs_growfs (phải được mount) |
| Giảm kích thước | Có, khi chưa mount, với resize2fs | Gần như không: chỉ nhóm cấp phát cuối cùng bị thu nhỏ, và không thể gỡ bỏ nó |
| Dung lượng giữ lại cho root | 5% mặc định; -m 1 giữ 1% | Không có phần giữ lại như vậy |
| Độ dài nhãn | Tối đa 16 byte | Tối đa 12 ký tự |
Trên một đĩa dữ liệu 1 TB, phần giữ lại mặc định của ext4 chiếm 50 GB mà chỉ root mới dùng được. Với đĩa lưu bản sao lưu hoặc dữ liệu đồng bộ, 1% là đủ, vì hệ điều hành không nằm ở đó. Định dạng phân vùng, hoặc thiết bị LUKS đã mở nếu bạn đã mã hóa nó:
# The device to format: the partition, or the opened LUKS device
DEV="$PART" # with LUKS: DEV=/dev/mapper/coffer
mkfs.ext4 -m 1 -L coffer "$DEV"
# or: mkfs.xfs -L coffer "$DEV"Làm sao để mount đĩa khi khởi động với fstab, UUID và nofail?
Thêm một dòng /etc/fstab nêu tên hệ thống tệp theo UUID và mang theo nofail. Hướng dẫn của fstab khuyến nghị dùng UUID hoặc nhãn vì tên thiết bị theo thứ tự phát hiện đĩa và có thể thay đổi khi thêm hoặc gỡ đĩa. Với nofail, tài liệu của systemd cho biết quá trình khởi động tiếp tục mà không chờ mount và bất kể mount thành công hay không, nên một đĩa bị tháo hoặc bị khóa không thể khiến một server từ xa kẹt ở dấu nhắc khẩn cấp mà bạn không thể truy cập.
Một đĩa được mã hóa cũng cần thêm noauto: nó không thể được mount trước khi bạn mở khóa qua SSH, nên quá trình khởi động không nên thử. Đoạn script nhỏ dưới đây mở nó theo UUID LUKS và mount trong một bước.
mkdir -p /srv/data
UUID=$(blkid -s UUID -o value "$PART")
echo "UUID=$UUID /srv/data ext4 defaults,nofail 0 2" >> /etc/fstab
systemctl daemon-reload
mount /srv/data
findmnt /srv/datamkdir -p /srv/data
FSUUID=$(blkid -s UUID -o value /dev/mapper/coffer)
LUKSUUID=$(blkid -s UUID -o value "$PART")
echo "UUID=$FSUUID /srv/data ext4 noauto,nofail 0 0" >> /etc/fstab
systemctl daemon-reload
cat > /usr/local/sbin/unlock-data <<EOF
#!/bin/sh
cryptsetup open /dev/disk/by-uuid/$LUKSUUID coffer && mount /srv/data
EOF
chmod 700 /usr/local/sbin/unlock-data
# after each reboot, over SSH:
/usr/local/sbin/unlock-dataNếu tôi không muốn mã hóa đĩa trên server thì sao?
Thay vào đó hãy mã hóa ở phía client, cách này hoạt động trên mọi bố cục, kể cả đĩa đơn. Borg, restic và chế độ thiết bị không tin cậy của Syncthing đều mã hóa trước khi dữ liệu đến VPS, nên server lưu bản mã dù có hay không có LUKS. KVM cho máy chủ của bạn nhân riêng, nên bạn có thể đặt LUKS trên ổ đĩa dữ liệu hoặc chạy ZFS với mã hóa gốc, và khóa không bao giờ rời khỏi bạn. Để sao lưu, hãy mã hóa trên máy của bạn trước khi tải lên (Borg, restic và Kopia đều làm được), để máy chủ chỉ lưu bản mã hóa. Mã hóa đĩa vẫn có giá trị khi VPS chạy phần mềm cần tệp dạng thuần, như Nextcloud. Bước tiếp theo: Làm sao để dùng VPS cho sao lưu ngoài site?, Làm sao để thiết lập server sao lưu Borg trên VPS? và VPS nào tốt nhất cho Nextcloud với 1 TB dung lượng trở lên?. Nếu sau này bạn cần đĩa lớn hơn, Để mở rộng, hãy đặt gói lớn hơn và sao chép dữ liệu sang bằng rsync hoặc zfs send; không cung cấp việc thay đổi kích thước máy chủ đang chạy tại chỗ khi ra mắt; các gói có sẵn trên Tôi có thể lấy VPS 1 TB dung lượng ở đâu?.
Câu hỏi về việc mount đĩa lưu trữ
Tại sao đĩa 1 TB của tôi hiển thị là 931G?
Dung lượng đĩa được bán theo terabyte thập phân, trong khi lsblk và df in ra đơn vị nhị phân. 1.000.000.000.000 byte là khoảng 931 GiB: cùng số byte, khác đơn vị.
Điều gì xảy ra nếu tôi quên nofail và đĩa bị thiếu khi khởi động?
systemd coi việc mount là bắt buộc đối với các hệ thống tệp cục bộ, nên quá trình khởi động có thể dừng ở một shell khẩn cấp. Trên một VPS không có console mà bạn truy cập được, điều đó đồng nghĩa với một yêu cầu hỗ trợ. Với nofail, server khởi động và bạn sửa mount qua SSH.
Tôi có cần mở khóa đĩa LUKS sau mỗi lần khởi động lại không?
Có, với thiết lập ở trên: đăng nhập qua SSH và chạy script mở khóa. Đĩa hệ thống vẫn không mã hóa để server luôn khởi động và SSH luôn phản hồi.
Tôi nên dùng ext4 hay XFS cho kho Borg hoặc restic?
Cả hai đều được. ext4 có thể được thu nhỏ sau này và cho phép bạn cắt phần giữ lại cho root bằng -m; XFS không thể thu nhỏ trừ một trường hợp hẹp. Khi chưa chắc, hãy chọn ext4.
Làm sao để kiểm tra đĩa được mount đúng chỗ tôi mong đợi?
findmnt /srv/data in ra thiết bị, hệ thống tệp và các tùy chọn của điểm mount đó, còn df -h /srv/data hiển thị dung lượng và không gian trống. Nếu một trong hai hiển thị hệ thống tệp root, thì đĩa chưa được mount và dữ liệu đang rơi vào đĩa hệ thống.
Nguồn (8)
- lsblk(8): liệt kê các block device — Linux man-pages project (read 2026-11-02)
- fstab(5): UUID và LABEL, nofail, thứ tự fsck — Linux man-pages project (read 2026-11-02)
- systemd.mount(5): nofail và noauto trong fstab — systemd project (read 2026-11-02)
- mke2fs(8): -m reserved blocks (mặc định 5%), -L label — Linux man-pages project (read 2026-11-02)
- resize2fs(8): tăng và giảm kích thước ext4 — Linux man-pages project (read 2026-11-02)
- xfs_growfs(8): tăng kích thước XFS, giới hạn việc thu nhỏ — Linux man-pages project (read 2026-11-02)
- cryptsetup-luksFormat(8): mặc định LUKS2 — cryptsetup project (read 2026-11-02)
- cryptsetup-luksHeaderBackup(8): sao lưu header và rủi ro đi kèm — cryptsetup project (read 2026-11-02)