지속적인 Arch Linux USB 설치는 USB 2.0 포트에서만 (자동으로) 부팅됩니다.

지속적인 Arch Linux USB 설치는 USB 2.0 포트에서만 (자동으로) 부팅됩니다.

약어:

Arch Linux는 USB 2.0 포트를 사용하여 아무런 문제 없이 USB 장치에서 부팅할 수 있습니다. 다른 동일한 USB 장치의 특정 사용자 지정 영구 Windows 설치도 USB 2.0 또는 3.0 사용 여부에 관계없이 문제 없이 부팅됩니다.

USB 3.0을 사용하여 Arch Linux 설치를 부팅하는 것은 USB 3.0을 initramfs에 넣고, 수동으로 장치를 분리했다가 다시 연결하고, 특정 UUID에 대해 설치 명령을 수동으로 입력하고, 수동으로 Exit를 입력해야만 가능합니다.

https://i.stack.imgur.com/32Gtp.jpg


긴 테이블:

저는 NVMe -> USB 3.0 변환기 셸을 사용하여 매우 빠른 영구 USB 설치 가능 OS 설치를 생성하고 있으며 지금까지 일부 영구 Windows 설치 도구를 사용하여 큰 성공을 거두었습니다. 저는 Arch Linux(Manjaro) 설치를 통해 동일한 목표를 달성하려고 했습니다.

USB 2.0 포트를 사용할 때 GRUB가 로드되어 내 설치에 자동으로 부팅되었으며, 자체적으로 문제 없이 부팅되었습니다. 그러나 USB 3.0 포트에서 동일한 작업을 수행하면 initramfs는 더 이상 정의된 UUID를 찾을 수 없습니다 grub.cfg.

ERROR: device `UUID=b6c7[...]` not found. Skipping fsck.
mount: /new_root can't find UUID=b6c7[...].
You are now being dropped into an emergency shell.

블록 장치가 완전히 없습니다 ( 및 /dev로 표시되어야 함 )./dev/sdaX/dev/disk/by-uuid/b6c7[...]

USB 장치 자체를 분리했다가 다시 연결하면(그 동안아직initramfs 셸에서) 갑자기 모든 것이 올바르게 마운트되고(예: 장치와 모든 파티션이 아래에 나타나고 /dev이제 $ blkid각각이 올바르게 표시됨) 문제 없이 수동으로 부팅할 수 있습니다.

mount /dev/disk/by-uuid/[...] new_root  # OR: mount /dev/sda2 new_root
exit

제가 사용하고 있는 기기입니다(USB 3.0 포트에 연결한 경우).

$ lsusb -t
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 10000M
    |__ [...]
    |__ Port 4: Dev 3, If 0, Class=Mass Storage, Driver=uas, 5000M
$ lsusb
[...]
Bus 004 Device 003: ID 152d:0583 JMicron Technology Corp. / JMicron USA Technology Corp. JMS583Gen 2 to PCIe Gen3x2 Bridge
$ lsblk
NAME  MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda     8:0    0 232,9G  0 disk 
├─sda1
│       8:1    0   300M  0 part /mnt/boot/efi
└─sda2
        8:2    0 232,6G  0 part /mnt
[...]
$ lsblk -o PATH,PTTYPE,PARTTYPE,FSTYPE,PARTTYPENAME,UUID
PATH           PTTYPE PARTTYPE                             FSTYPE PARTTYPENAME                 UUID
/dev/sda       gpt                                                                             
/dev/sda1      gpt    c12a7328-f81f-11d2-ba4b-00a0c93ec93b vfat   EFI System                   427C-611E
/dev/sda2      gpt    0fc63daf-8483-4772-8e79-3d69d8477de4 ext4   Linux filesystem             b6c724c4-8c0f-443c-b596-e909ef18da76
[...]

내가 지금까지 시도한 것 :

  • 설치 linux-firmware-qlogicupd72020x-fw설치 중 오류 감소mkinitcpio
  • 강제 uas usb_storage xhci_pci xhci_hcd모듈 로딩/etc/mkinitcpio.conf
  • /etc/mkinitcpio.confHOOKS를 다음에 설명된 대로 재배열합니다.https://wiki.archlinux.org/title/Install_Arch_Linux_on_a_removable_medium( block그리고 keyboard후크앞으로후크 autodetect)
  • "fallback" initramfs로 부팅합니다( autodetect활성화되어서는 안 되며 이미 모든 모듈에 내장되어 있어야 합니다. 그렇죠?)

모두 실패했습니다.

initramfs에 직접 던져진 후 적어도 일부 모듈이 로드된 것으로 나타납니다.

$ lsmod   
usbhid
xhci_pci
xhci_pci_renesas
uas
usb_storage
[...]

mkinitcpio:

