Điểm:0

Bỏ qua nhãn khi gắn phân vùng khởi động của hình ảnh hệ điều hành dưới dạng thiết bị lặp lại

lá cờ ua

Tôi muốn gắn kết phân vùng khởi động sau đó ubuntu-21.10-preinstall-server-arm64+raspi.img.xz được tải xuống từ trang web Raspberry PI.

Giải nén tệp hình ảnh và gắn phân vùng khởi động bằng một lệnh như

mount -o loop,offset=1048576,sizelimit=268435456 ubuntu-21.10-preinstall-server-arm64+raspi.img /var/nfs/ubuntu-21.10-boot

... hoạt động tốt. Bạn có thể xem hình ảnh được gắn cùng với /dev/mmcblk0p1 thiết bị:

gắn kết | khởi động grep
/dev/mmcblk0p1 trên /boot/firmware gõ vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,errors=remount-ro)
/var/nfs/ubuntu-21.10-preinstall-server-arm64+raspi.img trên /var/nfs/ubuntu-21.10-boot gõ vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset= ascii,tên viết tắt=hỗn hợp,lỗi=remount-ro)

Tuy nhiên, khi tôi thêm cùng một giá treo vào /etc/fstab đến gắn kết đã có sẵn cho /boot/phần sụn:

LABEL=system-boot /boot/firmware vfat mặc định 0 1
/var/nfs/ubuntu-21.10-preinstall-server-arm64+raspi.img /var/nfs/ubuntu-21.10-boot ext4 loop,offset=1048576,sizelimit=268435456 0 0

... và khởi động lại hệ thống (hoặc chạy gắn kết -a) phân vùng khởi động của hình ảnh được gắn cả hai tại /var/nfs/ubuntu-21.10-boot như mong đợi nhưng cũng tại /boot/phần sụn và do đó thay thế phần sụn thực tại /dev/mmcblk0p1:

gắn kết | khởi động grep
/var/nfs/ubuntu-21.10-preinstall-server-arm64+raspi.img trên /var/nfs/ubuntu-21.10-boot gõ vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset= ascii,tên viết tắt=hỗn hợp,lỗi=remount-ro)
/var/nfs/ubuntu-21.10-preinstall-server-arm64+raspi.img trên /boot/firmware gõ vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed, lỗi = remount-ro)

Điều này rõ ràng là do phân vùng khởi động của hình ảnh được dán nhãn khởi động hệ thống mà va chạm với /dev/mmcblk0p1 dán nhãn theo cùng một cách.

(Trang hướng dẫn gắn kết chỉ định rằng fstab bị bỏ qua khi cả thiết bị và điểm gắn kết được chỉ định, điều này giải thích tại sao quá trình gắn thủ công hoạt động như mong đợi.)

Tôi có thể nghĩ ra các cách giải quyết sau đây để tránh phần sụn bị ghi đè:

  • Tránh sử dụng fstab và gắn kết thủ công trong tập lệnh rc
  • Dán nhãn lại phân vùng khởi động của tệp hình ảnh
  • Thay thế LABEL=khởi động hệ thống với thiết bị thực chứa phần sụn (như được đề xuất trong câu trả lời của @ Tilman bên dưới)

... nhưng

Có cách nào để ngăn mục nhập fstab tự động gắn theo nhãn không?

Christoffer Soop avatar
lá cờ ua
Đã thêm giải pháp thay thế từ câu trả lời bên dưới nhưng không chấp nhận nó làm câu trả lời vì nó không thực sự trả lời câu hỏi nếu bạn có thể ngăn cơ chế sự kiện system.d kích hoạt khi thiết bị lặp lại được thêm vào fstab.
Điểm:0
lá cờ cn

mệnh đề LABEL=khởi động hệ thống kể gắn kết tăng không tí nào hệ thống tập tin với nhãn âm lượng khởi động hệ thống trên mountpoint đó. Nếu bạn không muốn điều đó thì đừng sử dụng mệnh đề đó. Thay thế nó bằng /dev/mmcblk0p1 câu nói nào gắn kết để gắn chính xác thiết bị đó, bỏ qua nhãn.

