x-systemd.growfs в fstab Ubuntu Raspiberry pi 4

Я установил рабочий стол Ubuntu 20.10 на Raspberry pi 4. Проблема в том, что я установил его на твердотельный накопитель, и я хочу изменить размер корневого раздела и оставить от 11 до 12 ГБ свободного места в конце раздела в качестве избыточного выделения ресурсов, но каждый раз, когда я изменяю размер и перезагружаю раздел, он становится заполненным. Я заметил x-systemd.growfs в fstab я предполагаю, что это виновник. Как я могу сжать свой раздел, а также добавить «noatime» в fstab. Заранее спасибо.

-121--891632- Как правильно обращаться с lib-symlinks в современных версиях Ubuntu? Предположим, что у меня есть некоторые проблемы с динамической привязкой. Возможно, имеется локальная (или скопированная вручную) библиотека, которая переопределяет библиотеку из APT. Библиотека не помещена в/usr/local/lib,...

Предположим, что у меня есть некоторые проблемы с динамическим связыванием.
Возможно, имеется локальная (или скопированная вручную) библиотека, которая переопределяет библиотеку из APT. Библиотека не помещается в /usr/local/lib , поэтому ее трудно отличить от других.

На Ubuntu 18,04 LTS я могу запускать ldd , а затем анализировать его выходные данные по типу

export EXE=/usr/bin/mc;

dpkg -S $(ldd $EXE | grep -v "=>" | awk '{print $1}') 2> /tmp/not-from-apt
dpkg -S $(ldd $EXE | grep "=>" | awk '{print $3}') 2>> /tmp/not-from-apt

, а затем анализировать содержимое файла /tmp/not-from-apt . Для системы 18.04 LTS этот файл будет содержать только одну строку:

 $ cat/tmp/not-from-apt
dpkg-query: не найден путь, соответствующий образцу * linux-vdso.so.1 *

и ожидается, что она является базовой библиотекой, не поступающей ни из одного пакета.

Но вышеописанный метод не сработает на Ubuntu 20,04 LTS, здесь файл /tmp/not-from-apt будет содержать неверные результаты, начиная со строки 2:

 $ cat/tmp/not-from-apt
dpkg-query: не найден путь, соответствующий образцу * linux-vdso.so.1 *
dpkg-query: не найден путь, соответствующий шаблону/ lib/x86_64-linux-gnu/libgpm.so.2
dpkg-query: не найден путь, соответствующий шаблону/ lib/x86_64-linux-gnu/libssh2.so.1
dpkg-query: не найден путь, соответствующий шаблону/ lib/x86_64-linux-gnu/libgmodule-2.0.so.0
dpkg-query: не найден путь, соответствующий шаблону/ lib/x86_64-linux-gnu/libglib-2.0.so.0
dpkg-query: не найден путь, соответствующий шаблону/ lib/x86_64-linux-gnu/libgcrypt.so.20

Я полагаю, что это произошло из-за symlinks, как показано ниже:

 $ ls -al/| grep lib
lrwxrwxrwx 1 корень корень 7 Янв 19 04:01 lib - > usr/lib
lrwxrwxrwx 1 корневой корень 9 Янв 19 04:01 lib32 - > usr/lib32
lrwxrwxrwx 1 корневой корень 9 Янв 19 04:01 lib64 - > usr/lib64
lrwxrwxrwx 1 корневой корень 10 Янв 19 04:01 libx32 - > usr/libx32

Здесь действительно есть другая проблема - некоторые пакеты имеют /lib * в своих списках файлов, в то время как некоторые имеют /usr/lib * . Так что это добавит лишнего беспорядка.

Что следует изменить в методе Ubuntu 20.04 LTS и новее, чтобы получить правильные строки в файле /tmp/not-from-apt ?

2
задан 4 February 2021 в 18:59

1 ответ

С Рекомендацией Муру мы должны использовать команду RealPath .

Но с небольшим примечанием, который работает RealPath на самую раннюю стадию, как ожидалось.

Поэтому нам нужно добавить один дополнительный шаг для обработки выходного файла:

dpkg -S $(realpath $(grep -E "/lib.*" --only-matching /tmp/not-from-apt)) 2> /tmp/not-from-apt-final

и полный метод для 20,04 LTS будет выглядеть следующим образом:

export EXE=/usr/bin/mc;

dpkg -S $(ldd $EXE | grep -v "=>" | awk '{print $1}') 2> /tmp/not-from-apt
dpkg -S $(ldd $EXE | grep "=>" | awk '{print $3}') 2>> /tmp/not-from-apt

dpkg -S $(realpath $(grep -E "/lib.*" --only-matching /tmp/not-from-apt)) 2> /tmp/not-from-apt-final

Это будет производить пустым / TMP / не от APT -Final файл, когда нет ошибок.
Также можно всегда проверить содержимое / TMP / не от APT для дополнительной информации.

3
ответ дан 18 March 2021 в 23:37

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

Похожие вопросы: