Boot

ata6.00: 設置 xfermode 失敗 (err_mode=0x40) 放棄等待根文件系統設備

  • March 17, 2022

我正在嘗試使用 Windows 10(工作)和 Kali Linux(不工作)進行雙啟動。在“安裝”之後(我不確定這個術語是否正確),Kali 正在引導第一次引導並且出現了這個錯誤:

[     7.078689] ata6.00: failed to set xfermode (err_mode=0x40)
Gave up waiting for root file system device

然後它會列印出問題的最常見原因的小列表,並放入 initramfs shell(來自 BusyBox)。在這一點上,我被困在了 shell 上:我不知道我必須做什麼來引導系統,如果我必須再做一個(在撰寫本文時,第三個)全新安裝。

為了在驅動器上獲取系統(FORESEE 128GB SSD),我按照Kali 官方文件創建了一個可啟動的 USB (即使之前我使用 Balena Etcher 刻錄了 iso,所以我第一次遇到這個錯誤,然後我恢復了我的USB記憶棒和分區並從頭開始)並安裝作業系統。另一方面,Kali live 效果很好。

規格

我的電腦是 Medion Akoya p62006(網站:西班牙文英國文),所以它的大部分是 OEM(並且有某種定制啟動)。“BIOS”看起來像一個 BIOS(就像一個灰藍色的舊式 BIOS),但它聲稱是 UEFI,而且似乎我沒有引導載入程序(在 BIOS 中我可以看到一個什麼都不管理的“Windows 引導管理器”,所以當 Kali (顯然不工作) 與 Windows 一起時,PC 會自動啟動到 Windows,我不得不按 F8 進入 kali GRUB 引導載入程序。我認為 Windows 可能根本沒有將它檢測為作業系統,因為它不起作用,但我不確定)。無論如何,如果我在 Windows“msinfo32”上執行,它會說 BIOS 模式是 UEFI。

我用Google搜尋了這個問題並得出了以下原因:

  • 緩慢的啟動時間:不可能(因為我有 SSD,啟動 Windows 只需 12 秒…)
  • Kernel Bug:又不可能了(kali 2019.2的核心是最新的,是4.19什麼的)
  • SSD不兼容:我希望不是,因為那時我不知道該怎麼辦……

有人知道 xfermode 是什麼嗎?我應該嘗試什麼?

提前致謝

更新 1

我嘗試啟動到 kali 恢復模式(沒有成功),並且在同一個 initramfs shell 中再次提示我,但這次我注意到以前我忽略的一些東西:

ALERT! /dev/sdd6 does not exist. Dropping to a shell!

然後我執行以下命令來列出磁碟上的分區(在我必須使用的 shell 中,有幾個命令……我必須搜尋才能找到一些):

blkid -c /dev/null 

我大致了解了分區,並且能夠辨識出 ext4 分區是 /dev/sdc6 和交換 /dev/sdc7。

但是有一個問題,我清楚地記得,當我使用 USB 安裝程序安裝 Kali 時,它會在寫入磁碟之前向我顯示分區,而帶有 ext4 的分區是 /dev/sdd6,而交換分區是 /dev/sdd7。

這可能是一種名稱衝突嗎?也許系統檢查引導文件到 /dev/sdd6 但它應該檢查到 /dev/sdc6?

我還嘗試使用“mount”之類的命令來掛載 /dev/sdc6 並從那裡啟動,但我不能這樣做(這是我第一次使用 mount …)。如果我讓它工作,我還想找到一種在啟動時自動執行該過程的方法,或者更好的是,告訴系統使用正確的分區啟動。

更新 2

這一次我想我得到了一些結果。

我做的第一件事是從 initramfs shell 和我在 USB 上的 Kali Live 中獲取磁碟的概述,然後進行比較。

這是我在 Kali Live 中執行的命令列表:

  • 列出分區(有人讓我使用diskpart,但我不喜歡,我更喜歡gparted和以下命令)
