
Я установил xfce4-Buster-Debian, и во время установки я выбрал ручное разбиение на разделы и выбрал монтирование диска, содержащего некоторые файлы, в определенное место. Для этого диска я, конечно, решил не форматировать диск. После установки Debian на другой раздел и загрузки ОС я не вижу файлов в монтированном каталоге. Каталог отображается в том месте, где я ожидал, но когда я перехожу в него с помощью cd и ls -la
, в этом каталоге ничего нет. Но согласно GParted, данные занимают пространство.
Я загрузился с LiveCD, и файлы там появились.
Каковы возможные причины такого поведения?
EDIT: Я предоставляю следующий вывод
$ 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 /home
или ls /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 && rm
вместо , mv
потому что не хочу, чтобы команда не сработала во время слияния. cp -u
Флаг останавливает перезапись старых файлов новыми.
решение2
/home
это точка монтирования одного раздела ext4 (или его части) и спроектирована таким образом, чтобы у всех пользователей был домашний каталог, например и /home/userx
т. д.
Однако вы одновременно хотите использовать /home/go
в качестве точки монтирования второй раздел (на другом устройстве!). Я настоятельно рекомендую вам смонтировать раздел 'go' в другом месте /mnt/go
. Таким образом, ваши данные не будут путаться с вашими точками монтирования.
Например, у меня есть большой раздел, отведенный под видеофайлы. Этонетсмонтирован на /home/video
, но смонтирован на /mnt/video
.
Мой файловый менеджер с графическим интерфейсом пользователя вполне доволен таким решением.