Tôi có thể tắt mã hóa toàn bộ đĩa không?


41

Gần đây tôi đã cài đặt Ubuntu 12.10 và nó yêu cầu một cụm mật khẩu để khởi động (tôi đã cài đặt nó với một hệ thống tệp được mã hóa).

Tôi có phải cài đặt lại để thay đổi thành một hệ thống tệp không được mã hóa tiêu chuẩn không?


Bạn đã mã hóa toàn bộ cài đặt Ubuntu, hay chỉ thư mục chính của bạn?
Flimm

Tôi đã mã hóa trong khi cài đặt, vì vậy tôi đoán toàn bộ cài đặt.
Zzealdor

3
Tôi là người dùng mới nên tôi không chắc chắn cách thức hoạt động của Linux (Hoàn toàn chán ngấy với Microsoft!)
Zzealdor

@Rinzwind Có lẽ là không. Phương thức này (ecryptfs) mã hóa thư mục chính và không cần thêm mật khẩu; mật khẩu đăng nhập được sử dụng.
Ngày

1
@ user163872: Các phiên bản Ubuntu mới (12 và 13) rất chậm trên các máy tính cũ như netbook. Bạn nên cài đặt Lubfox, được thiết kế cho tốc độ và chạy rất nhanh trên các máy tính cũ / chậm hơn, ngay cả với RAM thấp (tức là 512MB). Lubfox gần giống như Ubuntu bình thường - chỉ có máy tính để bàn / menu khác một chút. Nhưng mọi thứ hoạt động trên Ubuntu bình thường, nó cũng sẽ hoạt động trong Lubfox.
lara

Câu trả lời:


22

Nếu Ubuntu yêu cầu cụm mật khẩu mã hóa trong khi khởi động (tức là trên bảng điều khiển văn bản trước khi màn hình đăng nhập được hiển thị), điều này cho biết rằng phương pháp mã hóa toàn bộ đĩa đã được sử dụng. (Có nhiều hơn một cách để làm điều này, nhưng tôi sẽ giữ câu trả lời chung chung.) Mã hóa được xử lý bởi một lớp phần mềm bổ sung giữa hệ thống tệp và ổ cứng vật lý, chứ không phải chính hệ thống tệp.

Không có phương pháp hay công cụ đơn giản nào để hoàn tác việc này. Với một số kiến ​​thức về cách các hệ thống Linux hoạt động, nó có thể được thực hiện. Bạn sẽ phải di chuyển toàn bộ hệ thống tệp (hoặc tất cả các tệp) sang phân vùng khác (có đủ dung lượng trống) hoặc ổ cứng gắn ngoài. Sau đó, loại bỏ vùng chứa được mã hóa và tạo lại hệ thống tệp mà không cần mã hóa. Cuối cùng, hãy đảm bảo rằng hệ thống tệp mới được bộ tải khởi động nhận dạng đúng và mount -atrước khi khởi động lại.

Nếu có thể, tốt nhất nên tránh thủ tục tốn thời gian và dễ bị lỗi này. Chỉ cần làm một cài đặt mới. Đối với người dùng mới, đây là tùy chọn nhanh nhất và an toàn nhất.

PS: Rất có thể là bạn có thể thay đổi cụm mật khẩu mã hóa, có thể thành một chuỗi trống. Sau đó, giải mã chỉ yêu cầu nhấn Enter. Có lẽ bạn có thể đi xa hơn và thay thế dấu nhắc mật khẩu (bây giờ vô dụng). Tuy nhiên, điều này không vô hiệu hóa mã hóa. Dữ liệu vẫn sẽ được mã hóa mặc dù mã hóa sẽ vô dụng vì khóa có thể được đoán một cách tầm thường.


3
Về lý thuyết, bạn không thể làm một cái gì đó như "dd if = / dev / mapper / sda5_crypt of = / dev / sda5 bs = 32M"?
Roy