blkid -c /dev/null
/dev/sda1: PARTLABEL="Microsoft reserved partition" PARTUUID="772f7759-ff14-4474-b280-e9a73f27c337"
/dev/sda2: LABEL="HDD" UUID="38A4B57FA4B53FE4" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="72fe8b03-5b4d-4912-a306-7f07c95d134a"
/dev/sdb1: UUID="2019-05-08-08-05-42-00" LABEL="Kali Live" TYPE="iso9660" PARTUUID="825c29ed-01"
/dev/sdb2: SEC_TYPE="msdos" UUID="6D28-4B56" TYPE="vfat" PARTUUID="825c29ed-02"
/dev/sdd1: LABEL="Ripristino" UUID="4240332640331FD9" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="e9017011-2970-430d-bbde-0373203511e8"
/dev/sdd2: UUID="7034-ABBE" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="edfd5c11-f9a0-4116-9341-c8cca78fd5be"
/dev/sdd3: PARTLABEL="Microsoft reserved partition" PARTUUID="f07bf20f-e015-4f4e-9e39-5d6c15f3eed9"
/dev/sdd4: LABEL="SSD" UUID="D01C380D1C37ECDA" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="868d10ab-7d59-4612-b5b7-09989f1b1a39"
/dev/sdd5: UUID="8CB63D4BB63D3754" TYPE="ntfs" PARTUUID="25fffadb-a834-40eb-8203-f5bf70e7a4e9"
/dev/sdd6: UUID="77b94261-8059-4070-bdd0-18253825ff78" TYPE="ext4" PARTUUID="85826a53-e4b6-496f-8ae9-293e5e5e9fa0"
/dev/sdd7: UUID="aafe6242-cc02-4722-a136-b87b1bbaa6d6" TYPE="swap" PARTUUID="e79b7378-371f-42fd-96ca-7c109d7362ea"
/dev/loop0: TYPE="squashfs"

重要提示: sda 是我的硬碟,sdb 是我的 USB,sdd 是我的硬碟(Windows 10 和某種 Kali Linux 在哪裡)

  • 列出文件系統、分區和其他資訊
df -aT
Filesystem     Type            1K-blocks    Used Available Use% Mounted on
sysfs          sysfs                   0       0         0    - /sys
proc           proc                    0       0         0    - /proc
udev           devtmpfs          8125976       0   8125976   0% /dev
devpts         devpts                  0       0         0    - /dev/pts
tmpfs          tmpfs             1630796    9968   1620828   1% /run
/dev/sdb1      iso9660           3273568 3273568         0 100% /run/live/medium
/dev/loop0     squashfs          2999296 2999296         0 100% /run/live/rootfs/filesystem.squashfs
tmpfs          tmpfs             8153972  231344   7922628   3% /run/live/overlay
overlay        overlay           8153972  231344   7922628   3% /
tmpfs          tmpfs             1630796    9968   1620828   1% /usr/lib/live/mount
/dev/sdb1      iso9660           3273568 3273568         0 100% /usr/lib/live/mount/medium
/dev/loop0     squashfs          2999296 2999296         0 100% /usr/lib/live/mount/rootfs/filesystem.squashfs
tmpfs          tmpfs             8153972  231344   7922628   3% /usr/lib/live/mount/overlay
securityfs     securityfs              0       0         0    - /sys/kernel/security
tmpfs          tmpfs             8153972   16648   8137324   1% /dev/shm
tmpfs          tmpfs                5120       0      5120   0% /run/lock
tmpfs          tmpfs             8153972       0   8153972   0% /sys/fs/cgroup
cgroup2        cgroup2                 0       0         0    - /sys/fs/cgroup/unified
cgroup         cgroup                  0       0         0    - /sys/fs/cgroup/systemd
pstore         pstore                  0       0         0    - /sys/fs/pstore
efivarfs       efivarfs                0       0         0    - /sys/firmware/efi/efivars
bpf            bpf                     0       0         0    - /sys/fs/bpf
cgroup         cgroup                  0       0         0    - /sys/fs/cgroup/cpu,cpuacct
cgroup         cgroup                  0       0         0    - /sys/fs/cgroup/freezer
cgroup         cgroup                  0       0         0    - /sys/fs/cgroup/net_cls,net_prio
cgroup         cgroup                  0       0         0    - /sys/fs/cgroup/rdma
cgroup         cgroup                  0       0         0    - /sys/fs/cgroup/memory
cgroup         cgroup                  0       0         0    - /sys/fs/cgroup/perf_event
cgroup         cgroup                  0       0         0    - /sys/fs/cgroup/blkio
cgroup         cgroup                  0       0         0    - /sys/fs/cgroup/devices
cgroup         cgroup                  0       0         0    - /sys/fs/cgroup/cpuset
cgroup         cgroup                  0       0         0    - /sys/fs/cgroup/pids
debugfs        debugfs                 0       0         0    - /sys/kernel/debug
hugetlbfs      hugetlbfs               0       0         0    - /dev/hugepages
mqueue         mqueue                  0       0         0    - /dev/mqueue
systemd-1      -                       -       -         -    - /proc/sys/fs/binfmt_misc
tmpfs          tmpfs             8153972       0   8153972   0% /tmp
binfmt_misc    binfmt_misc             0       0         0    - /proc/sys/fs/binfmt_misc
tmpfs          tmpfs             1630792      44   1630748   1% /run/user/0
gvfsd-fuse     fuse.gvfsd-fuse         0       0         0    - /run/user/0/gvfs
fusectl        fusectl                 0       0         0    - /sys/fs/fuse/connections
/dev/sdb2      vfat                  716     688        28  97% /media/root/Kali Live

