Điểm:2

Làm cách nào để thêm tùy chọn khởi động USB vào grub.cfg trong Ubuntu 20.04?

lá cờ in

Tôi đã xác nhận rằng USB có Ubuntu ISO có thể khởi động thích hợp trên đó bằng lệnh tệp.
USB được cắm vào máy tính xách tay.
Menu grub tự hiển thị khi khởi động.

Vấn đề là không có tùy chọn để khởi động từ USB.

Bây giờ tôi muốn chỉnh sửa grub.cfg sao cho nó chứa các tùy chọn khởi động USB.
Tôi phải làm gì từ đây?

Ngoài ra, /boot/grub/grub.cfg:

#
# KHÔNG CHỈNH SỬA TỆP NÀY
#
# Nó được tạo tự động bởi grub-mkconfig bằng các mẫu
# từ /etc/grub.d và cài đặt từ /etc/default/grub
#

### BẮT ĐẦU /etc/grub.d/00_header ###
nếu [ -s $prefix/grubenv ]; sau đó
  đặt have_grubenv=true
  tải_env
fi
nếu [ "${initrdfail}" = 2 ]; sau đó
   đặt initrdfail =
yêu tinh [ "${initrdfail}" = 1 ]; sau đó
   đặt next_entry="${prev_entry}"
   đặt prev_entry=
   save_env prev_entry
   nếu [ "${next_entry}" ]; sau đó
      đặt initrdfail=2
   fi
fi
nếu [ "${next_entry}" ] ; sau đó
   đặt mặc định="${next_entry}"
   đặt next_entry=
   save_env next_entry
   đặt boot_once=true
khác
   đặt mặc định = "0"
fi

nếu [ x"${feature_menuentry_id}" = xy ]; sau đó
  menuentry_id_option="--id"
khác
  menuentry_id_option=""
fi

xuất menuentry_id_option

nếu [ "${prev_saved_entry}" ]; sau đó
  đặt đã lưu_entry="${prev_saved_entry}"
  save_env đã lưu_entry
  đặt prev_saved_entry=
  save_env prev_saved_entry
  đặt boot_once=true
fi

hàm savedefault {
  nếu [ -z "${boot_once}" ]; sau đó
    đã lưu_entry="${chosen}"
    save_env đã lưu_entry
  fi
}
hàm initrdfail {
    nếu [ -n "${have_grubenv}" ]; sau đó nếu [ -n "${partuuid}" ]; sau đó
      nếu [ -z "${initrdfail}" ]; sau đó
        đặt initrdfail=1
        nếu [ -n "${boot_once}" ]; sau đó
          đặt prev_entry="${default}"
          save_env prev_entry
        fi
      fi
      save_env initrdfail
    có; fi
}
bản ghi chức năng thất bại {
  đặt recordfail=1
  nếu [ -n "${have_grubenv}" ]; sau đó nếu [ -z "${boot_once}" ]; sau đó save_env recordfail; có; fi
}
chức năng tải_video {
  nếu [ x$feature_all_video_module = xy ]; sau đó
    insmod all_video
  khác
    insmod efi_gop
    insmod efi_uga
    insmod ieee1275_fb
    insmod vbe
    insmod vga
    insmod video_bochs
    insmod video_cirrus
  fi
}

nếu [ x$feature_default_font_path = xy ] ; sau đó
   phông chữ = unicode
khác
insmod part_gpt
insmod ext2
đặt gốc='hd0,gpt2'
nếu [ x$feature_platform_search_hint = xy ]; sau đó
  tìm kiếm --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 e860e8f0-912f-4874-8f0f -97e343371f12
khác
  tìm kiếm --no-floppy --fs-uuid --set=root e860e8f0-912f-4874-8f0f-97e343371f12
fi
    font="/usr/share/grub/unicode.pf2"
fi

nếu tải phông chữ $ phông chữ; sau đó
  đặt gfxmode=tự động
  tải_video
  insmod gfxterm
  đặt locale_dir=$prefix/locale
  đặt lang=en_IN
  insmod gettext
fi
terminal_output gfxterm
nếu [ "${recordfail}" = 1 ] ; sau đó
  đặt thời gian chờ = 30
