Điểm:0

Trong thời gian móc kéo nào, máy khách PXE có thể đổi tên các tên giao diện có thể đoán trước bằng quy tắc udev không?

lá cờ jp

tl; dr: Trong khi tải một initramfs (thực thi các mô-đun dracut) trên máy khách PXE, tôi cần đổi tên các tên giao diện (có thể dự đoán) do nhân cung cấp (hiện tại chúng là các tên ethX không thể đoán trước). Bằng cách này, máy khách PXE sẽ luôn khởi động từ giao diện có tên dự đoán. Hiện tại tôi đang đọc thông tin phần cứng với dmesg trong quá trình hook cmdline dracut. Tôi có thể con mèo một quy tắc udev để /usr/lib/udev/rules.d/ ở đây để hệ thống có thể đổi tên các giao diện khi dracut sau đó kích hoạt udev?

Về cơ bản, tôi có cái này trong hook cmdline dracut:

# Phần cứng đọc đầu tiên được cung cấp
nếu dmesg | grep -q "SOME_BOARD_NAME"; sau đó
    root=$(echo "$root" | sed -e 's/PLACEHOLDER_FILE/SOME_ROOTFS.sqsh/')
    # Ngoài ra, cần có một số quy tắc udev dành riêng cho bảng này.
# mkdir -p /etc/udev/rules.d
# echo "cài đặt quy tắc của các bảng này!\n"
# tiếng vang << EOF > /etc/udev/rules.d/70-persistent-net.rules
#SUBSYSTEM=="net", DEVPATH="/devices/pci*/*1c.0/0000:07:00.0/net/*", NAME="eth0"
#SUBSYSTEM=="net", DEVPATH="/devices/pci*/*01.1/0000:05:00.0/net/*", NAME="eth1"
#SUBSYSTEM=="net", DEVPATH="/devices/pci*/*01.1/0000:05:00.1/net/*", NAME="eth2"
#EOF
yêu tinh dmesg | grep -q "SOME_OTHER_BOARD_NAME"; sau đó
    root=$(echo "$root" | sed -e 's/PLACEHOLDER_FILE/SOME_OTHER_ROOTFS.sqsh/')
    echo "cài đặt các quy tắc dành riêng cho bảng khác!\n"
# mkdir -p /etc/udev/rules.d
# tiếng vang << EOF > /etc/udev/rules.d/70-persistent-net.rules
#SUBSYSTEM=="net", DEVPATH="/devices/pci*/*1c.5/0000:09:00.0/net/*", NAME="eth0"
#SUBSYSTEM=="net", DEVPATH="/devices/pci*/*02.2/0000:02:00.0/net/*", NAME="eth1"
#SUBSYSTEM=="net", DEVPATH="/devices/pci*/*02.2/0000:02:00.1/net/*", NAME="eth2"
#EOF
khác
    cảnh báo "Không phát hiện ra bảng nào - mặc định là SOME_OTHER_ROOTFS.sqsh"
    root=$(echo "$root" | sed -e 's/PLACEHOLDER_FILE/SOME_OTHER_ROOTFS.sqsh/')
fi

Thêm thông tin: Nhóm của tôi và tôi có một máy tính bảng duy nhất mà PXE khởi động từ một máy chủ bên ngoài. Điều này tuân theo một trình tự:

  1. SBC kéo một initramfs và tải nó.
  2. Các initramfs thực thi một mô-đun dracut đọc thông tin phần cứng của SBC (trong hook dracut "cmdline").
  3. SBC kéo xuống một hệ thống tệp gốc cụ thể tùy thuộc vào phần cứng của nó.

Thật không may, tên giao diện ethX cũ (không thể đoán trước) đôi khi khiến SBC kéo hệ thống tệp gốc xuống qua giao diện mạng sai.

Kế hoạch của tôi là loại bỏ net.ifnames=0biosdevname=0 từ dòng lệnh kernel được sử dụng để khởi động PXE (bước 1). Sau đó, sau khi kernel đã gán các tên có thể đoán trước, tôi muốn mở rộng mô-đun dracut để thêm các quy tắc udev để đổi tên chúng thành tên cũ. Tôi hy vọng khi dracut kích hoạt udev, SBC sẽ luôn kéo hệ thống tệp gốc qua đúng giao diện.

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