*重要提示:*記住這是從 Kali Live 執行的,所以我認為除了以“/dev”開頭的所有內容之外,沒有其他重要的東西,但我可能錯了。

  • 列出安裝的設備和其他資訊
mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,nosuid,relatime,size=8125976k,nr_inodes=2031494,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=1630796k,mode=755)
/dev/sdb1 on /run/live/medium type iso9660 (ro,noatime,nojoliet,check=s,map=n,blocksize=2048)
/dev/loop0 on /run/live/rootfs/filesystem.squashfs type squashfs (ro,noatime)
tmpfs on /run/live/overlay type tmpfs (rw,noatime,mode=755)
overlay on / type overlay (rw,noatime,lowerdir=/run/live/rootfs/filesystem.squashfs/,upperdir=/run/live/overlay/rw,workdir=/run/live/overlay/work)
tmpfs on /usr/lib/live/mount type tmpfs (rw,nosuid,noexec,relatime,size=1630796k,mode=755)
/dev/sdb1 on /usr/lib/live/mount/medium type iso9660 (ro,noatime,nojoliet,check=s,map=n,blocksize=2048)
/dev/loop0 on /usr/lib/live/mount/rootfs/filesystem.squashfs type squashfs (ro,noatime)
tmpfs on /usr/lib/live/mount/overlay type tmpfs (rw,noatime,mode=755)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup2 on /sys/fs/cgroup/unified type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
efivarfs on /sys/firmware/efi/efivars type efivarfs (rw,nosuid,nodev,noexec,relatime)
bpf on /sys/fs/bpf type bpf (rw,nosuid,nodev,noexec,relatime,mode=700)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)
cgroup on /sys/fs/cgroup/rdma type cgroup (rw,nosuid,nodev,noexec,relatime,rdma)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,pagesize=2M)
mqueue on /dev/mqueue type mqueue (rw,relatime)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=44,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=13614)
tmpfs on /tmp type tmpfs (rw,nosuid,nodev,relatime)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,relatime)
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,size=1630792k,mode=700)
gvfsd-fuse on /run/user/0/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=0,group_id=0)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
/dev/sdb2 on /media/root/Kali Live type vfat (rw,nosuid,nodev,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,showexec,utf8,flush,errors=remount-ro,uhelper=udisks2)
  • 將 /etc/fstab 的內容列印到標準輸出(我讀到它是包含每次啟動後掛載它們所需的所有設備分區資訊的文件)
cat /etc/fstab
/etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sdd6 during installation
UUID=77b94261-8059-4070-bdd0-18253825ff78 /               ext4    errors=remount-ro 0       1
# /boot/efi was on /dev/sdd2 during installation
UUID=7034-ABBE  /boot/efi       vfat    umask=0077      0       1
# swap was on /dev/sdd7 during installation
UUID=aafe6242-cc02-4722-a136-b87b1bbaa6d6 none            swap    sw              0       0
/dev/sr0        /media/cdrom0   udf,iso9660 user,noauto     0       0

