Cài đặt khởi động từ USB - Vị trí khởi động


12

Sau khi quản lý để có được Fedora ISO để xây dựng lại thành công (cho thẻ nhớ USB) sau khi thêm tệp khởi động ( /server/548405/ ), bây giờ tôi gặp vấn đề với việc định vị tệp khởi động trên phương tiện USB .

Khi điều này được thực hiện từ CDROM, bạn có thể khởi động đơn giản bằng cách thêm tham số này vào boot:

linux ks=cdrom

Điều này sẽ khởi động (cung cấp tệp kickstart có tên ks.cfg và nằm trong thư mục gốc của đĩa).

Bây giờ, rõ ràng điều này sẽ khác với ổ USB, vì vậy từ nghiên cứu của tôi, tôi đã giả định rằng dòng này sẽ thực hiện công việc:

linux ks=hd:sdb1:/ks.cfg

Rõ ràng điều này không hoạt động. Tôi gặp lỗi thông báo cho tôi ổ đĩa này đã được gắn và không thể truy cập lại được.

EDIT: Thông báo lỗi thực tế:

mount: /dev/sdb1 is already mounted or /run/install/tmpmnt0 busy
Warning: Can't get kickstart from /dev/sdb1:/ks.cfg

Để kiểm tra xem cú pháp có đúng không, tôi đã đặt tệp khởi động trên một thanh USB khác và tải cùng một lệnh để lấy ks.cfg từ vị trí mới:

linux ks=hd:sdc1:/ks.cfg

Điều này không hoạt động (cung cấp các thanh USB được gắn theo thứ tự, khởi động -> sdb1, kickstart -> sdc1). Việc cài đặt sẽ khởi động và hoàn tất cài đặt mà không gặp vấn đề gì. Rõ ràng việc phải sử dụng 2 ổ bút có phần bực bội và không đáng tin cậy.

Có cách nào để giái quyết vấn đề này không?


Bạn đã thử ks=cdrom, phải không?
Michael Hampton

Có tôi đã làm, nhưng nó không tìm thấy tập tin khởi động.
dooffas

bạn đã thử linux ks = hd: sbd1 / ks.cfg chưa?
Archemar

Các bước được nêu ở đây là những bước tôi đã sử dụng để tạo khóa USB của mình.
Vitalii

Câu trả lời:


4

Tôi đã thử tất cả mọi thứ, nhưng chỉ điều này có vẻ hiệu quả: đặt ks.cfg bên trong initrd. Vì vậy, các bước bên dưới trích xuất initrd, thêm ks.cfg vào đó và tạo lại nó. Đã thử nghiệm với CentOS7

Trước tiên hãy gắn hình ảnh .iso ban đầu vào máy tính của bạn và sao chép nội dung của nó trong tmp /

Sau đó,

#Keep the original file
cp -ai tmp/isolinux/initrd.img initrd.img.orig
mkdir irmod
cd irmod

#Extract initrd in irmod/
xz -d < ../tmp/isolinux/initrd.img | cpio --extract --make-directories --no-absolute-filenames

#Add the ks.cfg in there
cp ../tmp/ks.cfg .

# Recreate the initrd.img inside isolinux/
find . | cpio -H newc --create | xz --format=lzma --compress --stdout > ../tmp/isolinux/initrd.img

#cleanup
cd ..
rm -r irmod

# Add  ks=file:/ks.cfg to the boot parameters in isolinux.cfg. you can do it by hand, this is an example for our own isolinux.cfg
sed -s -i 's|ks=.*ks\.cfg ksdevice=link|ks=file:/k1.cfg|' ../tmp/isolinux/isolinux.cfg ../isolinux.cfg

Sau đó tiến hành tạo hình ảnh như bình thường:

cd tmp/

imgname="inaccess-centos7-ks1-v1.iso"
xorriso -as mkisofs -R -J -V "CentOS 7 x86_64" -o "../${imgname}" \
        -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4  \
        -boot-info-table -isohybrid-mbr /usr/share/syslinux/isohdpfx.bin .
cd ..

Điều này giống như tôi đã làm trong bài viết được liên kết (Rebuild Fedora 19 ISO thêm Kickstart cho cài đặt USB). Cảm ơn vì đã trả lời.
dooffas

7

Tôi đã có thể giải quyết điều này bằng cách làm như sau:

  • Đặt tệp kickstart ở đầu isolinuxthư mục và đảm bảo rằng nó được đặt tênks.cfg
  • isolinux.cfgtập tin của tôi trông như thế này:

    label linux
      menu label ^Install CentOS 7
      kernel vmlinuz
      append initrd=initrd.img inst.ks=hd:LABEL=CentOS\x207\x20x86_64:/isolinux/ks.cfg inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet
    

Sử dụng nhãn ổ đĩa khi tham chiếu ks.cfglàm cho hình ảnh iso thu được dễ mang theo hơn. (nó có thể biến thành ổ USB có thể khởi động)


2

Phương pháp yêu thích của tôi là sử dụng UUID, vì nó ổn định.

Tôi sử dụng hai Pendrive, thứ nhất với CentOS, thứ hai với kickstart. Sau khi lưu một cú khởi động trên ổ đĩa thứ hai, tôi kiểm tra UUID của nó trong linux bằng lệnh blkid: / dev / sdg1: UUID = "885E: 0BD1" TYPE = "vfat"

Và sau đó tôi sử dụng nó trong trang cài đặt: ks = hd: UUID = 885E: 0BD1: /ks.cfg

Nó thật sự có hiệu quả!


Ổn định không di động
Ricardo Cristian Ramirez

1

Bạn phải trỏ đến / sda1 vì khi bạn khởi động từ USB sda là USB, sdb là đĩa cứng đầu tiên, v.v.


không, không phải lúc nào cũng như vậy
sivann

0

Bây giờ bạn có một phân vùng trên thanh USB có kích thước của hình ảnh ISO. Chỉ cần tạo một phân vùng khác trên thanh USB bằng cách sử dụng không gian nghỉ ngơi, định dạng nó và đặt các tệp khởi động của bạn ở đó.

CẬP NHẬT: thử fdisk, vì parteddường như không làm việc trong trường hợp này.

CẬP NHẬT1: iso phải được lặp lại với xorriso

CẬP NHẬT2: xem /server//a/551307/134234


Tôi cũng đã thử điều này, vui lòng xem bài đăng khác của tôi: serverfault.com/questions/549158
dooffas

@dooffas Tôi thấy rồi, bạn không may mắn với gparted. Bạn đã thực sự thử fdisk? Tôi đã tạo lại trường hợp của bạn với âm lượng lvm và ít nhất fdisk đã tạo phân vùng thứ hai liên tiếp.
Veniamin

Tôi đã thử fdisk, tuy nhiên nó không đọc bảng phân vùng chính xác. Nó nghĩ rằng phân vùng chứa hình ảnh Fedora chiếm gần 8GB, điều đó không đúng. Dường như việc ghi hình ảnh fedora vào ổ đĩa làm hỏng bảng phân vùng.
dooffas

@dooffas Xin lỗi, trong phòng thí nghiệm của tôi, tôi đã tạo lại iso bằng xorriso nhưng quên ghi chú. Vui lòng tìm thông tin cập nhật của tôi.
Veniamin

cái này không hoạt động. ngay cả sau khi tạo phân vùng, toàn bộ đĩa được cài đặt bởi trình cài đặt và không thể sử dụng phân vùng.
sivann
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.