Как указано выше, редактирование /boot/grub/grub.cfg
не является хорошим способом сделать это. Есть хороший шанс, что вы сломаете его, и даже если вы этого не сделаете, вы, вероятно, обнаружите, что он вернулся, когда в какой-то момент появится обновление системы.
Явное добавление значения GRUB_OS_PROBER_SKIP_LIST
к /etc/default/grub
также не является хорошим решением, так как вам нужно вручную найти и заблокировать UUID
каждого загрузочного диска, который вы можете подключить к своей машине. Я также не уверен, что редактирование файлов в /etc/default
является предпочтительным способом настройки поведения вашего дистрибутива Linux.
Также не стоит полностью отключать /usr/bin/os-prober
, так как другие программы потенциально могут использовать его для других целей.
Таким образом, лучшим решением, вероятно, будет работа с файлами конфигурации, принадлежащими grub
и специально предназначенными для ручной настройки человеком.
На Debian
и Ubuntu
автоматически сгенерированные загрузочные записи, похоже, обрабатываются /etc/grub.d/30_os-prober
.
Просто удалите этот файл или отключите для него разрешения на выполнение, а затем повторно создайте конфигурацию grub
, чтобы избавиться от автоматически добавленных записей. Это работало на моей машине:
sudo chmod -x /etc/grub.d/30_os-prober
sudo grub-mkconfig -o /boot/grub/grub.cfg
sudo update-grub
Вы можете просмотреть результат создания конфигурации и проверить /boot/grub/grub.cfg
, чтобы убедиться, что посторонние записи были удалены перед перезагрузкой.
Вы пробовали вариант -path
для унисона вместо -ignore
? Из руководства unison и справочного руководства , раздел Использование Unison для всех ваших файлов
tell Unison to synchronize only some of the files and subdirectories within it on any given run. This can be accomplished by using the -path switch on the command line:... The -path option can be used as many times as needed, to synchronize several files or subdirectories:
Вот небольшой практический пример.
local
и remote
(каталог remote
является заменой -действительно удаленного каталога в данном случае ). root@ubuntu:~# mkdir local remote
local
. root@ubuntu:~# for i in $(seq 9); do uuidgen > local/${i}.txt ; done
root@ubuntu:~# ls local
1.txt 2.txt 3.txt 4.txt 5.txt 6.txt 7.txt 8.txt 9.txt
unison
для синхронизации файлов, но ограничьте синхронизацию файлами с именами 1.txt
, 2.txt
и 3.txt
. root@ubuntu:~# unison -auto -batch local/ remote/ -path 1.txt -path 2.txt -path 3.txt
Contacting server...
Looking for changes
...
Reconciling changes
file ----> 1.txt
file ----> 2.txt
file ----> 3.txt
...
remote
содержит только эти файлы. root@ubuntu:~# ls remote/
1.txt 2.txt 3.txt
С изменением контента все становится интереснее.
remote
. Это обновит синхронизированные файлы и создаст новые файлы для несинхронизированных. root@ubuntu:~# for i in $(seq 9); do uuidgen > remote/${i}.txt ; done
unison
для повторной синхронизации каталогов root@ubuntu:~# unison -auto -batch local/ remote/ -path 1.txt -path 2.txt -path 3.txt
Contacting server...
Looking for changes
Reconciling changes
<---- changed 1.txt
<---- changed 2.txt
<---- changed 3.txt
...
1.txt
)содержимое будет совпадать в обоих каталогах. Несинхронизированные файлы (, например.9.txt
)содержимое будет другим. root@ubuntu:~# cat {local,remote}/1.txt
7317d9ef-9747-43ae-9f4c-347fc4134e65
7317d9ef-9747-43ae-9f4c-347fc4134e65
root@ubuntu:~# cat {local,remote}/9.txt
76654fcf-d0b2-4788-8a84-b765c9a41cc3
f5db8eb3-4300-463a-9d49-fcb14afcae12