Debian: 파일이 드라이브에는 표시되지 않지만 LiveCD에는 표시됩니다.

Debian: 파일이 드라이브에는 표시되지 않지만 LiveCD에는 표시됩니다.

xfce4-Buster-Debian을 설치했고 설치 중에 수동 파티셔닝을 선택하고 일부 파일이 포함된 드라이브를 특정 위치에 마운트하도록 선택했습니다. 이 드라이브의 경우 당연히 드라이브를 포맷하지 않기로 결정했습니다. 다른 파티션에 데비안을 설치하고 OS로 부팅한 후, 설치 디렉터리에 어떤 파일도 보이지 않습니다. 디렉토리는 내가 예상한 위치에 나타나지만, 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

아래와 같이 루트로 파일을 찾습니다.

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/gols/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을 사용했습니다 . mvcp -u플래그는 오래된 파일이 새 파일을 덮어쓰는 것을 방지합니다.

답변2

/home/home/userxis는 모든 사용자가 다음 과 같은 홈 디렉토리를 가질 수 있도록 설계된 ext4 파티션(또는 그 일부)의 마운트 지점입니다.

/home/go그러나 이를 두 번째 파티션(다른 장치에서!)에 대한 마운트 지점 으로도 사용하려고 합니다 . "go" 파티션을 다른 곳에 마운트하는 것이 좋습니다 /mnt/go. 이렇게 하면 데이터가 마운트 지점과 혼동되지 않습니다.

예를 들어 비디오 파일 전용의 큰 파티션이 있습니다. 이것은아니요에 설치되었지만 /home/video에 설치되었습니다 /mnt/video.

내 GUI 파일 관리자는 이 배열에 매우 만족합니다.

관련 정보