khác
  nếu [ x$feature_timeout_style = xy ] ; sau đó
    đặt timeout_style=menu
    đặt thời gian chờ = 5
  # Dự phòng mã thời gian chờ bình thường trong trường hợp tính năng timeout_style là
  # không có sẵn.
  khác
    đặt thời gian chờ = 5
  fi
fi
### KẾT THÚC /etc/grub.d/00_header ###

### BẮT ĐẦU /etc/grub.d/05_debian_theme ###
đặt menu_color_normal=trắng/đen
đặt menu_color_highlight=đen/xám nhạt
### KẾT THÚC /etc/grub.d/05_debian_theme ###

### BẮT ĐẦU /etc/grub.d/10_linux ###
hàm gfxmode {
    đặt gfxpayload="${1}"
    nếu [ "${1}" = "giữ" ]; sau đó
        đặt vt_handoff=vt.handoff=7
    khác
        đặt vt_handoff=
    fi
}
nếu [ "${recordfail}" != 1 ]; sau đó
  nếu [ -e ${prefix}/gfxblacklist.txt ]; sau đó
    nếu hwmatch ${prefix}/gfxblacklist.txt 3; sau đó
      nếu [ ${match} = 0 ]; sau đó
        đặt linux_gfx_mode=keep
      khác
        đặt linux_gfx_mode=văn bản
      fi
    khác
      đặt linux_gfx_mode=văn bản
    fi
  khác
    đặt linux_gfx_mode=keep
  fi
khác
  đặt linux_gfx_mode=văn bản
