Khởi động PXE 18.04 ISO


12

Trước đây, tôi đã thiết lập tính năng khởi động PXE của Ubuntu LiveCD bằng cách trích xuất ISO sang giá đỡ NFS và sao chép vmlinuz.efi và initrd.gz từ casper vào thư mục tftpboot bằng một số phép thuật kịch bản iPXE.

Điều này hoạt động hoàn hảo cho 16.04, 16.10 và 17.10 (Artful).

Với 18.04, lần đầu tiên tôi thấy rằng vmlinuz.efi không còn tồn tại trong casper, nhưng vmlinuz thì có. Vì vậy, tôi thử lại với một số thay đổi tên ...

Và bây giờ nó vẫn chưa hoàn thành khởi động. Tôi nhận được "chế độ khẩn cấp". Nhập vào 'tạp chí -xb' (như được đề xuất bởi dấu nhắc chế độ khẩn cấp) và duyệt dẫn đến các mục sau:

Unit sys-fs-fuse-connections has begun starting up.
ubuntu systemd[1]: Failed to set up mount unit: Device or resource busy
ubuntu systemd[1]: Failed to set up mount unit: Device or resource busy
sys-kernel-config.mount: Mount process finished, but there is no mount.
sys-kernel-config.mount: Failed with result 'protocol'.
Failed to mount Kernel Configuration File System.

Cứu giúp!

Đã thêm 2018-04-30:

Mã tập lệnh được sử dụng để trích xuất ISO cho mount PXE (TARGET được đặt thành tên hình ảnh, ví dụ bionic):

set -e

# Look for bionic.iso as the ISO I am going to extract.
TARGET=invalid.iso
[ -f bionic.iso ] && TARGET=bionic
echo TARGET=$TARGET

