Не получается удалить пустую директорию

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
AleZ
рядовой
Сообщения: 44
Зарегистрирован: 2017-03-23 17:24:07

Не получается удалить пустую директорию

Непрочитанное сообщение AleZ » 2018-12-03 9:54:42

zfs, mirror на 2-х дисках, после падения одного из дисков, порчи данных на оставшемся, замены нерабочего диска осталась такая проблема:

в zpool status висит:

Код: Выделить всё

 mirror-0                                      DEGRADED     0     0   172
            replacing-0                                 DEGRADED   172     0     0
              ad4p3                                     UNAVAIL      0     0     0  cannot open
              ad6p3                                     ONLINE       0     0   172
и:

Код: Выделить всё

errors: Permanent errors have been detected in the following files:

        /var/repo/rpsl
пытаюсь удалить:

Код: Выделить всё

# rmdir rpsl
rmdir: rpsl: Directory not empty
внутри rpsl:

Код: Выделить всё

# ls -la
total 0
нема даже "." и ".."

Загружаюсь в singleuser mode, монтирую /var, пытаюсь удалить: тоже самое. Кода пытаюсь создать файл в /var/repo/rpsl:

Код: Выделить всё

# touch test.txt
touch: test.txt: Unknown error: 122
Как теперь эту ерунду удалить? Подозреваю что из-за этой проблемы немогу сделать detach ad4p3

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2460 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Neus
капитан
Сообщения: 1767
Зарегистрирован: 2008-09-08 21:59:56

Не получается удалить пустую директорию

Непрочитанное сообщение Neus » 2018-12-03 10:26:21

Код: Выделить всё

rm -rf /var/repo/rpsl
«Вы никогда не сумеете решить возникшую проблему,
если сохраните то же мышление и тот же подход,
который привёл вас к этой проблеме.»
© Альберт Эйнштейн

AleZ
рядовой
Сообщения: 44
Зарегистрирован: 2017-03-23 17:24:07

Не получается удалить пустую директорию

Непрочитанное сообщение AleZ » 2018-12-03 10:27:38

это одно из очевидных решений, но:

Код: Выделить всё

# rm -rf /var/repo/rpsl
rm: /var/repo/rpsl: Directory not empty

Код: Выделить всё

# rm -rf /var/repo/rpsl/*
rm: No match.

Аватара пользователя
skeletor
майор
Сообщения: 2466
Зарегистрирован: 2007-11-16 18:22:04
Откуда: Kiev
Контактная информация:

Не получается удалить пустую директорию

Непрочитанное сообщение skeletor » 2018-12-03 11:45:05

У вас есть CKSUM ошибки и вдобавок "Permanent errors". Тут нужно выполнить scrub и дождаться, когда выполниться. Дальше уже смотреть. Можно попытаться сделать zpool clear и попробовать удалить папку.
"Винда съела дрова и резет здесь не фурычит."
"Все говорят, что у меня /dev/hands криво и я всё делаю через /dev/ass. А у меня этих фалов вообще нет!"

AleZ
рядовой
Сообщения: 44
Зарегистрирован: 2017-03-23 17:24:07

Не получается удалить пустую директорию

Непрочитанное сообщение AleZ » 2018-12-03 11:49:48

Вот scrum-ом и clear-ом уже наверно до дыр затер, а проблема всё висит. Сейчас еще раз запустил scrum. Больше беспокоит не само наличие ошибки, а то что пул в состоянии DEGRADED, оба диска online, но тот которому делал замену висит UNAVAIL и на попытку detach говорит cannot detach ad4p3: no valid replicas

Аватара пользователя
skeletor
майор
Сообщения: 2466
Зарегистрирован: 2007-11-16 18:22:04
Откуда: Kiev
Контактная информация:

Не получается удалить пустую директорию

Непрочитанное сообщение skeletor » 2018-12-03 11:56:21

До дыр его нельзя затереть. scrub - единственное, что может проверить ваш пул на ошибки и исправить их. А вы уверенны, что раздел ad4p3 - существует? Может диск переименовался? А что говорит, когда делаете detach?
"Винда съела дрова и резет здесь не фурычит."
"Все говорят, что у меня /dev/hands криво и я всё делаю через /dev/ass. А у меня этих фалов вообще нет!"