fi
xuất linux_gfx_mode
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-e860e8f0-912f-4874-8f0f-97e343371f12' {
    kỷ lục thất bại
    tải_video
    gfxmode $linux_gfx_mode
    insmod gzio
    nếu [ x$grub_platform = xxen ]; sau đó insmod xzio; insmod lzopio; fi
    insmod part_gpt
    insmod ext2
    đặt gốc='hd0,gpt2'
    nếu [ x$feature_platform_search_hint = xy ]; sau đó
      tìm kiếm --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 e860e8f0-912f-4874-8f0f -97e343371f12
    khác
      tìm kiếm --no-floppy --fs-uuid --set=root e860e8f0-912f-4874-8f0f-97e343371f12
    fi
    linux /boot/vmlinuz-5.13.0-27-generic root=UUID=e860e8f0-912f-4874-8f0f-97e343371f12 ro yên tĩnh giật gân $vt_handoff
    initrd /boot/initrd.img-5.13.0-27-generic
}
menu con 'Tùy chọn nâng cao cho Ubuntu' $menuentry_id_option 'gnulinux-advanced-e860e8f0-912f-4874-8f0f-97e343371f12' {
    menuentry 'Ubuntu, với Linux 5.13.0-27-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.13.0-27-generic-advanced-e860e8f0-912f -4874-8f0f-97e343371f12' {
        kỷ lục thất bại
        tải_video
        gfxmode $linux_gfx_mode
        insmod gzio
        nếu [ x$grub_platform = xxen ]; sau đó insmod xzio; insmod lzopio; fi
        insmod part_gpt
        insmod ext2
        đặt gốc='hd0,gpt2'
        nếu [ x$feature_platform_search_hint = xy ]; sau đó
          tìm kiếm --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 e860e8f0-912f-4874-8f0f -97e343371f12
        khác
          tìm kiếm --no-floppy --fs-uuid --set=root e860e8f0-912f-4874-8f0f-97e343371f12
        fi
        echo 'Đang tải Linux 5.13.0-27-generic ...'
        linux /boot/vmlinuz-5.13.0-27-generic root=UUID=e860e8f0-912f-4874-8f0f-97e343371f12 ro yên tĩnh giật gân $vt_handoff
        echo 'Đang tải đĩa ram ban đầu ...'
        initrd /boot/initrd.img-5.13.0-27-generic
    }
    menuentry 'Ubuntu, với Linux 5.13.0-27-generic (chế độ khôi phục)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.13.0-27-generic-recovery -e860e8f0-912f-4874-8f0f-97e343371f12' {
        kỷ lục thất bại
        tải_video
        insmod gzio
        nếu [ x$grub_platform = xxen ]; sau đó insmod xzio; insmod lzopio; fi
        insmod part_gpt
        insmod ext2
        đặt gốc='hd0,gpt2'
        nếu [ x$feature_platform_search_hint = xy ]; sau đó
          tìm kiếm --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 e860e8f0-912f-4874-8f0f -97e343371f12
        khác
          tìm kiếm --no-floppy --fs-uuid --set=root e860e8f0-912f-4874-8f0f-97e343371f12
        fi
        echo 'Đang tải Linux 5.13.0-27-generic ...'
        linux /boot/vmlinuz-5.13.0-27-generic root=UUID=e860e8f0-912f-4874-8f0f-97e343371f12 ro recovery nomodeset dis_ucode_ldr 
        echo 'Đang tải đĩa ram ban đầu ...'
        initrd /boot/initrd.img-5.13.0-27-generic
    }
    menuentry 'Ubuntu, với Linux 5.11.0-37-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.11.0-37-generic-advanced-e860e8f0-912f -4874-8f0f-97e343371f12' {
        kỷ lục thất bại
        tải_video
        gfxmode $linux_gfx_mode
        insmod gzio
        nếu [ x$grub_platform = xxen ]; sau đó insmod xzio; insmod lzopio; fi
        insmod part_gpt
        insmod ext2
        đặt gốc='hd0,gpt2'
        nếu [ x$feature_platform_search_hint = xy ]; sau đó
          tìm kiếm --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 e860e8f0-912f-4874-8f0f -97e343371f12
        khác
          tìm kiếm --no-floppy --fs-uuid --set=root e860e8f0-912f-4874-8f0f-97e343371f12
        fi
        echo 'Đang tải Linux 5.11.0-37-generic ...'
        linux /boot/vmlinuz-5.11.0-37-generic root=UUID=e860e8f0-912f-4874-8f0f-97e343371f12 ro yên tĩnh giật gân $vt_handoff
        echo 'Đang tải đĩa ram ban đầu ...'
        initrd /boot/initrd.img-5.11.0-37-generic
    }
    menuentry 'Ubuntu, với Linux 5.11.0-37-generic (chế độ khôi phục)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.11.0-37-generic-recovery -e860e8f0-912f-4874-8f0f-97e343371f12' {
        kỷ lục thất bại
        tải_video
        insmod gzio
        nếu [ x$grub_platform = xxen ]; sau đó insmod xzio; insmod lzopio; fi
        insmod part_gpt
        insmod ext2
        đặt gốc='hd0,gpt2'
        nếu [ x$feature_platform_search_hint = xy ]; sau đó
          tìm kiếm --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 e860e8f0-912f-4874-8f0f -97e343371f12
        khác
          tìm kiếm --no-floppy --fs-uuid --set=root e860e8f0-912f-4874-8f0f-97e343371f12
        fi
        echo 'Đang tải Linux 5.11.0-37-generic ...'
        linux /boot/vmlinuz-5.11.0-37-generic root=UUID=e860e8f0-912f-4874-8f0f-97e343371f12 ro recovery nomodeset dis_ucode_ldr 
        echo 'Đang tải đĩa ram ban đầu ...'
        initrd /boot/initrd.img-5.11.0-37-generic
    }
    menuentry 'Ubuntu, với Linux 5.8.0-43-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.8.0-43-generic-advanced-e860e8f0-912f -4874-8f0f-97e343371f12' {
        kỷ lục thất bại
        tải_video
        gfxmode $linux_gfx_mode
        insmod gzio
        nếu [ x$grub_platform = xxen ]; sau đó insmod xzio; insmod lzopio; fi
        insmod part_gpt
        insmod ext2
        đặt gốc='hd0,gpt2'
        nếu [ x$feature_platform_search_hint = xy ]; sau đó
          tìm kiếm --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 e860e8f0-912f-4874-8f0f -97e343371f12
        khác
          tìm kiếm --no-floppy --fs-uuid --set=root e860e8f0-912f-4874-8f0f-97e343371f12
        fi
        echo 'Đang tải Linux 5.8.0-43-generic ...'
        linux /boot/vmlinuz-5.8.0-43-generic root=UUID=e860e8f0-912f-4874-8f0f-97e343371f12 ro yên tĩnh giật gân $vt_handoff
        echo 'Đang tải đĩa ram ban đầu ...'
        initrd /boot/initrd.img-5.8.0-43-generic
    }
    menuentry 'Ubuntu, với Linux 5.8.0-43-generic (chế độ khôi phục)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.8.0-43-generic-recovery -e860e8f0-912f-4874-8f0f-97e343371f12' {
        kỷ lục thất bại
        tải_video
        insmod gzio
        nếu [ x$grub_platform = xxen ]; sau đó insmod xzio; insmod lzopio; fi
        insmod part_gpt
        insmod ext2
        đặt gốc='hd0,gpt2'
        nếu [ x$feature_platform_search_hint = xy ]; sau đó
          tìm kiếm --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 e860e8f0-912f-4874-8f0f -97e343371f12
        khác
          tìm kiếm --no-floppy --fs-uuid --set=root e860e8f0-912f-4874-8f0f-97e343371f12
        fi
        echo 'Đang tải Linux 5.8.0-43-generic ...'
        linux /boot/vmlinuz-5.8.0-43-generic root=UUID=e860e8f0-912f-4874-8f0f-97e343371f12 ro recovery nomodeset dis_ucode_ldr 
        echo 'Đang tải đĩa ram ban đầu ...'
        initrd /boot/initrd.img-5.8.0-43-generic
    }
}