**備註:**正如我已經說過的,我也在 initramfs shell 中執行這些命令,但我無法複製和粘貼,所以直到現在我手動複製了我在那個終端中看到的內容。然而,當我在編寫這個更新時,我意識到我可以將命令的輸出重定向到我的 HDD(一旦我掛載它,現在我知道了……);問題是我的鍵盤很糟糕,沒有“>”、“<”鍵,所以我無法將輸出重定向到文件(這也很難編碼,我通常從網際網路複製並粘貼符號需要,但使用 initramfs 情況並非如此,現在我必須找到另一個鍵盤或至少獲得“>”符號的方法)。我想我明天會添加輸出。最終我知道了命令“tee”並用它代替了“>”,

這是我在 initramfs shell 中執行的命令列表:

  • 列出分區
blkid -c /dev/null
/dev/sda1: PARTLABEL="Microsoft reserved partition" PARTUUID="772f7759-ff14-4474-b280-e9a73f27c337"
/dev/sda2: LABEL="HDD" UUID="38A4B57FA4B53FE4" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="72fe8b03-5b4d-4912-a306-7f07c95d134a"
/dev/sdc1: LABEL="Ripristino" UUID="4240332640331FD9" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="e9017011-2970-430d-bbde-0373203511e8"
/dev/sdc2: UUID="7034-ABBE" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="edfd5c11-f9a0-4116-9341-c8cca78fd5be"
/dev/sdc3: PARTLABEL="Microsoft reserved partition" PARTUUID="f07bf20f-e015-4f4e-9e39-5d6c15f3eed9"
/dev/sdc4: LABEL="SSD" UUID="D01C380D1C37ECDA" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="868d10ab-7d59-4612-b5b7-09989f1b1a39"
/dev/sdc5: UUID="8CB63D4BB63D3754" TYPE="ntfs" PARTUUID="25fffadb-a834-40eb-8203-f5bf70e7a4e9"
/dev/sdc6: UUID="77b94261-8059-4070-bdd0-18253825ff78" TYPE="ext4" PARTUUID="85826a53-e4b6-496f-8ae9-293e5e5e9fa0"
/dev/sdc7: UUID="aafe6242-cc02-4722-a136-b87b1bbaa6d6" TYPE="swap" PARTUUID="e79b7378-371f-42fd-96ca-7c109d7362ea"
  • 將 /etc/fstab 的內容列印到標準輸出:在這種情況下,沒有輸出,文件是空的,所以我認為它沒有被 initramfs 使用。特別是我認為它依賴於 /proc/partitions 和 /dev/disk 裡面的內容。

接下來,我執行“set”以查看設置了哪些變數,並嘗試從 /dev/sdd6(Kali 列出的那個)更改 ROOT 變數(設置為:“ROOT=’/dev/sdd6’”)分區Live)到 /dev/sdc6(Kali 在 SDD 上列出的那個)。

我執行“set ROOT=’/dev/sdc6’”,它沒有返回錯誤但什麼也沒做,然後我嘗試“set ROOT=’/dev/sdd5’”(可以肯定)並且變數改變了!所以我意識到該命令有效,但由於某些原因“/dev/sdc6”並不好(儘管“blkid -c /dev/null”可以說相反)。

然後,我已經能夠使用“mount -t ext4 /dev/sdd6 /mnt”掛載我的/dev/sdd6(沒有/mnt,所以我使用“mkdir /mnt”來創建它),我終於看到了我所愛的Kali Linux 文件系統!為了檢查它是否真的是 Kali,我使用了(在 /mnt 中)“find -executable -type f -name maltego”(還有,我還檢查了其他一些 Kali 工具)。過了一會兒,我嘗試在“/”中掛載/dev/sdd6,但即使命令成功(沒有錯誤)也沒​​有任何改變。此時,我的目的是啟動 GNOME Kali 桌面,然後想辦法讓它永久保存。我最終發現“gnome-session”命令不起作用,它返回了一個關於“絕對”路徑中失去文件的錯誤(它列印了“第 16 行:/usr/something/gnome-something_else is missing”,但它應該尋找“./usr/something/gnome-something_else”,因為文件系統的根在 /mnt 而不是 /; 這就是我的想法,明天我會添加確切的錯誤)。

我接下來要做的是以下兩件事之一:

  • 找到某種方法在 / 中掛載 /dev/sdd6 並執行 GNOME
  • 使用 tty 創建一個新會話,希望我可以在該 / 中掛載 /dev/sdd6 並執行 GNOME

