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

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

Модератор: 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/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

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

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

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

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

rm -rf /var/repo/rpsl
Physics is mathematics with the constraint of reality.
Engineering is physics with the constraint of money.

LOR захватили ситхи.
Добро пожаловать на светлую сторону!

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
майор
Сообщения: 2548
Зарегистрирован: 2007-11-16 18:22:04

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

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

У вас есть CKSUM ошибки и вдобавок "Permanent errors". Тут нужно выполнить scrub и дождаться, когда выполниться. Дальше уже смотреть. Можно попытаться сделать zpool clear и попробовать удалить папку.

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
майор
Сообщения: 2548
Зарегистрирован: 2007-11-16 18:22:04

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

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

До дыр его нельзя затереть. scrub - единственное, что может проверить ваш пул на ошибки и исправить их. А вы уверенны, что раздел ad4p3 - существует? Может диск переименовался? А что говорит, когда делаете detach?

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
капитан
Сообщения: 1977
Зарегистрирован: 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?
Physics is mathematics with the constraint of reality.
Engineering is physics with the constraint of money.

LOR захватили ситхи.
Добро пожаловать на светлую сторону!

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
подполковник
Сообщения: 3927
Зарегистрирован: 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
подполковник
Сообщения: 3927
Зарегистрирован: 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
капитан
Сообщения: 1977
Зарегистрирован: 2008-09-08 21:59:56

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

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

эм.. у тебя оба диска битые?
покажи смарт с этих винтов
и еще zpool history tank1
Physics is mathematics with the constraint of reality.
Engineering is physics with the constraint of money.

LOR захватили ситхи.
Добро пожаловать на светлую сторону!

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
майор
Сообщения: 2548
Зарегистрирован: 2007-11-16 18:22:04

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

Непрочитанное сообщение 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. Теперь должно быть чисто.

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

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

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

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

Аватара пользователя
skeletor
майор
Сообщения: 2548
Зарегистрирован: 2007-11-16 18:22:04

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

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

что говорит

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

fuser -c /var/repo/rpsl
и

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

fuser /var/repo/rpsl
?

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
майор
Сообщения: 2548
Зарегистрирован: 2007-11-16 18:22:04

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

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

А как проверяете, что его никто не держит? lsof или другим способом?

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
майор
Сообщения: 2548
Зарегистрирован: 2007-11-16 18:22:04

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

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

Это всё косвенные признаки. Кстати, а дайте вывод команды mount.

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)