@Roy, tôi nghĩ rằng nó sẽ hoạt động nếu và chỉ khi những điều sau là đúng: 1. ddvà các trình điều khiển cơ bản không viết cho đến khi họ đọc xong từng khối (có thể có cờ và cài đặt để đảm bảo điều này) 2. đọc / ghi các khối không chồng lấp các cạnh của khối mã hóa (có thể được kiểm tra, có thể liên quan đến một số phép toán) 3. thông tin tiêu đề quan trọng cần thiết để giải mã không bị ghi đè trước khi hoàn thành (kiểm tra định dạng mã hóa cơ bản, có thể xử lý từ đầu đến cuối). Tôi nghĩ rằng nó có thể nhưng sẽ cần một thiết lập và phân tích cẩn thận hơn.
fuzzyTew

20

Dưới đây là giải pháp của tôi đã làm việc. Hãy nhớ rằng tôi không phải là chuyên gia Linux, vì vậy nó có thể không phải là giải pháp tốt nhất. Không thể tìm thấy một cái tốt hơn dù sao.

Di chuyển cài đặt FDE sang phân vùng không được mã hóa

LƯU Ý : Bất cứ khi nào tôi nói, ý tôi là

/dev/sda1 - boot partition
/dev/sda5 - encrypted partition
/dev/sda3 - clean non-encrypted EXT4 partition
/dev/sda2 - my newly created swap partition

Sao chép dữ liệu từ hệ thống tập tin gốc được mã hóa

Khởi động từ đĩa CD trực tiếp. Tôi đã sử dụng ISO máy tính để bàn Ubuntu 13.10 32 bit.

Gắn kết phân vùng của bạn:

sudo cryptsetup luksOpen /dev/sda5 crypt1

Sao chép dữ liệu nguồn của bạn vào phân vùng đích và lưu dd PID vào biến pid:

sudo dd if=/dev/ubuntu-vg/root of=/dev/sda3 bs=1M & pid=$!

Điều này sẽ ping mỗi tiến trình dd thứ hai với tín hiệu USR1 và trạng thái kết quả dd:

while sudo kill -USR $pid; do sleep 1; done

Thay thế để theo dõi DD

Nếu bạn không thích ở trên 'phương thức while', bạn có thể sử dụng đồng hồ. Mở cửa sổ đầu cuối khác nhau và nhận được PID:

pgrep -l '^dd$' | awk '{ print $1 }'

Thay thế bằng ID tiến trình của bạn:

watch kill -USR1 <pid>

Bạn sẽ thấy đầu ra trong thiết bị đầu cuối dd của bạn mỗi 2 giây.

Cấu hình hệ thống tập tin gốc và phân vùng

Khi hoàn tất, bạn có thể gắn phân vùng không mã hóa của mình để xem có ổn không:

sudo mount /dev/sda3 /mnt

Sau đó ngắt kết nối phân vùng của bạn:

sudo umount /dev/sda3

Phát hành phân vùng mật mã:

sudo cryptsetup luksClose /dev/sda5

Chạy gparted. Xóa phân vùng LUKS của bạn (cả mở rộng và logic). Thay đổi kích thước / dev / sda3 của bạn và di chuyển sang trái. Tạo phân vùng trao đổi.

Lưu ý: Di chuyển / dev / sda3 sang trái có thể mất nhiều thời gian. Đối với tôi, nó mất 30 phút trên phân vùng 120GB và ổ SSD. Nếu bạn có 500GB + ổ cứng, hãy chuẩn bị trong vài giờ chờ đợi. Bạn có thể muốn tạo trao đổi trước phân vùng của mình thay vì di chuyển / dev / sda3.

Tạo một hệ thống tập tin trao đổi mới trên phân vùng trao đổi của bạn:

sudo mkswap /dev/sda2 

và lưu trữ ở đâu đó UUID.

Nhận phân vùng gốc của bạn UUID:

sudo blkid /dev/sda3

Chỉnh sửa fstab:

sudo nano /etc/fstab

Xóa hoặc nhận xét các dòng overlayfs và tmpfs.

Thêm dòng thay thế bằng kết quả blkid:

UUID=<uuid_root> /  ext4 errors=remount-ro 0 1
UUID=<uuid_swap> none swap sw 0 0

Xóa tệp:

