Điểm:1

Sử dụng initrd nén khi khởi động pxe

lá cờ us

Tôi đang sử dụng netboot/pxeboot với grub.

menuentry "Cài đặt Ubuntu 20.04" {
  đặt gfxpayload=giữ
  echo 'Đang tải vmlinuz ...'
  linux /tftp/vmlinuz ip=dhcp netboot=nfs nfsroot=10.0.0.20:/data/netboot/nfs/ubuntu2004/ boot=casper toram noquiet splash=off console=tty0 console=ttyS1,57600n8 ---
  echo 'Đang tải initrd, quá trình này mất nhiều thời gian ...'
  initrd /tftp/initrd
}

Nó hoạt động tốt, tuy nhiên, việc tải initrd qua tftp mất nhiều thời gian (hơn 30 phút). Tôi muốn nén (gz/bz2) tệp này để tiết kiệm thời gian truyền tệp.

Tôi đã thấy một số ví dụ ngoài đó đề cập đến một initrd.gz (Một ví dụ: https://unix.stackexchange.com/questions/217002/ which-iso-file-vmlinuz-and-initrd-gz-to-use-for-installing-centos-from-multiboo) nhưng khi tôi cố nén tệp bằng gzip và sử dụng nó, tôi gặp lỗi như:

[ 12.543547] VFS: Không thể mở thiết bị gốc "(null)" hoặc khối không xác định (0,0): lỗi -6
[ 12.558487] Vui lòng thêm tùy chọn khởi động "root=" đúng; đây là các phân vùng có sẵn:
[ 12.575161] Kernel hoảng loạn - không đồng bộ hóa: VFS: Không thể gắn root fs trên khối không xác định (0,0)

Có cách nào để nén tệp này để nó có thể truyền kích thước tệp nhỏ hơn và giải nén tệp trước khi cố gắn fs gốc không?

Ngoài ra, có cách nào để chuyển nó qua một giao thức khác (HTTP/FTP/SFTP/SCP/etc) không?

lá cờ in
Bạn có thể sử dụng xz hoặc bất kỳ cách nén nào khác, ngay cả khi grub không giải nén tệp, hạt nhân có thể thực hiện việc giải nén miễn là nó được bật các tùy chọn đó. Tôi luôn khuyên dùng http, không chắc liệu grub có nhận được sự hỗ trợ như vậy hay không, giải pháp goto của tôi là iPXE. (như bạn dường như đang sử dụng, tôi sẽ tránh NFS)
Điểm:1
lá cờ za
Pat

Một initrd là một cấu trúc CPIO được nén được tạo từ cấu trúc cây tệp bằng một lệnh như:

tìm thấy . | cpio -o -c -R root:root | gzip -9 > /boot/new.img

Các Ubuntu-20.04-máy tính để bàn-AMD64 initrd đã được nén và nặng khoảng 87 MB. Quá trình truyền TFTP của tệp đó sẽ mất khoảng 36 giây.

[04/05 08:17:46.445] TFTP Inf: <\NWA_PXE\ubuntu-20.04-desktop-AMD64\casper\initrd>: đã gửi blks=63901 blkSz=1408, Tổng cộng 89971296 byte trong 36 giây, err recovery=0 

Nếu quá trình truyền TFTP của bạn mất nửa giờ thì bạn gặp sự cố khác trong thiết lập mạng-TFTP. Việc nắm bắt lưu lượng truy cập Wireshark có thể giúp bạn xác định chính xác vấn đề của mình.

Rino Bino avatar
lá cờ us
Cuối cùng tôi chỉ sử dụng iPXE có bật giao thức nfs. NFS chuyển nó trong vài giây.Thật không may, không có thông số điều chỉnh nào cho TFTP ngoài kích thước khối (đã được điều chỉnh) và nó chạy trên udp không hoạt động tốt trong thiết lập của tôi qua vpn. Tôi sẽ chấp nhận đây là câu trả lời nhưng tôi sẽ đặt một câu trả lời khác để trả lời trực tiếp các câu hỏi.
Điểm:1
lá cờ us

@ Câu trả lời của Pat được chấp nhận và chi tiết hơn, tuy nhiên đây là câu trả lời trực tiếp cho các câu hỏi ban đầu:

Có cách nào để nén tệp này để nó có thể truyền kích thước tệp nhỏ hơn và giải nén tệp trước khi cố gắn fs gốc không?

Không, nó đã được nén rồi. Câu trả lời được chấp nhận đưa ra một ví dụ về điều này.

Ngoài ra, có cách nào để chuyển nó qua một giao thức khác (HTTP/FTP/SFTP/SCP/etc) không?

Không phải với PXE thông thường. Sử dụng một hệ thống khởi động mạng khác, như iPXE, cho phép http/nfs

Đă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.