AleZ
рядовой
Сообщения: 44
Зарегистрирован: 2017-03-23 17:24:07

Не получается удалить пустую директорию

Непрочитанное сообщение AleZ » 2018-12-03 11:59:25

ad4p3 не существует уже физически, вместо него поставил ad6p3 в другой sata порт и сделал replace, по окончании ad4 так и остался висеть в unavail, про detach выше написал: cannot detach ad4p3: no valid replicas, remove тоже не помогает: cannot remove ad4p3: only inactive hot spares, cache, top-level, or log devices can be removed

AleZ
рядовой
Сообщения: 44
Зарегистрирован: 2017-03-23 17:24:07

Не получается удалить пустую директорию

Непрочитанное сообщение AleZ » 2018-12-03 12:00:48

AleZ писал(а):
2018-12-03 11:59:25
ad4p3 не существует уже физически, вместо него поставил ad6p3 в другой sata порт
как-то коряво звучит, вобщем винт в другой сата вставил, создал раздел и потом запустил replace

Аватара пользователя
Neus
капитан
Сообщения: 1767
Зарегистрирован: 2008-09-08 21:59:56

Не получается удалить пустую директорию

Непрочитанное сообщение Neus » 2018-12-03 12:07:07

AleZ писал(а):
2018-12-03 10:27:38
# rm -rf /var/repo/rpsl
rm: /var/repo/rpsl: Directory not empty
а /var/repo/rpsl это случаем не zfs dataset?
«Вы никогда не сумеете решить возникшую проблему,
если сохраните то же мышление и тот же подход,
который привёл вас к этой проблеме.»
© Альберт Эйнштейн

AleZ
рядовой
Сообщения: 44
Зарегистрирован: 2017-03-23 17:24:07

Не получается удалить пустую директорию

Непрочитанное сообщение AleZ » 2018-12-03 12:09:31

вроде не dataset:

Код: Выделить всё

# zfs mount
tank1/root                      /
tank1/root/usr                  /usr
tank1/root/opt                  /opt
tank1/root/tmp                  /tmp
tank1/root/usr/home             /usr/home
tank1/root/usr/local            /usr/local
tank1/root/usr/obj              /usr/obj
tank1/root/usr/ports            /usr/ports
tank1/root/usr/ports/distfiles  /usr/ports/distfiles
tank1/root/usr/ports/packages   /usr/ports/packages
tank1/root/usr/src              /usr/src
tank1/root/var                  /var
tank1/root/var/db               /var/db
tank1/root/var/tmp              /var/tmp
а мог он быть датасетом, поломаться и пропасть из этого списка?

snorlov
подполковник
Сообщения: 3678
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Не получается удалить пустую директорию

Непрочитанное сообщение snorlov » 2018-12-03 13:34:25

Удалите ad4 из зеркала

AleZ
рядовой
Сообщения: 44
Зарегистрирован: 2017-03-23 17:24:07

Не получается удалить пустую директорию

Непрочитанное сообщение AleZ » 2018-12-03 13:38:04

AleZ писал(а):
2018-12-03 11:59:25
про detach выше написал: cannot detach ad4p3: no valid replicas, remove тоже не помогает: cannot remove ad4p3: only inactive hot spares, cache, top-level, or log devices can be removed
не получается, с этого начинал

snorlov
подполковник
Сообщения: 3678
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Не получается удалить пустую директорию

Непрочитанное сообщение snorlov » 2018-12-03 23:07:59

Давайте тогда сначала, у вас ведь пул tank1... Вопрос как сделано зеркало...

AleZ
рядовой
Сообщения: 44
Зарегистрирован: 2017-03-23 17:24:07

Не получается удалить пустую директорию

Непрочитанное сообщение AleZ » 2018-12-04 8:27:47

FreeBSD 8.2-STABLE

loader.conf

Код: Выделить всё

zfs_load="YES"
vfs.root.mountfrom="zfs:tank1/root"
vfs.zfs.arc_max="2G"
geom_mirror_load="YES"

kern.ipc.semmns=120
rc.conf

Код: Выделить всё

...
zfs_enable="YES"
sysctl.conf

Код: Выделить всё

net.inet.icmp.icmplim=2000
kern.ipc.shmall=2097152
kern.ipc.shmmax=2147483648
kern.ipc.somaxconn=4096
в ядре чего-то с zfs связанного не вижу, подключен IPFIREWALL, ALTQ, NETGRAPH

