Linux (ядро) не заботится, сколько разделов начальной загрузки Вы имеете. Загрузка ядра от диска является заданием загрузчика (например. grub
, grub2
, lilo
) и эти инструменты также не заботятся о количестве местоположений, ядро могло бы быть расположено. Они только заботятся об определенном местоположении.
Как пример, мой раздел начальной загрузки /dev/md1
, который является mdadm зеркалом RAID, поддержанным физическими разделами /dev/sde1
и /dev/sdf1
. Я могу смонтировать их индивидуально, если я хотел и как таковой, это технически рассчитывает как наличие двух разделов начальной загрузки, хотя они должны содержать те же данные.
Наличие двух разделов для начальной загрузки / для меня является проблемой доступности, но они могли одинаково быть различными / разделами начальной загрузки. Следующий шаг к - то, как загрузчик знает? Вот то, как:
menuentry 'Linux 3.10.17 (sde) kernel-3.10.17-g' {
root=hd0,1
linux /boot/kernel-3.10.17-g domdadm dolvm root=/dev/md3
initrd /boot/initrd-3.10.17-g
}
menuentry 'Linux 3.10.17 (sdf) kernel-3.10.17-g' {
root=hd1,1
linux /boot/kernel-3.10.17-g domdadm dolvm root=/dev/md3
initrd /boot/initrd-3.10.17-g
}
Это - выборка от a grub2
конфигурация и Вы отметите, что единственные различия root=hd0,1
и root=hd1,1
которые устанавливают который раздел начальной загрузки та запись ссылки.
Теперь для обхода Вас хотя начальная загрузка, таким образом, можно понять то, что продолжается здесь.
grub2
) настроен для знания, какое устройство и раздел содержат ядро. Grub2 получает доступ к этому разделу непосредственно и загружает Ваше ядро в память.Загрузчик не заботится, сколько разделов начальной загрузки Вы имеете, он только заботится, где они, и необходимо сказать ему ту информацию.
Ядро не заботится, сколько разделов начальной загрузки Вы имеете, потому что оно никогда не должно видеть их (только необходимо иметь его в наличии для добавления новых ядер, например).
В системе GNU:
find dir -type f -name '*.txt' -exec awk '
FNR == 2 {printf "%s\0", FILENAME; nextfile}' {} + |
xargs -r0 mv -t newdir
(обратите внимание, что это может привести к тому, что одноименные файлы будут перезаписывать друг друга. Однократное обращение к GNU mv
защитит от этого, но если xargs
обратится к нескольким, то это может стать проблемой).
Что-то вроде этого с shell / bash:
move_files_with_line_count()
(
srcdir="$1"
destdir="$2"
suffix="$3"
minlines="$4"
cd "$srcdir"
find . -name "*$suffix" -type f -print0 \
| while read -r -d $'\0' file; do
linecnt=$(wc -l "$file" | { read a b; echo $a; }; )
if [ $linecnt -ge $minlines ]; then
[ -d "$destdir/${file%/*}" ] \
|| echo mkdir -p "$destdir/${file%/*}"
echo mv -v "$file" "$destdir/$file"
fi
done
)
Я окружил его (), так что он восстанавливает текущий каталог. Удалите "echo" перед "mkdir" и "mv", если это работает по назначению.