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?
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?
Câu trả lời:
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 -a
trướ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.
dd
và 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.
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.
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
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
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.
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
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
/etc/initramfs-tools/conf.d/resume
theo 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 -a
hoặc rsync -a
nói chung sẽ nhanh hơn và an toàn hơn cho SSD.
dd
bả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 dd
và 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ờ.
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.