Christoffer Soop avatar
lá cờ ua
Cảm ơn - nhưng điều này giả định rằng tập lệnh của tôi biết rằng thiết bị `system-boot` là `/dev/mmcblk0p1` thứ gì đó mà tôi hy vọng không được chấp nhận hoặc phân tích cú pháp ra khỏi đầu ra của lệnh mount hoặc một số lệnh khác...
Tilman avatar
lá cờ cn
Sau đó, bạn cần phải lùi lại một bước.Điều gì xác định thiết bị nào bạn muốn gắn vào `/boot/firmware`? Bạn không thể sử dụng nhãn vì bạn đã đặt nhãn đó không phải là duy nhất. Bạn không muốn sử dụng tên thiết bị vì bạn không muốn truyền đạt kiến ​​thức đó vào tập lệnh của mình. Sau đó thì sao?
Christoffer Soop avatar
lá cờ ua
Trong trường hợp này, tôi đang sử dụng hình ảnh được đóng gói sẵn của hệ điều hành mà tôi đang sử dụng để cài đặt trên máy "máy chủ" phục vụ hệ thống tệp NFS cho các máy khách không có ổ đĩa. Hiện tại tôi đang sử dụng/boot/firmware cho các máy khách không đĩa nhưng sẽ tốt hơn nếu sử dụng phân vùng khởi động của hình ảnh vì sau đó có thể tách phiên bản Hệ điều hành máy chủ khỏi phiên bản của máy khách. Tôi đoán tùy chọn tốt nhất của mình là thay đổi nhãn của tệp hình ảnh. Cũng có thể muốn cung cấp trước phần mềm để việc tạo hình ảnh tùy chỉnh có vẻ không phải là quá sức.
Christoffer Soop avatar
lá cờ ua
... và sau đó, điều dễ dàng nhất thực sự chỉ là gắn phân vùng khởi động, sao chép nó vào fs và bỏ qua toàn bộ vấn đề về nhãn bằng cách không thêm phân vùng khởi động vào fstab. Chỉ nghĩ rằng sẽ có một số cách để ngăn chặn tính năng tự động đếm mặc định trên mỗi nhãn của fstab cho từng dòng riêng lẻ nhưng tôi nghi ngờ rằng những gì tôi đang thấy là một hành vi ngoài ý muốn vì thiết bị lặp lại đã được gắn khi quá trình tự động khởi động.
sudodus avatar
lá cờ jp
Nói chung, sử dụng UUID sẽ an toàn hơn nhãn để xác định nội dung cần gắn, vì nó có nhiều khả năng là duy nhất. Điều đó có thể xảy ra trong trường hợp của bạn không?
Christoffer Soop avatar
lá cờ ua
@sudodus - ý bạn là thay đổi dòng `LABEL=system-boot` mặc định trong `/etc/fstab` thay vì thay đổi nhãn của phân vùng được xác định trong hình ảnh? Giả sử rằng nó hoạt động (không thể hiểu tại sao không), tôi vẫn cần tìm hiểu cách viết kịch bản bằng cách sử dụng `cloud-init` hoặc Ansible và nó không thực sự trả lời câu hỏi ban đầu... nhưng chắc chắn, đó là một khả năng giải quyết vấn đề cơ bản ít nhất - cảm ơn!
Christoffer Soop avatar
lá cờ ua
... và đây là điều mà câu trả lời đã nói ngay từ đầu.
sudodus avatar
lá cờ jp
@ChristofferSoop, Vâng, ý tôi là việc thay đổi thành `UUID=...` làm cho nó đáng tin cậy hơn. (Bạn có thể tìm đúng UUID bằng lệnh `lsblk -f`), Xin lưu ý rằng ID thiết bị `/dev/...` *không* đáng tin cậy như sử dụng uuid.

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