Код: Выделить всё

# zpool status -v
  pool: tank1
 state: DEGRADED
status: One or more devices has experienced an error resulting in data
        corruption.  Applications may be affected.
action: Restore the file in question if possible.  Otherwise restore the
        entire pool from backup.
   see: http://www.sun.com/msg/ZFS-8000-8A
 scan: resilvered 35.4G in 7h21m with 8 errors on Mon Dec  3 19:45:31 2018
config:

        NAME                STATE     READ WRITE CKSUM
        tank1               DEGRADED     0     0    19
          mirror-0          DEGRADED     0     0    74
            replacing-0     DEGRADED    74     0     0
              ad4p3         UNAVAIL      0     0     0  cannot open
              ad6p3         ONLINE       0     0    74
            ad8p3           ONLINE       0     0    74

errors: Permanent errors have been detected in the following files:

        tank1/root/usr/local:<0x1ea52>
        tank1/root/usr/local:<0x1e179>
        tank1/root/usr/local:<0x1e0b0>
        /var/repo/rpsl
        tank1/root/var:<0x1b069>
        tank1/root/var:<0x1b06a>
        tank1/root/var:<0x37182>
        tank1/root/var:<0x1c6cf>

Добавилось еще ошибок, удалял ранее другие поврежденные файлы, если запустить scrub и потом остановить то уходят все кроме /var/repo/rpsl, после clear снова появляются

AleZ
рядовой
Сообщения: 44
Зарегистрирован: 2017-03-23 17:24:07

Не получается удалить пустую директорию

Непрочитанное сообщение AleZ » 2018-12-04 8:38:25

последние 2 действия: сделал scrub, потом clear

Аватара пользователя
Neus
капитан
Сообщения: 1767
Зарегистрирован: 2008-09-08 21:59:56

Не получается удалить пустую директорию

Непрочитанное сообщение Neus » 2018-12-04 8:41:43

эм.. у тебя оба диска битые?
покажи смарт с этих винтов
и еще zpool history tank1
«Вы никогда не сумеете решить возникшую проблему,
если сохраните то же мышление и тот же подход,
который привёл вас к этой проблеме.»
© Альберт Эйнштейн

AleZ
рядовой
Сообщения: 44
Зарегистрирован: 2017-03-23 17:24:07

Не получается удалить пустую директорию

Непрочитанное сообщение AleZ » 2018-12-04 8:54:29

не, оба диска новые:
1. один диск накрылся, второй кое-как работал
2. заменил тот который накрылся, синхронизировал
3. убрал тот который кое-как работал, поставил второй новый, синхронизировал

Код: Выделить всё

