Điểm:0

Tập lệnh initramfs-tools để gắn thư mục nén trên tmpfs

lá cờ ug

Tôi đang cố gắng tạo một phân vùng cứu hộ nhỏ (~800 MB dung lượng trống sau tất cả các phân vùng lưu trữ và hệ thống khác) cho một máy tính xách tay có phần cứng chuyên dụng yêu cầu các mô-đun hạt nhân và nhân đặc biệt, chẳng hạn như các công cụ cứu hộ như Clonezilla Live và GParted Live không có' t làm việc rất tốt. Phân vùng quá nhỏ để bao gồm các mô-đun và phần mềm cần thiết cho những gì tôi muốn xây dựng, vì vậy phần lớn hệ thống cần được nén và tải vào RAM khi chạy. Ngoài ra, tôi muốn hệ thống được giải nén hoàn toàn thay vì dựa vào bí đaovà tôi muốn khả năng lưu các thay đổi được thực hiện cho hệ thống nhiều nhất có thể mà phân vùng cho phép. Sử dụng Ubuntu 20.04 làm hệ thống cơ sở, tôi đã nghĩ ra sơ đồ sau cho mục đích này:

  1. Sau khi xây dựng hệ thống ban đầu trong chroot, tạo và làm trống thư mục /đập làm điểm gắn kết cho tmpfs để chứa các tệp người dùng và hệ thống đã giải nén trong thời gian chạy, hãy di chuyển tất cả các thư mục tệp hệ thống và người dùng (Trang Chủ,sử dụng,var,opt,vân vân, vân vân.) vào trong /đập và thay thế từng cái bằng một liên kết tượng trưng đến /ram/$dir. Nén /đập như/ram.tar.gz và để lại các điểm gắn kết đặc biệt (nhà phát triển, hệ thống ,chạy ,tmp, và thủ tục) cũng như khởi động một mình trên rootfs. Xóa bỏ /đập/* và viết rootfs lên phân vùng.
  2. Khi khởi động, sau kernel và ban đầu được tải, cài đặt trước rootfs, gắn kết tmpfs trên /đập, sau đó trích xuất nội dung của /ram.tar.gz vào trong /đập. Điều này phải xảy ra trước rootfs thay thế initramfs với quyền root vì nếu không thì rootfs không thể truy cập các tiện ích cần thiết để gắn kết /đập và giải nén từ kho lưu trữ nén.
  3. núi rootfs và tiến hành khởi động.
  4. Khi tắt máy, sao lưu /ram.tar.gz như /ram.tar.gz.bak sau đó nén sửa đổi /đập vào trong /ram.tar.gz. Điều này có thể đạt được bằng cách sử dụng hệ thống.

Rõ ràng mọi thứ có thể sai ở bước 4 và do đó bước 2 cần bao gồm tính toàn vẹn của /ram.tar.gz và tải bản sao lưu nếu thất bại, nhưng đây chỉ là một vài lệnh bổ sung để đưa vào công cụ initramfs kịch bản và ngoài phạm vi câu hỏi của tôi, đó là:

Không thay đổi /usr/share/initramfs-tools/init, làm cách nào để tạo tập lệnh trong /etc/initramfs-tools/scripts để hoàn thành bước 2? Các lệnh phải đủ dễ dàng như

mount -t tmpfs -o $OPTIONS không /ram
tar xvzf ram.tar.gz

Nhưng tôi hơi băn khoăn không biết thư mục nào sẽ bao gồm tập lệnh (init? local? top? bottom? premount?) và cách làm việc với YÊU CẦU TRƯỚC tiêu đề trong chính tập lệnh.

Điểm:0
lá cờ ug

Nó hóa ra là khá đơn giản. Tạo ra:

/etc/initramfs-tools/scripts/local-bottom/ramfiles
#!/bin/sh

đặt -e

PREREQ=""

điều kiện tiên quyết()
{
        tiếng vang "${PREREQ}"
}

trường hợp "${1}" trong
        điều kiện tiên quyết)
                điều kiện tiên quyết
                thoát 0
                ;;
thoát hiểm

mount -t tmpfs -o size=100% none ${rootmnt}/ram
tar xvzf ${rootmnt}/ram.tar.gz -C ${rootmnt}


sau đó

Sudo chmod +x /etc/initramfs-tools/scripts/local-bottom/ramfiles
sudo cập nhật-initramfs -u

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.