Восстановить перемещение корневого каталога рекурсивно

У меня Ubuntu Desktop используется в качестве сервера. Этим утром я случайно перенес весь свой корень в ../

 root@server:/tmp/UPS/up/upsilon# mv /* ../
 mv: impossibile spostare "/dev" in "../dev": Dispositivo o risorsa occupata
 mv: impossibile spostare "/proc" in "../proc": Dispositivo o risorsa occupata
 mv: impossibile spostare "/run" in "../run": Dispositivo o risorsa occupata
 mv: impossibile spostare "/sys" in "../sys": Dispositivo o risorsa occupata
 mv: impossibile spostare "/tmp" in una sottodirectory di sé stessa, "../tmp"
 root@server:/tmp/UPS/up/upsilon# ls
 -bash: /bin/ls: No such file or directory

Я был подключен удаленно в SSH. Теперь я не могу получить доступ больше. Я не могу также просмотреть Webmin.

Итак, теперь я не могу перезагрузить систему правильно? И я должен физически получить доступ к системной консоли и набрать эту команду:

../bin/mv ../{bin,boot,etc,home,media,mnt,opt,root,sbin,selinux,usr,var,vmlinuz*}

право?

Куда ушел мой корневой каталог и как его вернуть? Будет ли работать вышеуказанная команда?

3 ответа

Решение

Вы не переместили корневой каталог (вы не можете), вы просто переместили почти все в нем в родительский каталог, где бы вы ни находились.

Чтобы усложнить вещи, вы также переехали mv так что это не будет работать, как ожидалось. Следующее должно работать (до тех пор, пока вы не перезагрузились после того, как спросили об этом!), Если вы все еще находитесь в той же директории, в которой находились, когда выключили свой последний mv.

../bin/mv ../{bin,boot,etc,home,media,mnt,opt,root,sbin,selinux,usr,var,vmlinuz*} /

Если у вас их нет, просто опустите их в команду.

И если у вас нет доступа (вы не сможете выполнить новый вход в систему, пока все в этом состоянии), вам придется монтировать файловую систему извне (через что-то вроде LiveCD и монтировать файловую систему, а затем перемещать файлы в правильном месте. Ответ Брайама должен помочь с этой частью.

Если вы уже перезагрузились или вышли из системы, вы можете загрузить LiveCD/USB, чтобы исправить вашу систему. Я собираюсь пропустить часть, где вы знаете, как создать Live-систему и загрузиться с Ubuntu (альтернативный cd также работает, просто перейдите в корневую оболочку):

Сначала вы должны смонтировать свою систему куда-нибудь, так:

mkdir /mnt/system
mount /dev/sda1 /mnt/system

Я предполагаю, что /dev/sda1 твой корень Если вы отделились /bin или же /usr Вы должны также смонтировать их:

mount /dev/sda2 /mnt/system/usr

Теперь вы должны прибыть в каталог, которым вы были до катастрофы:

cd /mnt/system/tmp/UPS/up/upsilon

Теперь с командой, которую дал Оли, которую я скопирую с явным видом:

mv ../{bin,boot,etc,home,media,mnt,opt,root,sbin,selinux,usr,var,vmlinuz*} /mnt/system/

Теперь убедитесь, что все в порядке:

# ls /mnt/system/
bin boot etc home media mnt opt root sbin selinux usr var etc...

Перезагрузите систему и будьте более осторожны в будущем.

У меня была эта проблема, я обнаружил, что мне нужно вызвать команду mv следующим образом:

/tmp/UPS/up/lib/ld-linux-x86-64.so.2 --library-path /tmp/UPS/up/lib/ /tmp/UPS/up/test/bin/mv /tmp/UPS/up/{bin,boot,etc,home,media,mnt,opt,root,sbin,selinux,usr,var} /

Надеюсь, что это помогает другим.

Другие вопросы по тегам