# zpool history tank1
History for 'tank1':
2011-10-09.17:43:39 zpool create -R /mnt/new tank1 /dev/da0p3
2011-10-09.17:49:58 zfs receive -vuFd tank1
2011-10-09.19:49:57 zpool export tank1
2011-10-09.19:52:31 zpool import -o altroot=/mnt/new/ tank1
2011-10-09.19:54:00 zpool set cachefile=/tmp/cache tank1
2011-10-09.23:18:15 zpool import -f -o altroot=/mnt -o cachefile=/boot/zfs/zpool.cache tank1
2011-10-09.23:20:08 zpool set bootfs=tank1/root tank1
2011-10-09.20:34:29 zpool attach tank1 gptid/4ae5170c-f22d-11e0-9cae-003048bcaf62 /dev/gpt/da1zfs
2011-10-09.21:16:05 zpool import -R /mnt -f tank1
2011-10-09.21:43:29 zpool scrub tank1
2018-11-20.08:09:34 zpool offline tank1 ad6p3
2018-11-20.14:30:01 zpool online tank1 ad6p3
2018-11-20.14:32:38 zpool detach tank1 ad6p3/old
2018-11-20.14:33:01 zpool online tank1 ad6p3
2018-11-20.14:34:27 zpool online tank1 ad6p3
2018-11-20.14:35:32 zpool clear tank1 ad6p3
2018-11-23.10:14:17 zpool replace tank1 ad6p3 ad8p3
2018-11-26.08:01:57 zpool detach tank1 ad6p3
2018-11-26.08:02:34 zpool scrub tank1
2018-11-26.10:30:33 zpool scrub tank1
2018-11-27.15:38:41 zpool scrub tank1
2018-11-27.16:57:27 zpool clear tank1
2018-11-27.16:57:45 zpool clear tank1
2018-11-27.17:15:41 zpool clear tank1
2018-11-27.17:25:52 zpool clear tank1
2018-11-29.09:25:59 zpool clear -F tank1
2018-11-29.10:18:30 zpool clear -F tank1
2018-11-29.10:19:06 zpool clear -F tank1
2018-11-29.10:19:06 zpool clear -F tank1
2018-11-29.10:58:19 zpool clear -F tank1
2018-11-29.11:56:54 zpool scrub tank1
2018-11-29.14:03:43 zpool set failmode=continue tank1
2018-11-29.14:19:59 zpool scrub tank1
2018-11-29.14:20:11 zpool scrub -s tank1
2018-11-29.14:26:43 zpool clear -F tank1
2018-11-29.14:26:43 zpool clear -F tank1
2018-11-29.14:27:21 zpool clear -F tank1
2018-11-29.14:27:21 zpool clear -F tank1
2018-11-29.14:28:19 zpool clear -Fn tank1
2018-11-29.14:28:26 zpool clear -Fn tank1
2018-11-29.14:28:32 zpool clear -F tank1
2018-11-29.14:28:39 zpool clear -F tank1
2018-11-29.15:35:01 zpool scrub tank1
2018-11-29.16:45:48 zpool clear -F tank1
2018-11-29.16:46:00 zpool clear -F tank1
2018-11-29.16:46:06 zpool clear -F tank1
2018-11-29.17:48:37 zpool scrub tank1
2018-11-29.18:59:01 zpool scrub tank1
2018-11-29.18:59:08 zpool scrub -s tank1
2018-11-30.12:31:27 zpool scrub tank1
2018-11-30.12:31:33 zpool scrub -s tank1
2018-11-30.12:31:50 zpool scrub tank1
2018-11-30.12:32:08 zpool scrub -s tank1
2018-11-30.12:35:41 zpool replace tank1 ad4p3 ad6p3
2018-11-30.18:19:09 zpool scrub tank1
2018-11-30.18:19:16 zpool scrub -s tank1
2018-11-30.18:25:03 zpool clear tank1
2018-12-01.09:30:35 zpool scrub tank1
2018-12-01.14:49:28 zpool scrub tank1
2018-12-01.14:49:38 zpool scrub -s tank1
2018-12-03.10:25:19 zpool scrub tank1
2018-12-03.10:25:38 zpool scrub -s tank1
2018-12-03.10:26:13 zpool scrub tank1
2018-12-03.12:24:29 zpool clear tank1

Аватара пользователя
skeletor
майор
Сообщения: 2466
Зарегистрирован: 2007-11-16 18:22:04
Откуда: Kiev
Контактная информация:

Не получается удалить пустую директорию

Непрочитанное сообщение skeletor » 2018-12-04 11:03:18

Здесь решение такое:
1) запускаем scrub, дожидаемся, когда закончится. Делаем clear (если необходимо)
2) пробуем удалить все файлы/папки, которые вылезли после п1 в "errors: Permanent errors have been detected in the following files:" (всё равно zfs их не удалось восстановить).
3) запускаем ещё раз scrub. Теперь должно быть чисто.
"Винда съела дрова и резет здесь не фурычит."
"Все говорят, что у меня /dev/hands криво и я всё делаю через /dev/ass. А у меня этих фалов вообще нет!"

AleZ
рядовой
Сообщения: 44
Зарегистрирован: 2017-03-23 17:24:07

Не получается удалить пустую директорию

Непрочитанное сообщение AleZ » 2018-12-04 11:15:03

п.1 сделан, ночью закончился clear, пробую удалить /var/repo/rpsl и получаю то что написал в самом начале темы.

Аватара пользователя
skeletor
майор
Сообщения: 2466
Зарегистрирован: 2007-11-16 18:22:04
Откуда: Kiev
Контактная информация:

Не получается удалить пустую директорию

Непрочитанное сообщение skeletor » 2018-12-04 11:18:05

что говорит

Код: Выделить всё

fuser -c /var/repo/rpsl
и

Код: Выделить всё