# Mount the ISO to the /tmp directory
sudo rm -rf /var/nfs/$TARGET/*
sudo rm -rf /tmp/$TARGET
mkdir /tmp/$TARGET
sudo mount -o loop ~/$TARGET.iso /tmp/$TARGET

# Clear up the NFS directory where things will be copied (and copy them)
sudo rm -rf /var/nfs/$TARGET
sudo mkdir /var/nfs/$TARGET
sudo rsync -avH /tmp/$TARGET/ /var/nfs/$TARGET

# I've not had luck with iPXE changing filesystems to find
# vmlinuz, vmlinuz.efi, or initrd.gz... so I copy those files
# specifically to the tftp directory structure so the boot loader
# can load them.
sudo rm -rf /var/lib/tftpboot/$TARGET
sudo mkdir /var/lib/tftpboot/$TARGET
sudo cp /tmp/$TARGET/casper/vmlinuz* /var/lib/tftpboot/$TARGET/.
sudo cp /tmp/$TARGET/casper/initrd.lz /var/lib/tftpboot/$TARGET/.

# Cleanup: unmount the ISO and remove the temp directory
sudo umount /tmp/$TARGET/
sudo rm -rf /tmp/$TARGET/
echo Done.

Đây có phải là một cài đặt "sạch", có nghĩa là, ổ đĩa mà hạt nhân đang bật được định dạng mới? Hoặc là nó cùng với / vượt qua một hệ điều hành khác?
Jonathan

1
Các máy mục tiêu được đề cập không có ổ cứng và đang tải LiveCD 18.04 trên máy tính để bàn qua mạng khởi động. Không có cấu hình trước đó. Hãy tưởng tượng một nhóm máy thay vì sử dụng các phím USB hoặc CD để khởi động liveCD, thay vào đó hãy khởi động CD trực tiếp bằng iPXE qua mạng.
Joe Marley

Câu trả lời:


7

Tôi đã giải quyết vấn đề này trong iPXE bằng cách làm theo lời khuyên của "Woodrow Shen" tại trình theo dõi lỗi Launchpad .

Về cơ bản, tôi đã điều chỉnh mục nhập cũ của chúng tôi cho Ubuntu 16.04.3:

:deployUbuntu-x64-16.04.3
set server_ip 123.123.123.123
set nfs_path /opt/nfs-exports/ubuntu-x64-16.04.3
kernel nfs://${server_ip}${nfs_path}/casper/vmlinuz.efi || read void
initrd nfs://${server_ip}${nfs_path}/casper/initrd.lz || read void
imgargs vmlinuz.efi initrd=initrd.lz root=/dev/nfs boot=casper netboot=nfs nfsroot=${server_ip}:${nfs_path} ip=dhcp splash quiet -- || read void
boot || read void

Để trông như thế này cho Ubuntu 18.04:

:deployUbuntu-x64-18.04
set server_ip 123.123.123.123
set nfs_path /opt/nfs-exports/ubuntu-x64-18.04
kernel nfs://${server_ip}${nfs_path}/casper/vmlinuz || read void
initrd nfs://${server_ip}${nfs_path}/casper/initrd.lz || read void
imgargs vmlinuz initrd=initrd.lz root=/dev/nfs boot=casper netboot=nfs nfsroot=${server_ip}:${nfs_path} ip=dhcp splash quiet toram -- || read void
boot || read void

lưu ý những thay đổi sau:

  • đổi tên vmlinuz.efithành vmlinuxdòng 4 và 6
  • thêm toramtùy chọn vào dòng 6
  • rõ ràng thay đổi nfs_pathđể phù hợp với vị trí của trích xuất ISO mới

lưu ý rằng như được chỉ ra trên Launchpad, toramtùy chọn này yêu cầu thêm RAM. Trong thử nghiệm của mình, tôi cần đảm bảo rằng các máy ảo của mình có 4GB RAM được phân bổ

Lưu ý rằng điều này cũng hoạt động cho cả hệ thống BIOS EFI và kế thừa của chúng tôi.


1
Thankyou DrGecko - toramtùy chọn phù hợp với tôi với 19 tuổi!
Brian Sidebotham

Điều này cũng hoạt động cho Lubfox 18.04.1 (LTS), đó chính xác là những gì tôi cần. Cảm ơn bạn!
Joe Marley

1
Có một tùy chọn khác, không yêu cầu toramvà cho phép khởi động máy tính có RAM ít hơn nhiều: thay đổi cuối dòng 6 thànhip=dhcp systemd.mask=tmp.mount ro -- || read void
Ricflomag

@Ricflomag Cảm ơn bạn rất nhiều, tôi có một đống máy tính với 2GB RAM. Đã thử nghiệm và hoạt động trên Ubuntu MATE 18.04.1 và Linux Mint 19.1, có cùng một vấn đề vì nó dựa trên Ubuntu 18.04.
Skylar Ittner

2

Sau cuối tuần, tôi tìm thấy một lỗi được báo cáo mô tả các triệu chứng chính xác của tôi (và cung cấp một cách giải quyết tương tác).

https://bugs.launchpad.net/ubfox/+source/casper/+orms/1755863

Rõ ràng tôi sẽ đợi ngày 18.04.1. Ít nhất bây giờ tôi biết tôi không (hoàn toàn) điên rồ!


Tôi nên đã nhấp vào liên kết trước đây - đã dành khá nhiều thời gian để tìm hiểu. Tôi đã sử dụng AIO Boot. Cảm ơn.
Regmi

0

cập nhật bên dưới - không sử dụng iso trực tiếp, sử dụng truyền thống có thể được khởi động PXE chính xác như tôi đã từng làm


đối với Ubuntu 14.04 và 16.04, tôi chỉ cần gắn lại máy chủ DVD ISO đầy đủ để có thể truy cập thông qua máy chủ web và thiết lập khởi động PXE theo cách thông thường (sao chép kernel và initrd sang tftp daemon, tùy chọn máy chủ tiếp theo DHCP , menu pxe vv).

chúng tôi có một quy trình khởi động để tự động hóa hoàn toàn việc triển khai các nút.

điều này chỉ đơn giản là không hoạt động với 18.04, không có kernel trong thư mục cài đặt và không có thư mục install / netboot / ub Ubuntu-Installer / amd64! Vì vậy, tôi đã thử kernel và initrd từ thư mục casper nhưng điều đó cũng vô dụng. Tôi đã lấy iso DVD cài đặt net và sử dụng kernel và initrd từ đó. Nó thực sự kích hoạt trình cài đặt văn bản nhưng khẳng định rằng nhân bản đang thiếu một tệp, nhưng nhật ký từ máy chủ http của tôi không cung cấp bất kỳ 404 nào!

Nhìn chung, tôi cảm thấy ISO máy chủ Ubuntu 18.04 là một bước lùi cho những người muốn thực hiện cài đặt tự động.


Tôi cũng đã thử thêm phần này vào phần khởi động

preseed trình cài đặt trực tiếp / chuỗi hình ảnh mạng http: //myreposerver/ubfox-18.04-live-server-amd64/casper/filesystem.squashfs

điều này hơi giống với việc tôi phải làm để khởi động Ubuntu 14.04 PXE có thể tự động hóa

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.