### KẾT THÚC /etc/grub.d/10_linux ###

### BẮT ĐẦU /etc/grub.d/10_linux_zfs ###
### KẾT THÚC /etc/grub.d/10_linux_zfs ###

### BẮT ĐẦU /etc/grub.d/20_linux_xen ###

### KẾT THÚC /etc/grub.d/20_linux_xen ###

### BẮT ĐẦU /etc/grub.d/20_memtest86+ ###
### KẾT THÚC /etc/grub.d/20_memtest86+ ###

### BẮT ĐẦU /etc/grub.d/30_os-prober ###
### KẾT THÚC /etc/grub.d/30_os-prober ###

### BẮT ĐẦU /etc/grub.d/30_uefi-firmware ###
menuentry 'UEFI Firmware Settings' $menuentry_id_option 'uefi-firmware' {
    fwsetup
}
### KẾT THÚC /etc/grub.d/30_uefi-firmware ###

### BẮT ĐẦU /etc/grub.d/40_custom ###
# Tệp này cung cấp một cách dễ dàng để thêm các mục menu tùy chỉnh. Đơn giản chỉ cần gõ
# mục menu bạn muốn thêm sau nhận xét này. Hãy cẩn thận để không thay đổi
# dòng 'exec tail' ở trên.
### KẾT THÚC /etc/grub.d/40_custom ###

### BẮT ĐẦU /etc/grub.d/41_custom ###
nếu [ -f ${config_directory}/custom.cfg ]; sau đó
  nguồn ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; sau đó
  nguồn $prefix/custom.cfg;
fi
### KẾT THÚC /etc/grub.d/41_custom ###

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây

kanehekili avatar
lá cờ zw
Đừng **không** sử dụng công cụ tùy biến Grub để thay đổi bất kỳ thứ gì - Tôi có thể làm hỏng bộ nạp khởi động của bạn... Kiểm tra xem GRUB_DISABLE_OS_PROBER=false trong `etc/default/grub` có bị nhận xét không
oldfred avatar
lá cờ cn
Không chắc liệu grub có thể khởi động trình cài đặt chính xác hay không. Bạn thường khởi động từ menu khởi động UEFI/BIOS. Các sự cố thường xảy ra nhất là ổ đĩa flash không đúng cổng USB, chính ổ đĩa flash, tải xuống ISO chưa được xác minh hoặc công cụ được sử dụng để tạo ổ đĩa flash có thể khởi động. Một số hệ thống cũng yêu cầu cài đặt UEFI để cho phép hỗ trợ USB đầy đủ hoặc cho phép khởi động qua USB, đặc biệt nếu Khởi động an toàn UEFI được bật. https://help.ubuntu.com/community/Installation/iso2usb
Aquarius_Girl avatar
lá cờ in
@kanehekili tốt, tùy chọn đó `GRUB_DISABLE_OS_PROBER` hoàn toàn không có.
abu-ahmed al-khatiri avatar
lá cờ in
@Aquarius_Girl Tệp grub.cfg có vẻ ổn. bạn đang dùng iso và flash tool gì vậy? . vui lòng cung cấp cho chúng tôi đầu ra của `cat /boot/grub/grubenv`.
Joepie Es avatar
lá cờ eg
Tại sao bạn không boot trực tiếp từ USB? Tôi có thể thay đổi nó trong UEFI hoặc nhấn F11 trên máy tính xách tay HP ENVY của mình. Sau đó, bạn không cần phải thay đổi bất cứ điều gì. Điều đó không dễ dàng hơn nhiều sao?
Aquarius_Girl avatar
lá cờ in
@JoepieEs Tôi muốn khởi động trực tiếp từ USB nhưng không biết cách thực hiện. Hãy viết một câu trả lời.
Joepie Es avatar
lá cờ eg
Vui lòng chỉ định phần cứng của bạn. Kiểu dáng và kiểu dáng bo mạch chủ hoặc kiểu dáng và kiểu dáng máy tính xách tay. Sau đó, tôi sẽ tìm kiếm nó.
Điểm:1
lá cờ mx

Khi bạn vào màn hình GRUB màu đen, hãy nhấn C hoặc phím thoát (ESC) để truy cập dấu nhắc lệnh, sau đó nhập các lệnh sau (để bạn có thể khởi động):

grub> root (hd0,0) # ổ cứng đầu tiên, phân vùng đầu tiên
grub> find /[tab] # gõ dấu gạch chéo rồi nhấn [tab] và nó sẽ cố liệt kê các tệp trên phân vùng này
Lỗi 17: Không thể gắn kết phân vùng đã chọn # Rất tiếc, không có hệ thống tệp nào ở đây
grub> root (hd0,1) # ổ cứng thứ nhất, phân vùng thứ hai
grub> tìm/[tab]
Các tệp có thể là: phương tiện bị mất + tìm thấy var, v.v ... # That was my hard drive with my linux install
grub> root (hd1,0) # ổ cứng thứ hai thường là ổ USB nếu bạn chỉ có một ổ trong
grub> tìm/[tab]
Các tệp có thể là: ldlinux.sys mydoc myfile mystick syslinux.cfg # Bingo, đó là thanh USB

Bây giờ, khởi động ổ đĩa bằng cách nhập các lệnh sau:

bộ nạp dây chuyền +1
khởi động

Để thuận tiện, hãy thêm các lệnh này vào cấu hình GRUB của bạn (thường ở dạng /boot/grub/menu.lst):

# để khởi động từ thiết bị USB
tiêu đề Khởi động ổ USB
gốc (hd1,0)
bộ nạp dây chuyền +1
khởi động

Nguồn: https://help.ubuntu.com/community/BootFromUSB#:~:text=The%20easiest%20way%20to%20boot,key%20to%20enter%20command%20mode.

Điểm:0
lá cờ ng

Tóm lại: đó là công việc của BIOS, không phải của GRUB.

Thông thường, các máy tính sẽ có một phương pháp để đi đến trang thiết lập BIOS (hoặc UEFI), ví dụ như ThinkVantage trên ThinkPad. Trên trang thiết lập BIOS, sẽ có cài đặt thay đổi thứ tự khởi động. Đặt USB HDD lên trên cùng, sau đó khởi động lại máy tính.

Sử dụng câu trả lời ở trên nếu không có trang thiết lập BIOS (hiếm nhưng không phải là không) hoặc máy tính của bạn không thể phát hiện đĩa khởi động USB. Không bao giờ sửa đổi tệp cấu hình GRUB của bạn để làm như vậy.

Nếu bạn có thể cung cấp mô hình thực tế của máy tính của mình, tôi có thể cho bạn biết các bước thực tế. Nếu không, bạn cũng có thể kiểm tra hướng dẫn về cách thay đổi thứ tự khởi động.

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