我的理論

Kali Live 發誓 /dev/sdd6 存在,Kali SDD Persistent 認為它不存在,但同時,當某些命令不能正常工作時,它會自相矛盾(參見上面的 set 命令)。就我個人而言,我相信 Kali Live 終端(和 gparted),這就是為什麼我認為我正在處理核心錯誤(也許)並且需要解決方法或修改一些非常深的東西。

initramfs 的奧秘

我以前從未使用過這個 shell,我有一些疑問。

我問自己的第一件事是它怎麼可能出現?我的意思是,每次我嘗試啟動到 Kali 時,它都會聲明沒有 /dev/sdd6,所以沒有 ext4 分區,所以沒有 Kali,沒有 Linux,但無論如何,這個東西每次都會出現(在系統等待一段時間之後開機時間)。我問我這個終端在哪裡執行(哪個分區)或儲存在哪裡。我使用df -h .(在“/”中)並且df -h /它返回了df: /: can't find mount point.

然後我注意到它有自己的文件系統!或者非常相似的東西,如果你“ls /”你得到一個普通 Linux 擁有的所有目錄(bin、sbin 等、usr、…),它沒有/mnt,並且缺少一些其他的。它還有一個 Kali 沒有的“init”文件夾,順便說一句,它有“initrd.img”和“initrd.ing.old”,我想每次啟動時都會載入一種 img(Windows 有時有一個dir 名為“Windows.old”,用於舊的 Windows 作業系統),我很感興趣,因為我嘗試執行busybox switch_root.

同樣重要的是似乎與驅動器和有關它們的命令的衝突(比較setblkid/proc/partitions上面的響應)。

我讀到有人遇到與我類似的問題,他們只用 initamfs 中的幾個命令就解決了問題,然後重新啟動,我嘗試了很多次(例如:set、switch_root、start

$$ number $$, gnome-session 等)但是在我的initramfs 中你不能創建任何永久性的東西:比如文件夾和文件(但目前這不是問題,我只想啟動一次……),但如果您可以設置一個變數,export它只是目前會話,下次變數相同。 註釋 為什麼我不能使用“添加評論”?

更新 3

我進入了卡利根

經過大量的時間和努力,我能夠將 shell 的根更改為新的文件系統根(我的 SSD 上的 Kali),所以我離開了 initramfs(但是,在我看來,“不完全”)。我跑(很多次):

mkdir /mnt
mount -t ext4 /dev/sdc6 /mnt      #As you can see I had to use the "wrong" notation with "sdc6" in place of "sdd6"
chroot /mnt                       #Surprisingly for me, it worked! Although I wanted to run busybox switch_root, but it returns error and prints the command syntax every time

然後我嘗試執行gnome-session,startx(x是一個數字)和其他人來獲得GUI,但沒有運氣。特別是,我似乎沒有任何 startx 命令(我執行find -executable -type f -name *start*但沒有任何有用的結果出來)。

gnome-session命令以這種格式顯示了許多錯誤(我無法複製它們,但我有照片):

** (gnome-session-failed:[some number]): WARNING **: [num1]:[num2]:[num3]:[num4]: Cannot open display:
[Some Error: Terminated, Unable to init sever, etc...]

還有類似的事情:

[num1]:[num2]:[num3]:[num4] Gtk: cannot open display! (the first part was green, the second red)
(tracker-miner-fs:[num4]): GLib-GObject-CRITICAL **: [num1]:[num2]:[num3]:[num4]: g_object_unref: assertion 'G_IS_OBJECT (object)' failed

在 initramfs 中,我檢索了一些其他資訊:

cat /proc/partitions
major minor  #blocks  name

  8        0  976762584 sda
  8        1      16367 sda1
  8        2  976744448 sda2
  8       32  125034840 sdc
  8       33     307200 sdc1
  8       34     101376 sdc2
  8       35     131072 sdc3
  8       36   99019776 sdc4
  8       37     896000 sdc5
  8       38   21680128 sdc6
  8       39    2896896 sdc7
 11        0    1048575 sr0

我將它與 Kali Live 進行了比較(區別很容易看出):