$ cat /etc/mkinitcpio.conf
MODULES="uas usb_storage xhci_pci xhci_hcd"
[...]
HOOKS="base udev modconf block keyboard autodetect keymap consolefont plymouth filesystems fsck"
[...]
$ mkinitcpio -P
==> Building image from preset: /etc/mkinitcpio.d/linux61.preset: 'default'
  -> -k /boot/vmlinuz-6.1-x86_64 -c /etc/mkinitcpio.conf -g /boot/initramfs-6.1-x86_64.img --microcode /boot/amd-ucode.img --microcode /boot/intel-ucode.img
==> Starting build: '6.1.22-1-MANJARO'
  -> Running build hook: [base]
  -> Running build hook: [udev]
  -> Running build hook: [modconf]
  -> Running build hook: [block]
==> WARNING: Possibly missing firmware for module: 'wd719x'
==> WARNING: Possibly missing firmware for module: 'aic94xx'
  -> Running build hook: [keyboard]
  -> Running build hook: [autodetect]
  -> Running build hook: [keymap]
  -> Running build hook: [consolefont]
==> WARNING: consolefont: no font found in configuration
  -> Running build hook: [plymouth]
  -> Running build hook: [filesystems]
  -> Running build hook: [fsck]
==> Generating module dependencies
==> Creating gzip-compressed initcpio image: '/boot/initramfs-6.1-x86_64.img'
==> Image generation successful
==> Building image from preset: /etc/mkinitcpio.d/linux61.preset: 'fallback'
  -> -k /boot/vmlinuz-6.1-x86_64 -c /etc/mkinitcpio.conf -g /boot/initramfs-6.1-x86_64-fallback.img -S autodetect --microcode /boot/amd-ucode.img --microcode /boot/intel-ucode.img
==> Starting build: '6.1.22-1-MANJARO'
  -> Running build hook: [base]
  -> Running build hook: [udev]
  -> Running build hook: [modconf]
  -> Running build hook: [block]
==> WARNING: Possibly missing firmware for module: 'wd719x'
==> WARNING: Possibly missing firmware for module: 'aic94xx'
  -> Running build hook: [keyboard]
  -> Running build hook: [keymap]
  -> Running build hook: [consolefont]
==> WARNING: consolefont: no font found in configuration
  -> Running build hook: [plymouth]
  -> Running build hook: [filesystems]
  -> Running build hook: [fsck]
==> Generating module dependencies
==> Creating gzip-compressed initcpio image: '/boot/initramfs-6.1-x86_64-fallback.img'
==> Image generation successful
==> Building image from preset: /etc/mkinitcpio.d/linux62.preset: 'default'
  -> -k /boot/vmlinuz-6.2-x86_64 -c /etc/mkinitcpio.conf -g /boot/initramfs-6.2-x86_64.img --microcode /boot/amd-ucode.img --microcode /boot/intel-ucode.img
==> Starting build: '6.2.9-1-MANJARO'
  -> Running build hook: [base]
  -> Running build hook: [udev]
  -> Running build hook: [modconf]
  -> Running build hook: [block]
==> WARNING: Possibly missing firmware for module: 'wd719x'
==> WARNING: Possibly missing firmware for module: 'aic94xx'
  -> Running build hook: [keyboard]
  -> Running build hook: [autodetect]
  -> Running build hook: [keymap]
  -> Running build hook: [consolefont]
==> WARNING: consolefont: no font found in configuration
  -> Running build hook: [plymouth]
  -> Running build hook: [filesystems]
  -> Running build hook: [fsck]
==> Generating module dependencies
==> Creating gzip-compressed initcpio image: '/boot/initramfs-6.2-x86_64.img'
==> Image generation successful
==> Building image from preset: /etc/mkinitcpio.d/linux62.preset: 'fallback'
  -> -k /boot/vmlinuz-6.2-x86_64 -c /etc/mkinitcpio.conf -g /boot/initramfs-6.2-x86_64-fallback.img -S autodetect --microcode /boot/amd-ucode.img --microcode /boot/intel-ucode.img
==> Starting build: '6.2.9-1-MANJARO'
  -> Running build hook: [base]
  -> Running build hook: [udev]
  -> Running build hook: [modconf]
  -> Running build hook: [block]
==> WARNING: Possibly missing firmware for module: 'wd719x'
==> WARNING: Possibly missing firmware for module: 'aic94xx'
  -> Running build hook: [keyboard]
  -> Running build hook: [keymap]
  -> Running build hook: [consolefont]
==> WARNING: consolefont: no font found in configuration
  -> Running build hook: [plymouth]
  -> Running build hook: [filesystems]
  -> Running build hook: [fsck]
==> Generating module dependencies
==> Creating gzip-compressed initcpio image: '/boot/initramfs-6.2-x86_64-fallback.img'
==> Image generation successful

추가 initramfs 조사에 대한 일부 사진:https://i.stack.imgur.com/32Gtp.jpg

관련 정보