rm /etc/crypttab

Cập nhật initramfs của bạn để tránh các lỗi như "cryptsetup: evms_activate không khả dụng":

sudo -i
mount /dev/sda3 /mnt
mount -t proc none /mnt/proc
mount -o bind /sys /mnt/sys
mount -o bind /dev /mnt/dev
mount /dev/sda1 /mnt/boot
chroot /mnt /bin/bash
apt-get remove --purge cryptsetup
update-initramfs -u -k all

Ghi chú cuối cùng và xử lý sự cố

Nó làm việc cho tôi, tuy nhiên có khả năng làm từng bước trên có thể không hiệu quả với bạn. Trước khi tôi tìm ra phương pháp update-initramfs, tôi đã cài đặt lại kernel vài lần cũng là sửa đổi grub. Tuy nhiên nó không phải là một trường hợp cho bạn. Hãy nhớ rằng các hướng dẫn ở trên có thể xóa dữ liệu của bạn, vì vậy hãy cẩn thận và thực hiện BACKUP , TRƯỚC KHI tiến hành điều đó.

Chỉ trong trường hợp bạn gặp rắc rối với kernel (chroote và / boot mount):

uname -r
sudo apt-get install --reinstall linux-image-3.X.Y-ZZ-generic

Tất nhiên thay thế linux-image-3.XY-ZZ bằng ngày kernel của bạn từ uname.

hoặc GRUB (bên ngoài chroot):

sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
sudo apt-get install -y boot-repair && (boot-repair &)

Thêm chi tiết: https://help.ubfox.com/community/Boot-Repair

Chúc may mắn


1
Tôi tin rằng bạn phải thay thế UUID của phân vùng trao đổi /etc/initramfs-tools/conf.d/resumetheo cách thủ công và tôi khuyên bạn nên sao chép nội dung hệ thống tệp bằng cp -ahoặc rsync -anói chung sẽ nhanh hơn và an toàn hơn cho SSD.
LiveWireBT

Cảm ơn đã làm cho công phu của tôi thân thiện hơn với người dùng. Tôi đã không thực hiện thay đổi tiếp tục, cũng sợ sử dụng cp hoặc rsync, nghĩ rằng dd (bản sao thô từ thiết bị này sang thiết bị khác) là công cụ thích hợp cho các tác vụ như vậy. Tôi đã làm điều đó trên VM, nhưng hình ảnh được đặt trên SSD. Bạn có thể giải thích: "an toàn hơn cho SSD" không?
NeverEinatingQueue 30/1/14

Sử dụng các ddbản sao toàn bộ phân vùng, ngay cả các khối nên trống, điều này gây ra việc ghi không cần thiết vào SSD (và trên một số, nó thậm chí còn gây hại cho việc ghi hiệu suất cho hầu hết các ô). Vài năm trước tôi và một số người khác cũng phát hiện ra rằng việc sao chép ddvà kích hoạt TRIM (tùy chọn loại bỏ EXT4) sẽ khiến TRIM xóa các khối mà nó cho là trống và khiến bạn bị cài đặt bị hỏng sau vài giờ.
LiveWireBT

Trong phương pháp giám sát đầu tiên nên là USR1 thay vì USR. Tôi biết điều đó là hiển nhiên, nhưng có thể là một vấn đề đối với những người mới như tôi;)
goodfellow

9

Trong trường hợp vẫn ổn để giữ mã hóa, nhưng để tắt lời nhắc mật khẩu, một cách tiếp cận đơn giản hơn nhiều là chỉ cần đặt mật khẩu tầm thường như "mật khẩu" và sau đó lưu mật khẩu tầm thường đó trong initramfs trong phần văn bản rõ ràng. Vô hiệu hóa mật khẩu mã hóa LUKS .

Về cơ bản, thêm một tập lệnh hook mà lần lượt thêm một "keycript" vào initramfs. Thông thường các tập lệnh này được sử dụng để lấy mật khẩu qua Bletooth, từ thẻ nhớ USB, v.v., nhưng trong trường hợp này, chỉ cần làm cho nó in mật khẩu tầm thường.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.