Trước hết, nếu bạn muốn cài đặt Ubuntu được mã hóa trên đĩa cứng, thay thế mọi phân vùng và hệ điều hành hiện có, bạn có thể thực hiện việc này trực tiếp từ trình cài đặt đồ họa. Quá trình thủ công này chỉ cần thiết cho khởi động kép.
Câu trả lời này đã được thử nghiệm với Ubuntu 13.04.
Khởi động từ đĩa DVD hoặc USB trực tiếp của Ubuntu và chọn "Dùng thử Ubuntu".
Tạo hai phân vùng bằng GParted có trong đĩa trực tiếp. Phân vùng đầu tiên phải được định dạng và phải đủ lớn để root và trao đổi, trong ví dụ của tôi, đây là /dev/sda3
. Phân vùng thứ hai phải lớn vài trăm megabyte và được định dạng trong ext2 hoặc ext3, nó sẽ không được mã hóa và gắn vào /boot
(trong ví dụ của tôi là /dev/sda4
).
Trong ảnh chụp màn hình này, tôi có một bản cài đặt Ubuntu không được mã hóa hiện có trong hai phân vùng: /dev/sda1
và /dev/sda5
, tô sáng trong vòng tròn bên trái. Tôi đã tạo một phân vùng chưa được định dạng trong /dev/sda3
và một phân vùng ext3 /dev/sda4
, dành cho cài đặt Ubuntu được mã hóa, được chiếu trong vòng tròn bên phải:
Tạo một thùng chứa LUKS bằng các lệnh này. Thay thế /dev/sda3
bằng phân vùng chưa được định dạng được tạo trước đó và cryptcherries
bằng tên bạn chọn.
sudo cryptsetup luksFormat /dev/sda3
sudo cryptsetup luksOpen /dev/sda3 cryptcherries
Cảnh báo : Bạn sẽ nhận thấy rằng luksFormat
bước hoàn thành rất nhanh, vì nó không xóa an toàn thiết bị khối bên dưới. Trừ khi bạn chỉ đang thử nghiệm và không quan tâm đến bảo mật chống lại các loại tấn công pháp y khác nhau, điều quan trọng là phải khởi tạo đúng cách bộ chứa LUKS mới trước khi tạo các hệ thống tệp trong đó. Việc ghi các số 0 vào vùng chứa được ánh xạ sẽ khiến dữ liệu ngẫu nhiên mạnh được ghi vào thiết bị khối bên dưới. Việc này có thể mất một lúc, vì vậy tốt nhất là sử dụng pv
lệnh để theo dõi tiến trình:
### Only for older releases, e.g. not for 19.04, `pv` is not included in the repo must be added first
# sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) universe"
# sudo apt-get update
sudo apt-get install -y pv
sudo sh -c 'exec pv -tprebB 16m /dev/zero >"$1"' _ /dev/mapper/cryptcherries
hoặc, nếu bạn đang thực hiện cài đặt ngoại tuyến và không thể dễ dàng nhận được pv
:
sudo dd if=/dev/zero of=/dev/mapper/cryptcherries bs=16M
Bên trong thùng chứa LUKS được gắn, tạo một khối vật lý LVM, một nhóm âm lượng và hai khối hợp lý. Khối lượng logic đầu tiên sẽ được gắn vào /
và khối thứ hai sẽ được sử dụng làm trao đổi. vgcherries
là tên của nhóm âm lượng lvcherriesroot
và lvcherriesswap
là tên của các khối hợp lý, bạn có thể chọn nhóm của riêng mình.
sudo pvcreate /dev/mapper/cryptcherries
sudo vgcreate vgcherries /dev/mapper/cryptcherries
sudo lvcreate -n lvcherriesroot -L 7.5g vgcherries
sudo lvcreate -n lvcherriesswap -L 1g vgcherries
Tạo hệ thống tập tin cho hai khối hợp lý: (Bạn cũng có thể thực hiện bước này trực tiếp từ trình cài đặt.)
sudo mkfs.ext4 /dev/mapper/vgcherries-lvcherriesroot
sudo mkswap /dev/mapper/vgcherries-lvcherriesswap
Nếu không khởi động lại , hãy cài đặt Ubuntu bằng trình cài đặt đồ họa (lối tắt nằm trên màn hình nền trong Xubfox 18.04), chọn phân vùng thủ công. Gán /
đến /dev/mapper/vgcherries-lvcherriesroot
và /boot
để phân vùng được mã hóa tạo ở bước 2 (trong ví dụ này, /dev/sda4
).
Khi trình cài đặt đồ họa kết thúc, chọn "tiếp tục thử nghiệm" và mở một thiết bị đầu cuối.
Tìm UUID của các phân vùng LUKS ( /dev/sda3
trong trường hợp này), bạn sẽ cần nó sau:
$ sudo blkid /dev/sda3
/dev/sda3: UUID="8b80b3a7-6a33-4db3-87ce-7f126545c74af" TYPE="crypto_LUKS"
Gắn các thiết bị phù hợp vào các vị trí thích hợp /mnt
và chroot vào đó:
sudo mount /dev/mapper/vgcherries-lvcherriesroot /mnt
sudo mount /dev/sda4 /mnt/boot
sudo mount --bind /dev /mnt/dev
sudo chroot /mnt
> mount -t proc proc /proc
> mount -t sysfs sys /sys
> mount -t devpts devpts /dev/pts
Tạo một tệp có tên /etc/crypttab
trong môi trường chroot để chứa dòng này, thay thế giá trị UUID bằng UUID của phân vùng LUKS và vgcherries
bằng tên của nhóm âm lượng:
# <target name> <source device> <key file> <options>
cryptcherries UUID=8b80b3a7-6a33-4db3-87ce-7f126545c74af none luks,retry=1,lvm=vgcherries
Chạy lệnh sau trong môi trường chroot:
update-initramfs -k all -c
Khởi động lại và khởi động vào Ubuntu được mã hóa. Bạn nên được nhắc nhập mật khẩu.
Kiểm tra xem bạn đang sử dụng phân vùng được mã hóa /
bằng cách chạy mount
:
$ mount
/dev/mapper/vgcherries-lvcherriesroot on / type ext4 (rw,errors=remount-ro)
/dev/sda4 on /boot type ext3 (rw)
# rest of output cut for brevity
Kiểm tra xem bạn đang sử dụng phân vùng trao đổi được mã hóa (không phải bất kỳ phân vùng trao đổi không được mã hóa từ bất kỳ cài đặt nào khác) bằng cách chạy lệnh này:
$ swapon -s
Filename Type Size Used Priority
/dev/mapper/vgcherries-lvcherriesswap partition 630780 0 -1
Kiểm tra xem bạn có thể khởi động vào chế độ khôi phục không, bạn không muốn tìm hiểu sau trong trường hợp khẩn cấp mà chế độ khôi phục không hoạt động :)
Cài đặt bất kỳ bản cập nhật nào, có khả năng xây dựng lại ramdisk và cập nhật cấu hình grub. Khởi động lại và kiểm tra cả chế độ bình thường và chế độ phục hồi.