cat /proc/partitions
major minor  #blocks  name

  8        0  976762584 sda
  8        1      16367 sda1
  8        2  976744448 sda2
  8       32  125034840 sdd
  8       33     307200 sdd1
  8       34     101376 sdd2
  8       35     131072 sdd3
  8       36   99019776 sdd4
  8       37     896000 sdd5
  8       38   21680128 sdd6
  8       39    2896896 sdd7
 11        0    1048575 sr0

我還將它複製到/proc/partitions我在 SSD 上的 Kali 中(我認為 gnome-session 錯過了要啟動的分區位置,並且輸出以某種方式發生了變化)

然後我執行這個:

ls /dev/disk/by-path
pci-0000:00:14.0-usb-0:4:1.0-scsi-0:0:0:0
pci-0000:00:14.0-usb-0:4:1.0-scsi-0:0:0:0-part1
pci-0000:00:14.0-usb-0:4:1.0-scsi-0:0:0:0-part2
pci-0000:00:14.0-usb-0:8:1.0-scsi-0:0:0:0
pci-0000:00:17.0-ata-1
pci-0000:00:17.0-ata-1-part1
pci-0000:00:17.0-ata-1-part2
pci-0000:00:17.0-ata-2
pci-0000:00:17.0-ata-6
pci-0000:00:17.0-ata-6-part1
pci-0000:00:17.0-ata-6-part2
pci-0000:00:17.0-ata-6-part3
pci-0000:00:17.0-ata-6-part4
pci-0000:00:17.0-ata-6-part5
pci-0000:00:17.0-ata-6-part6
pci-0000:00:17.0-ata-6-part7

我很絕望,我試圖用 pci-0000:00:17.0-ata-6 切換 pci-0000:00:17.0-ata-6-part6 並成功重命名它們,但它沒有用,因為我的initramfs 啟動後不保留數據。

接下來做什麼

  • 讀到除了 Fedora Media Writer 之外的所有程序都無法在 UEFI 模式下為 BIOS 創建可引導 USB,所以我可以試試這個(無論如何我認為這不是問題)
  • 我想使用 Kali 桌面,這次我可以訪問 Kali 文件系統和命令,所以我只需要一些線索來真正讓 GNOME 工作
  • 我幾乎可以肯定核心有問題,所以有人可以告訴我如何更新它或如何確保它在啟動時檢測到 /dev/sdd6 嗎?

更新 4

卡利啟動!(但不是那麼好..)

我更換了 initrd.img-

$$ etc.. $$在 Kali SSD Persistent 的 /boot 中使用來自 Kali Live 的 SSD,在我的 BIOS 中,我像往常一樣按 F8 啟動到 Kali,這一次它工作了,所以我認為問題已解決(呵呵!)。它列印了

[     7.078689] ata6.00: failed to set xfermode (err_mode=0x40)

然後螢幕變黑然後kali出現(我知道通常kali顯示更多的文字,所以我有點困惑,但無論如何都工作了……)

我更改了啟動順序,以便 Kali 是第一個啟動然後重新啟動的。這一次我很自信,但又一次:

[     7.078689] ata6.00: failed to set xfermode (err_mode=0x40)
Gave up waiting for root file system device

所以我意識到它只能通過在啟動時按 F8 來工作(為什麼會這樣?)。這是一個解決方案,但並不令人滿意。此外,我不是 100% 每次我用 F8 啟動它都會工作。

我什至嘗試過binwalk GenuineIntel.bin(在提取 initrd.img-

$$ etc.. $$),但沒有輸出。我編輯了initinitramfs / 中的一行文件,該行是 export ROOT=

我把它改成了

export ROOT=/dev/sdc6

因為即使我認為這是錯誤的名稱,我也必須使用它在 initramfs 中掛載該分區,所以我認為 initramfs 只辨識該名稱而不是 /dev/sdd6。

然後我重新安裝了 Kali(這是第三次),用我的 USB 刷了 Fedora Media Writer,我回到了初始狀態(開始問題的錯誤)。

如果有人需要它:我已經能夠在幾年前解決這個問題,解決方案很簡單。我使用 Rufus 使 USB 可啟動,使用 Rufus 你可以在兩種模式下做到這一點:ISO 模式和 DD 模式。ISO模式是“推薦”模式,通過選擇DD模式,我安裝Kali就好了

引用自:https://unix.stackexchange.com/questions/530318