fuser /var/repo/rpsl
?
"Винда съела дрова и резет здесь не фурычит."
"Все говорят, что у меня /dev/hands криво и я всё делаю через /dev/ass. А у меня этих фалов вообще нет!"

AleZ
рядовой
Сообщения: 44
Зарегистрирован: 2017-03-23 17:24:07

Не получается удалить пустую директорию

Непрочитанное сообщение AleZ » 2018-12-04 11:23:16

FreeBSD 8.2-STABLE

Код: Выделить всё

# fuser -c /var/repo/rpsl
fuser: Command not found.
Но я уже по всякому смотрел, никто не держит этот каталог, даже в singleuser mode перезагружался, там такая же фигня

Аватара пользователя
skeletor
майор
Сообщения: 2466
Зарегистрирован: 2007-11-16 18:22:04
Откуда: Kiev
Контактная информация:

Не получается удалить пустую директорию

Непрочитанное сообщение skeletor » 2018-12-04 11:25:00

А как проверяете, что его никто не держит? lsof или другим способом?
"Винда съела дрова и резет здесь не фурычит."
"Все говорят, что у меня /dev/hands криво и я всё делаю через /dev/ass. А у меня этих фалов вообще нет!"

AleZ
рядовой
Сообщения: 44
Зарегистрирован: 2017-03-23 17:24:07

Не получается удалить пустую директорию

Непрочитанное сообщение AleZ » 2018-12-04 11:28:36

вот что непонятно, сделать например

Код: Выделить всё

# ls -la /etc | head -n 5
total 340
drwxr-xr-x  21 root   wheel       108 Nov 30 13:01 .
drwxr-xr-x  20 root   wheel        26 Nov 29 14:15 ..
drwxr-xr-x   3 root   wheel        11 Nov  6  2010 .hg
drwxr-xr-x   2 root   wheel         2 Jul 21  2010 X11
видно вначале "." и ".."

если сделать

Код: Выделить всё

# ls -la /var/repo/rpsl/
total 0
то ничего нет
skeletor писал(а):
2018-12-04 11:25:00
А как проверяете, что его никто не держит? lsof или другим способом?
sockstat посмотрел, да и в singleuser никакие сервисы не запущены, там то должно удалить если в обычном режиме что-то держало

Аватара пользователя
skeletor
майор
Сообщения: 2466
Зарегистрирован: 2007-11-16 18:22:04
Откуда: Kiev
Контактная информация:

Не получается удалить пустую директорию

Непрочитанное сообщение skeletor » 2018-12-04 11:32:41

Это всё косвенные признаки. Кстати, а дайте вывод команды mount.
"Винда съела дрова и резет здесь не фурычит."
"Все говорят, что у меня /dev/hands криво и я всё делаю через /dev/ass. А у меня этих фалов вообще нет!"

AleZ
рядовой
Сообщения: 44
Зарегистрирован: 2017-03-23 17:24:07

Не получается удалить пустую директорию

Непрочитанное сообщение AleZ » 2018-12-04 11:34:28

Код: Выделить всё

# mount
tank1/root on / (zfs, local, nfsv4acls)
devfs on /dev (devfs, local, multilabel)
tank1/root/usr on /usr (zfs, local, nfsv4acls)
tank1/root/opt on /opt (zfs, local, nfsv4acls)
tank1/root/tmp on /tmp (zfs, local, nfsv4acls)
tank1/root/usr/home on /usr/home (zfs, local, nfsv4acls)
tank1/root/usr/local on /usr/local (zfs, local, nfsv4acls)
tank1/root/usr/obj on /usr/obj (zfs, local, nfsv4acls)
tank1/root/usr/ports on /usr/ports (zfs, local, nfsv4acls)
tank1/root/usr/ports/distfiles on /usr/ports/distfiles (zfs, local, nfsv4acls)
tank1/root/usr/ports/packages on /usr/ports/packages (zfs, local, nfsv4acls)
tank1/root/usr/src on /usr/src (zfs, local, nfsv4acls)
tank1/root/var on /var (zfs, local, nfsv4acls)
tank1/root/var/db on /var/db (zfs, local, nfsv4acls)
tank1/root/var/tmp on /var/tmp (zfs, local, nfsv4acls)
devfs on /var/named/dev (devfs, local, multilabel)