Я сделал туториал по установке Grub на CentOS 7:
Установка Grub2 и двойная загрузка с Windows 10
Если ваша конфигурация Grub не соответствует вашим требованиям, следуйте этому руководству. Сначала переустановите Grub.
sudo yum reinstall grub2-tools
Войдите в систему как root в терминале
su
В другом терминале получите информацию о вашем жестком диске Windows 10, в моем случае он назывался «/dev/sdb1»
sudo fdisk -l
В моей конфигурации мой диск с Windows 10 находился на другом жестком диске. Подписывайтесь, только если вы находитесь в такой же ситуации.
В корневом терминале перейдите в каталог конфигурации grub
cd /etc/grub.d/
Теперь мы должны найти UUID вашего жесткого диска Windows 10,введите эту команду в свой не -корневой терминал
ls -l /dev/disk/by-uuid
Найдите код UUID рядом с вашим диском, например :40S863A9D8619F12
Теперь в корневом терминале введите команду:
nano 40_custom
Внутри этого файла введите конфигурацию Windows 10, используя стандарт GRUB. Используйте код UUID, ранее найденный внутри конфигурации. В моем случае мой конфиг:
menuentry 'Windows 10' {
insmod ntfs
insmod ntldr
insmod part_msdos
insmod search_fs_uuid
search --fs-uuid --no-floppy --set=root 40S863A9D8619F12
ntldr /bootmgr
}
Сохраните и выйдите из nano. Теперь нам нужно создать новый файл конфигурации GRUB. Введите команду:
grub2-mkconfig --output=/boot/grub2/grub.cfg
Вуаля!!!! Попробуйте конфигурацию с новым перезапуском
Источник :http://dareneiri.github.io/Configuring-Grub-2-on-CentOS-7/https://ihaveabackup.net/article/grub2-entry-for-windows-10-uefi
Если вы хотите иметь сексуальное меню GRUB, вы можете установить настройщик grub -с помощью этого руководства :https://centos.pkgs.org/7/epel-x86_64/grub-customizer-5.0.6-1.el7.x86_64.rpm.html
вы можете найти больше руководств по адресу:https://github.com/Winterhart/CentOS7-Setup/
В этом ответе следует отметить несколько моментов.
Как правило, плохая идея анализировать вывод ls
, если вместо этого вы можете использовать шаблоны оболочки glob
, чтобы делать то, что вы хотите вместо этого -см. [http://mywiki.wooledge.org/ParsingLs] . Я не использовал опцию оболочки nullglob для переносимости, но это сделало бы сценарии немного короче.
Вы хотите убедиться, что ваши шаблоны глобусов не слишком широкие, поэтому вы говорите cat
использовать одно и то же имя файла для ввода и вывода, в противном случае вы можете очень быстро заполнить свой жесткий диск, когда будете пытаться создавать файл бесконечного размера.
Если вы указываете шаблон, подобный *.fasta
, и он не соответствует ни одному файлу, то используется литеральная строка *.fasta
.
Если у вас есть файл с именем *.fasta
, то один из способов отличить его от шаблона — посмотреть, читается ли он.
Установка --
для завершения разбора аргументов — хорошая идея, если могут быть неправильные имена файлов.
Сначала простой скрипт.
# Simple script, assumes that "Species1" has all the needed "SequenceX.fasta" files
# Start in the directory containing "Species1", "Species2" etc.
# create output directory
mkdir "final"
# Go into the first directory
cd "Species1"
# Loop over all the files
for i in *".fasta"
do
# join all the like named files in the sibling directories to the output
# use a pattern which doesn't match../final/$i to get list of files to join.
cat "../Species"*"/$i" > "../final/$i"
done
Это предполагает, что "Species1" содержит все файлы "SequenceX.fasta". Если это не так, то вам, вероятно, нужна двойная петля. Это более надежно, но дольше и медленнее.
# Start in the top level and loop over the directories
for dir in */
do
# don't do anything inn the output directory
[ "$dir" = "final" ] && continue
# cd into directory, protecting against rogue directory names
cd "./$dir" || { echo "cd to $dir failed" >&2 ; exit 1 ; }
# loop over the files
for file in *"fasta"
do
# check the file exists, if there are no files matching the pattern
# then the shell will pass the pattern through to the loop
if [ -r "$file" ] ; then
cat -- "$file" >> "../final/$file"
fi
done
cd ".." || { echo "failed to return from $dir" ; exit 1 ; }
done