Вопрос или проблема
Недавно я сломал свою систему из-за checkinstall. Похоже, что всё, чего не хватает, это моя папка lib.
Тем не менее, я пытался создать символическую ссылку, пока система смонтирована, и получил следующую символическую ссылку: lib -> /mnt/root/usr/lib/
Проблема, которую я вижу с этим, заключается в том, что если я не смонтировал систему по адресу /mnt/root
, эта ссылка не существует… Как мне создать её, чтобы она указывала на /usr/lib
, конечно, выполняя sudo ln -s /usr/lib /lib
просто создаст ссылку для текущей системы.
Текущая структура
(base) hutber@hutber:/mnt/root$ ll
total 116
drwxr-xr-x 20 root root 4096 Nov 28 09:25 ./
drwxr-xr-x 13 root root 4096 Nov 28 09:10 ../
-rw-r--r-- 1 root root 0 Aug 12 13:14 1
lrwxrwxrwx 1 root root 7 Feb 2 2024 bin -> usr/bin/
drwxr-xr-x 4 root root 4096 Nov 21 11:44 boot/
drwxr-xr-x 2 root root 4096 Feb 2 2024 cdrom/
drwxr-xr-x 2 root root 4096 Aug 12 13:15 .config/
drwxr-xr-x 4 root root 4096 Jan 9 2024 dev/
drwxr-xr-x 164 root root 12288 Nov 27 22:56 etc/
drwxr-xr-x 2 root root 4096 Feb 2 2024 home/
lrwxrwxrwx 1 root root 17 Nov 28 09:25 lib -> /mnt/root/usr/lib/
lrwxrwxrwx 1 root root 9 Jan 9 2024 lib64 -> usr/lib64/
drwx------ 2 root root 16384 Feb 2 2024 lost+found/
drwxr-xr-x 3 root root 4096 Feb 2 2024 media/
drwxr-xr-x 4 root root 4096 Feb 14 2024 mnt/
drwxr-xr-x 16 root root 4096 Sep 19 13:30 opt/
drwxr-xr-x 2 root root 4096 Jan 9 2024 proc/
drwx------ 13 root root 4096 Oct 8 13:00 root/
drwxr-xr-x 14 root root 4096 Feb 2 2024 run/
lrwxrwxrwx 1 root root 8 Feb 2 2024 sbin -> usr/sbin/
drwxr-xr-x 2 root root 4096 Jan 9 2024 srv/
drwxr-xr-x 2 root root 4096 Apr 18 2022 sys/
drwxrwxrwt 49 root root 20480 Nov 27 23:01 tmp/
drwxr-xr-x 13 root root 4096 Apr 11 2024 usr/
drwxr-xr-x 12 root root 4096 Feb 14 2024 var/
lib
должен быть настроен так же, как и другие символические ссылки в корневом каталоге, которые видны в размещении, которое вы опубликовали, такие как bin
или lib64
– то есть, он должен указывать на usr/lib
(важно: не /usr/lib
, а usr/lib
, потому что последнее относительное к точке, где эта файловая система смонтирована – если она смонтирована по фактическому корню, ссылка будет указывать на /usr/lib
, но если эта файловая система будет смонтирована по адресу /mnt/root
, ссылка будет указывать на /mnt/root/usr/lib
).
Итак, находясь в каталоге /mnt/root
, введите
sudo ln -s -f usr/lib lib
(параметр -f
принуждает замену текущей ссылки на новую).
Ответ или решение
Чтобы создать относительную символическую ссылку (symlink) в монтированном файловом системе, необходимо учитывать структуру вашего каталога. В данном случае требуется создать ссылку lib
, которая будет указывать на usr/lib
, сохраняя правильность относительно точки монтирования.
Шаг 1: Понимание структуры файловой системы
На основании вашей структуры, каталог /mnt/root
представляет собой корень вашей заблокированной системы. Все пути, начинающиеся с /mnt/root
, будут относительными к этому каталогу во время его монтирования. Это значит, что для создания правильной символической ссылки необходимо учитывать, как будет восприниматься эта ссылка в зависимости от точки монтирования.
Шаг 2: Как создать относительную символическую ссылку
Для создания символической ссылки lib
, указывающей на относительный путь usr/lib
, выполните следующие действия:
-
Перейдите в
mnt/root
:cd /mnt/root
-
Создайте символическую ссылку:
Используйте следующую команду:sudo ln -s -f usr/lib lib
- Опция
-s
указывает на создание символической ссылки. - Опция
-f
принудительно заменит существующую ссылку, если она уже существует.
- Опция
Шаг 3: Проверка результата
После выполнения команд необходимо убедиться, что символическая ссылка создана корректно:
ls -l
Это должно вывести что-то вроде:
lrwxrwxrwx 1 root root 7 Feb 2 2024 lib -> usr/lib/
Это указывает на то, что lib
корректно ссылается на usr/lib
.
Заключение
С помощью этих действий вы создадите символическую ссылку, которая будет работать правильно, независимо от того, где у вас смонтирована файловая система. Таким образом, если система будет смонтирована в другом месте, символическая ссылка всегда будет указывать на нативный путь к библиотекам. Это может предотвратить возможные проблемы в будущем.
Используя описанные выше шаги, вы будете уверены в правильности настройки вашей системы, что поможет избежать нежелательных последствий, похожих на те, с которыми вы уже столкнулись.