Консольное Разрешение Slackware, когда Двойная загрузка с GRUB2 Другого Дистрибутива?

Правильный путь зависит от точно, почему Вы спрашиваете:

Опция 1: сравните данные только

Если Вам просто будет нужен хеш содержания файла дерева, то это добьется цели:

$ find -s somedir -type f -exec md5sum {} \; | md5sum

Это сначала суммирует все содержание файла индивидуально, в предсказуемом порядке, затем передает тот список имен файлов и хешей MD5, которые будут хешированы сам, давая единственное значение, которое только изменяется, когда содержание одного из файлов в дереве изменяется.

К сожалению, find -s только работы с BSD находят (1), используемый в macOS, FreeBSD, NetBSD и OpenBSD. Для получения чего-то сопоставимого в системе с GNU или SUS находят (1), Вам нужно что-то немного более ужасное:

$ find somedir -type f -exec md5sum {} \; | sort -k 2 | md5sum

Мы заменили find -s с вызовом к sort. -k 2 бит говорит этому перескакивать через хеш MD5, таким образом, это только сортирует имена файлов, которые находятся в поле 2 через конец строки, sortсчет.

Существует слабость с этой версией команды, которая является, что склонно стать перепутанным, если у Вас есть какие-либо имена файлов с новыми строками в них, потому что она будет похожа на несколько строк к sort звонить. find -s вариант не имеет той проблемы, потому что обход дерева и сортировка происходят в рамках той же программы, find.

В любом случае сортировка необходима для предотвращения ложных положительных сторон: наиболее распространенные файловые системы Unix/Linux не поддерживают списки каталогов в стабильном, предсказуемом порядке. Вы не могли бы понять это от использования ls и такой, который тихо сортирует содержание каталога для Вас. find без -s или a sort вызов собирается распечатать файлы в любом порядке, базовая файловая система возвращает их, которые заставят эту команду давать измененное значение хэш-функции, если порядок файлов, данных ему как вход, изменится.

Вы, возможно, должны были бы измениться md5sum команды к md5 или некоторая другая хеш-функция. Если Вы выбираете другую хеш-функцию и нуждаетесь во второй форме команды для Вашей системы, Вы, возможно, должны были бы корректироваться sort управляйте соответственно. Другое прерывание - то, что некоторые программы подведения итогов данных не выписывают имя файла вообще, при этом главным примером является старый Unix sum программа.

Этот метод несколько неэффективен, звоня md5sum Времена N+1, где N является количеством файлов в дереве, но это - необходимая стоимость, чтобы не хешировать метаданные каталога и файл.

Опция 2: сравните данные и метаданные

Если необходимо смочь обнаружить, что что-либо в дереве изменилось, не только содержание файла, спросить tar для собирания содержания каталога для Вас затем отправьте его в md5sum:

$ tar -cf - somedir | md5sum

Поскольку tar также видит полномочия файла, владение, и т.д., это также обнаружит изменения в тех вещах, не только изменяется на содержание файла.

Этот метод значительно быстрее, так как он заставляет только один передать по дереву и запускает программу хеша только однажды.

Как с find основанный метод выше, tar движение должно обработать имена файлов в порядке, базовая файловая система возвращает их. Может случиться так, что в Вашем приложении, можно быть уверены, что Вы не заставите это происходить. Я могу думать о по крайней мере трех различных шаблонах использования, где это, вероятно, будет иметь место. (Я не собираюсь перечислять их, потому что мы входим в неуказанную территорию поведения. Каждая файловая система может отличаться здесь, даже от одной версии ОС к следующему.)

Если бы Вы получаете ложные положительные стороны, я рекомендовал бы идти с find | cpio опция в ответе Gilles.

1
26.12.2013, 22:55
1 ответ

Это зависит от того, хотите ли Вы использовать кадровый буфер VESA или "собственный" (radeon/nvidia/intel/matrox/whatever). Если Вы решаете использовать "собственный" кадровый буфер, он должен автоволшебно обнаружить разрешение Вашего экрана, предположив использование включенных аппаратных средств EDID (учитывая аппаратные средства, которые Вы упоминаете, возможности являются низкими, что это не). Вы, возможно, должны были бы настроить init сценарии или восстановить ядро, чтобы удостовериться, что надлежащий драйвер загружается/представляется.

В первом случае (vesafb) Вы должны для передачи корректный vga опция к ядру на начальной загрузке (например. vga=0x31a даст Вам 1280x1024x16M IIRC). Получить полный список использования доступных вариантов vga=ask, некоторые также упоминаются в источниках ядра/Documentation/fb.

До изменения параметров начальной загрузки ядра затронут, Вы захотите отредактировать GRUB (2), конфигурация - взглянула, например, на Archlinux GRUB2 Wiki на том, что и где отредактировать - конфигурация в /boot/grub2 сгенерирован от того в /etc, обычно, по крайней мере, на каждом обновлении ядра.

Тем не менее Вы могли бы хотеть, дают ELILO попытку, особенно Вы, привыкли к LILO или позволяют ядру быть загруженным непосредственно загрузчиком UEFI.

Если у Вас нет некоторых особых потребностей, использование единственного (сделанного на заказ) ядра для всех установленных дистрибутивов не должно быть плохой идеей (в этом случае использующий загрузчик, вероятно, будет легче, из-за ограничений прямой загрузки UEFI, упомянутой в ссылке выше).

1
27.01.2020, 23:54

Теги

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