Debian:檔案未顯示在磁碟機中,但顯示在 LiveCD 中

Debian:檔案未顯示在磁碟機中,但顯示在 LiveCD 中

我安裝了 xfce4-Buster-Debian,在安裝過程中,我選擇了手動分割區,並選擇將包含一些檔案的磁碟機安裝到特定位置。對於該驅動器,我當然選擇不格式化該驅動器。將 Debian 安裝在不同的分割區上並啟動到作業系統後,我在安裝目錄中看不到任何檔案。該目錄顯示在我期望的位置,但是當我 cd 進入該目錄時ls -la,該目錄中沒有任何內容。但根據 GParted 的說法,資料正在佔用空間。

我啟動到 LiveCD,文件確實顯示在那裡。

造成這種行為的可能原因有哪些?


編輯:我提供以下輸出

$ 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>
UUID=ff57c2c0-e962-4578-be1b-0500f82bceb3 /home/go       ext4    defaults,noatime 0 2
UUID=16DB-7490                            /boot/efi      vfat    defaults,noatime 0 2
UUID=6ff37539-9538-40d4-b3bf-094f44e8410f /              ext4    defaults,noatime 0 1
UUID=5fb9e868-f3c7-47a5-96da-7ccf13bfd998 /home          ext4    defaults,noatime 0 2
UUID=25a379fc-3db3-4f58-813b-a914d147e7c2 swap           swap    defaults,noatime 0 2
$ lsblk -f
NAME        FSTYPE  LABEL                     UUID                                 FSAVAIL FSUSE% MOUNTPOINT
sda         iso9660 d-live nf 10.6.0 xf amd64 2020-09-26-13-15-55-00                              
├─sda1      iso9660 d-live nf 10.6.0 xf amd64 2020-09-26-13-15-55-00                     0   100% /media/marius/d-live nf 10.6.0
└─sda2      vfat    d-live nf 10.6.0 xf amd64 DEB0-0001                                           
sdb                                                                                               
└─sdb1      vfat                              F802-75AF                              27,9G     3% /media/marius/F802-75AF
mmcblk0                                                                                           
└─mmcblk0p1 ext4                              ff57c2c0-e962-4578-be1b-0500f82bceb3   53,8G     1% /home/go
nvme0n1                                                                                           
├─nvme0n1p1 ext4                              6ff37539-9538-40d4-b3bf-094f44e8410f   58,5G    18% /
├─nvme0n1p2 ext4                              5fb9e868-f3c7-47a5-96da-7ccf13bfd998  101,4G    15% /home
├─nvme0n1p3 swap                              25a379fc-3db3-4f58-813b-a914d147e7c2                [SWAP]
└─nvme0n1p4 vfat                              16DB-7490                             294,3M     2% /boot/efi

該設備是mmcblk0p1並且安裝點是/home/go


編輯2:

$ stat -c '%n - %i' / /home /home/go
/ - 2
/home - 2
/home/go - 2

答案1

我本來打算要求您提供 的輸出stat -f -c '%n - %i' / /home /home/go,這將給出目錄下的檔案系統的裝置識別碼。 (如果它們都不同,我們就會知道它們是不同的檔案系統。)但是,stat -c '%n - %i' / /home /home/go我給您的命令的輸出足以滿足我們的目的 - 它告訴我們所有三個目錄的根 inode 是相同的,即 2 ,這也意味著它們必須是不同的檔案系統。

鑑於您可以在 LiveCD 中看到這些文件,但在實際的引導環境中看不到這些文件,我建議您將文件打開,並/在掛載時屏蔽文件所在的目錄。/home/home/go

以 root 身分尋找文件,如下所示

mkdir /mnt/root             # Create temporary directory mountpoint
mount --bind / /mnt/root    # Make /mnt/root identical to /
ls /mnt/root/home           # List area hidden by /home
ls /mnt/root/home/go        # List area hidden by /home/go

如果任一ls命令產生文件,那麼您將不會在相應的ls /homels /home/go.假設 - 但僅當 - 的ls命令/mnt/home/...顯示文件,但相應的命令/home/...不顯示文件,那麼您可以使用這兩個段之一或兩者將文件移動到正確的位置。

將所有檔案從封鎖檔案移至/home/go真實檔案/home/go

(
shopt -s dotglob
cp -au /mnt/root/home/go/. /home/go && rm -rf /mnt/root/home/go/*
)

將所有檔案從封鎖檔案移至/home真實檔案/home

(
shopt -s dotglob
cp -au /mnt/root/home/. /home && rm -rf /mnt/root/home/*
)

我使用了cp && rmnot ,mv因為我不希望命令在合併過程中失敗。該cp -u標誌阻止舊文件覆蓋新文件。

答案2

/homeis 是一個 ext4 分割區(或其中一部分)的掛載點,其設計目的是讓所有使用者都有一個主目錄,例如/home/userxetc

但是,您同時希望用作/home/go第二個分割區的安裝點(在另一台裝置上!)。我強烈建議您將“go”分割區掛載到其他地方/mnt/go。這樣您的資料就不會與您的安裝點混淆。

例如,我有一個專門用於視訊檔案的大分區。這是不是安裝在 上/home/video,但安裝在 上/mnt/video

我的 GUI 文件管理器對這種安排非常滿意。

相關內容