Cảnh báo: Tôi đã triển khai giải pháp này và nó hoạt động, nhưng thời gian hợp nhất để quay lại ảnh chụp nhanh có thể khiến quá trình khởi động mất nhiều thời gian nếu các thay đổi lớn được thực hiện cho hệ thống trong lần khởi động cuối cùng. Trong thời gian chờ đợi này, hệ thống có thể bị treo!
Cũng cần lưu ý rằng bất kỳ ai có đủ kiến thức để gắn ảnh chụp nhanh đều có thể thay đổi trạng thái "đóng băng". Tôi đã tận dụng khả năng này để cập nhật các hệ thống "đóng băng", nhưng một lần nữa, điều này cũng có thể làm tăng thời gian cần thiết để hợp nhất (hoàn nguyên) ảnh chụp nhanh!
Ảnh chụp nhanh LVM + cron + script = trạng thái "đóng băng"
Gần đây tôi đã bắt đầu đào sâu vào LVM và tôi nhận thấy rằng người ta có thể tạo trạng thái "đóng băng" một cách khả thi trên máy bằng LVM và đó là khả năng chụp nhanh. Tất nhiên, phương pháp này yêu cầu một hệ thống được cấu hình bằng LVM (hoặc ít nhất LVM trên các phân vùng sẽ được đóng băng).
Tóm lược:
- Cài đặt hệ thống trên các phân vùng LVM dự trữ đủ không gian trên PV để chụp nhanh
- Nhận hệ thống được cấu hình theo cách bạn muốn.
- Tạo một công việc định kỳ chạy bằng root khi khởi động để hợp nhất ảnh chụp nhanh và tạo một ảnh chụp nhanh mới để thay thế công việc đã hợp nhất
- Tất cả các lần khởi động lại liên tiếp trở lại ảnh chụp nhanh. Tất cả các ảnh chụp nhanh được tạo ra được lấy từ hệ thống ở trạng thái bạn đã tạo.
- Là một phần thưởng bổ sung, ảnh chụp nhanh có thể được gắn kết và sửa đổi (miễn là bạn có quyền root) và trạng thái "đóng băng" có thể được cập nhật nếu cần.
Bằng chứng về khái niệm: Đóng băng mọi thứ trừ một phân vùng từ bản cài đặt sạch
Cài đặt:
- Khởi động từ đĩa / USB Ubuntu trực tiếp và chọn tùy chọn "Dùng thử Ubuntu mà không cần cài đặt." Điều này rất quan trọng để cấu hình thủ công các phân vùng với LVM
- Khi Ubuntu tải phân vùng đĩa của bạn bằng công cụ bạn chọn để nó có một phân vùng chiếm toàn bộ không gian của ổ đĩa. Đây là những gì tôi đang làm việc với:
- Tiếp theo trong một thiết bị đầu cuối thiết lập LVM trên
/dev/sda1. Tôi sẽ đặt hầu hết hệ thống trên một phân vùng duy nhất, nhưng bạn sẽ không phải làm vậy.
sudo pvcreate /dev/sda1
sudo vgcreate ubuntu-vg /dev/sda1
sudo lvcreate -n swap -L 1G ubuntu-vg
sudo lvcreate -n unfrozen -L 10G ubuntu-vg
sudo lvcreate -n root -l +50%free ubuntu-vg
- Bây giờ nếu bạn chạy
sudo vgstheo sau, sudo lvsbạn sẽ có thể thấy rằng dung lượng trống còn lại trong nhóm âm lượng "ub Ubuntu-vg" (VFree dưới đầu ra vss) bằng với dung lượng được lấy bởi gốc "khối lượng logic" "(LSize dưới đầu ra lvs). Trong trường hợp của tôi, tôi có 506,44g miễn phí trong ubfox-vg và phân vùng gốc của tôi là 506,44g lớn. Nếu không gian trống còn lại trong nhóm âm lượng bằng với kích thước của phân vùng tôi muốn đóng băng, tôi sẽ có thể xóa sạch toàn bộ phân vùng và vẫn có thể phục hồi khi khởi động lại. Để lại phần còn lại của không gian trống trong ubfox-vg hiện chưa được sử dụng. Chúng tôi sẽ sử dụng nó sau.
- Bây giờ cài đặt Ubuntu bằng cách sử dụng phân vùng thủ công

