Я собираюсь принять (очень опасный, я знаю), что Вы заканчиваетесь пространство на своем основном разделе и добавили новый диск.
/dev/sda1 / загружают/dev/sda2//dev/sdb1 / var
Принятие, которое Вы скопировали по / папке var на sda2 к разделу на sdb1, можно смонтировать sda2 во второй раз:
mount /dev/sda2 /root/tmp
cd /root/tmp/var
rm -rf *
Вы находитесь теперь в старом '/var' каталог, можно проверить создание файла, это не будет находиться под / var, но это будет там находиться под/root/tmp/var
Теперь можно безопасно удалить файлы onder/root/tmp/var и umount tmp.
Отказ от ответственности: Никакая гарантия, используйте на Ваш собственный риск, не доверяйте мне (или кто-либо еще в Интернете) берут резервные копии!
Именно, потому что Вы находитесь в каталоге, Вы монтируетесь в. Таким образом, Вы все еще ссылаетесь на содержание исходного каталога через исходный каталог.
Вы видите этот точно тот же самый эффект, когда Вы cd
в каталог, который затем удален.
$ pwd
/home/saml/dirtodel
$ rmdir ../dirtodel
$ pwd
/home/saml/dirtodel
Как это может быть? Я все еще в каталоге, который был просто удален. Что продолжается?
В оболочке это тихо cd
кому: /home/saml/dirtodel
, выполните эту команду для обнаружения PID (идентификатор процесса), поскольку это - сессия удара:
$ echo $$
32619
Теперь, если Вы входите в/proc каталог того PID, мы видим то, что продолжается немного:
$ ls -l /proc/32619/ | head -10
total 0
dr-xr-xr-x 2 saml saml 0 May 18 07:40 attr
-r-------- 1 saml saml 0 May 18 07:40 auxv
-r--r--r-- 1 saml saml 0 May 18 07:40 cgroup
--w------- 1 saml saml 0 May 18 07:40 clear_refs
-r--r--r-- 1 saml saml 0 May 18 02:06 cmdline
-rw-r--r-- 1 saml saml 0 May 18 07:40 comm
-rw-r--r-- 1 saml saml 0 May 18 07:40 coredump_filter
-r--r--r-- 1 saml saml 0 May 18 07:40 cpuset
lrwxrwxrwx 1 saml saml 0 May 18 07:31 cwd -> /home/saml/dirtodel (deleted)
При списке первых нескольких файлов мы видим названный тот cwd
, который обозначает текущий рабочий каталог. Заметьте, что это указывает на наше старое название и что это было "удалено".
Таким образом, это дает нам немного понимания, что продолжается, но где мы?
Интересно, если мы cd /proc/32619/cwd
мы можем изменить каталоги на это волшебное местоположение. Если мы работаем df .
команда мы видим, что находимся все еще на /home
раздел:
$ pwd
/proc/32619/cwd
[saml@grinchy cwd]$ df -h .
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_grinchy-lv_home
245G 125G 108G 54% /home
Таким образом, что продолжается?
Даже при том, что наш каталог был удален, inode, который составляет его, не был. Вы видите это с stat
команда. В оболочке это все еще в каталоге, который мы удалили:
$ stat .
File: `.'
Size: 0 Blocks: 8 IO Block: 4096 directory
Device: fd02h/64770d Inode: 10486487 Links: 0
Access: (0775/drwxrwxr-x) Uid: ( 500/ saml) Gid: ( 501/ saml)
Access: 2013-05-18 07:48:52.674081972 -0400
Modify: 2013-05-18 07:48:44.378900038 -0400
Change: 2013-05-18 07:50:54.189747426 -0400
Мы видим, что существует все еще inode, 10486487, используем нами, но заметьте, что он имеет 0 ссылок. Это - то, что происходит, когда что-то добирается, удалил. Все ссылки на него удалены, и таким образом, ОС может затем удалить этот paritcular inode.