- Khi cài đặt xong, hãy tiếp tục và khởi động lại vào hệ thống mới được cài đặt.
- Sau khi khởi động vào hệ thống mới của bạn, hãy định cấu hình nó sao cho chính xác theo cách bạn muốn khi máy tính khởi động mỗi lần.
- Nếu bạn không vô tình thay đổi ảnh chụp nhanh và bạn không muốn phân vùng ảnh chụp nhanh hiển thị trên thanh menu ...
mkdir /steady
- Chỉnh sửa
/etc/fstabbằng cách thêm (đây là tất cả một dòng) /dev/ubuntu-vg/steadystate /steady ext4 defaults,ro,nofail 0 1làm dòng cuối cùng của tệp
- Vì những thứ như cập nhật sẽ bị thổi bay với mỗi lần khởi động lại, bạn có thể muốn tắt chúng đi.
- Nếu bạn có một phân vùng không đóng băng như của tôi tại / không đóng băng, đừng quên làm cho nó có thể truy cập được đối với những người dùng cần truy cập vào nó
- Khi bạn đã cấu hình hệ thống chính xác theo cách bạn muốn, hãy tạo tập lệnh sau (bạn sẽ cần quyền root) và lưu như
/root/steadystate.shvới trình chỉnh sửa yêu thích của bạn. Lưu ý rằng nếu bạn đã thay đổi tên nhóm âm lượng khi thiết lập LVM, bạn cũng cần cập nhật tên trong tập lệnh bên dưới.
#!/bin/bash
LOG=/dev/kmsg
# wait for merge in progress
echo -n "Reverting to snapshot if present... " | tee -a $LOG
merging=1
while [ "$merging" == "1" ];
do
/usr/sbin/service lightdm stop #prevent the auto-login/login screen from loading
[ "$(sudo lvs -a | grep steadystate)" == "" ] && merging=0
sleep 1
done
# create snapshot
echo -n "Creating new snapshot... " | tee -a $LOG
/sbin/lvcreate -s -n steadystate -l +100%free /dev/ubuntu-vg/root
# make sure root comes online before trying to merge
while [ ! -e /dev/mapper/ubuntu--vg-root];
do
sleep .5;
done
echo -n "Scheduling reset to snapshot... " | tee -a $LOG
/sbin/lvconvert --merge /dev/ubuntu-vg/steadystate
echo -n "Starting lightdm... " | tee -a $LOG
/usr/sbin/service lightdm start
- Cuối cùng chạy
sudo crontab -e, chọn một trình soạn thảo và đặt @reboot /bin/bash /root/steadystate.shở cuối tập tin. Lưu và đóng ( Ctrl+ X; trả lời Yđể lưu)
- Khởi động lại và bạn nên có một hệ thống bị đóng băng ngoại trừ phân vùng được gắn tại / không đóng băng
Điều này hoạt động vì ảnh chụp nhanh được tạo khi khởi động và mặc dù chúng tôi đã truyền lệnh để hợp nhất ảnh chụp ngay sau đó, ảnh chụp nhanh không thể được hợp nhất trong khi khối lượng logic cho root được kích hoạt. Do đó, nó hoãn lại hành động hợp nhất cho đến lần tiếp theo / dev / ubfox-vg / root được kích hoạt ở lần khởi động lại tiếp theo. Hành động này cũng sẽ được kích hoạt nếu hệ thống được khởi động từ USB trực tiếp.
Chỉ vì những cú đá, tôi đã vào sau khi khởi động lại và chạy sudo apt remove --purge firefox* libreoffice-* unity*mà tôi thường không khuyên làm vì nó loại bỏ một số chương trình hữu ích và đưa hệ thống vào trạng thái có thể ít hơn mong muốn!
Hệ thống thậm chí sẽ không tắt đúng cách từ GUI. Vì vậy, làm thế nào để khắc phục điều này? Khởi động lại!
Khi khởi động lại, mọi thứ đã trở lại theo thứ tự. Firefox, LibreOffice và Unity đều quay trở lại nơi họ thuộc về.
Tôi cũng đã thử gỡ bỏ linux *. Điều này khiến máy anh không thể khởi động, tuy nhiên, chỉ cần khởi động từ đĩa Ubuntu trực tiếp dường như khiến việc hợp nhất diễn ra. Khởi động lại một lần nữa khiến hệ thống ở trạng thái "đóng băng"
Nếu bạn muốn có thể thực hiện các thay đổi, bạn có thể (gắn lại) ảnh chụp nhanh với các đặc quyền rw và sau đó chroot với nó và thực hiện bất kỳ thay đổi nào bạn muốn duy trì vĩnh viễn. Điều này không hoàn hảo, nhưng nó là một bằng chứng về khái niệm.