Если вы переместите /boot
в свою корневую файловую систему, вы получите тот объем хранилища, который есть в вашей корневой файловой системе, и больше не будете ограничены размером загрузочного раздела.
Настройка загрузчика GRUB — деликатная операция. В следующем процессе я снижаю риск, не внося никаких изменений, которые нельзя легко отменить. Этот процесс включает перемещение /boot
и последующее обновление загрузчика.
В настоящее время /boot
находится в разделе, отдельном от корневой файловой системы. Безопасный способ перемещения — это копирование , а не перемещение файлов :
.
umount /boot
mount /dev/sd?? /mnt
cp -av /mnt/* /boot/
Копирование файлов включает в себяumount
-установку /boot
, монтирование в другом месте и копирование файлов из смонтированного местоположения в /boot
.
Затем отредактируйте /etc/fstab
и закомментируйте строку, которая монтирует /boot
.
Прежде чем обновлять загрузчик,лучше всего сделать тест, чтобы убедиться, что GRUB может загружаться из перемещенных файлов:
/boot/grub/grub.conf
и запишите строки kernel
и initrd
, используемые для загрузки ядра ОС Cent. Вы будете вводить их вручную для теста. find /boot/grub/stage1
. Он должен вывести что-то вроде(hd0,5). Это должно соответствовать диску и разделу корневой файловой системы. root (hd0,5)
(или что-то другое, напечатанное предыдущей командой)kernel
, которую вы записали. Что-то вроде:kernel /boot/vmlinuz-2.6.18-238.19.1.el5.centos.plusPAE ro root=/dev/sda6
initrd
, которую вы записали. Что-то вроде:initrd /boot/initrd-2.6.18-238.19.1.el5.centos.plusPAE.img
boot
для загрузки ядра. Если все пойдет хорошо, система должна загрузиться, а старый раздел /boot
не должен быть смонтирован, что вы можете подтвердить с помощью команды mount
.
Предполагая, что это сработало, сделать изменение загрузчика постоянным:
/boot/grub/grub.conf
и обновите строки root
, kernel
и initrd
так, как вы вводили их во время теста. grub
, чтобы ввести приглашение GRUB. Чтобы уточнить, это делается из ОС Cent, а не путем перезагрузки. root (hd0,5)
(или любой другой раздел, который должен быть)setup (hd0)
, где hd0 — это диск, на который GRUB устанавливает свою MBR-стадию. Возможно, вы используете MBR диска или первый сектор раздела. Что бы это ни было, именно таким должно быть hd0 . После этих шагов GRUB представит меню, которое загрузит ядро из вашего нового /boot
. Обратите внимание, что ваш загрузочный раздел все еще не поврежден.
Вы можете прочитать немного больше о GRUB и ОС Cent здесь:https://wiki.centos.org/HowTos/GrubInstallationОбратите особое внимание на раздел Примечания и предупреждения .
Использованиеawk
:
awk '{ for (i=1;i<=NF;i++) { if ($i ~ /num2=/) {sub(/num2=/, "", $i); $i="num2="$i-5; print} } }' file
Это будет перебирать каждый столбец каждой строки в поисках столбца, содержащего num2=
. Когда он найдет этот столбец, он:
num2=
-sub(/num2=/, "", $i)
num2={oldnum-5}
-$i="num2="$i-5
print
[Просто потому, что я пытаюсь поближе познакомиться с Миллером -, для получения разнородного вывода требуется несколько прыжков через обручи]:
$ mlr --fs ' ' --repifs --ocsvlite --headerless-csv-output put '
$num1 = "num1=".$num1; $num2 = "num2=".($num2-5)
' file
RANDOM TEXT num1=400 num2=10 RANDOM TEXT
RANDOM TEXT num1=300 num2=5 RANDOM TEXT
RANDOM TEXT num1=200 num2=0 RANDOM TEXT
Если ввод на самом деле является TSV, в котором некоторые столбцы могут содержать пробелы, то
$ mlr --fs '\t' --ocsvlite --headerless-csv-output put '
$num1 = "num1=".$num1; $num2 = "num2=".($num2-5)
' file
RANDOM TEXT num1=400 num2=10 RANDOM TEXT
RANDOM TEXT num1=300 num2=5 RANDOM TEXT
RANDOM TEXT num1=200 num2=0 RANDOM TEXT
перл:
perl -pe 's/(?<=num2=)(\d+)/$1 - 5/e' file
Чтобы сохранить содержимое обратно в файл:
perl -i -pe...
Использование Vim:
vim +'g/^/exe "norm! 3Wf=5\<C-A>"' +wq file
Первый аргумент+
запускает ряд операций в обычном режиме для каждой строки, увеличивая число в 5 раз. Он использует команду:global
для запуска этого в каждой строке. Простое использование:normal
с диапазоном %norm
было бы проще, если бы мы не использовалиCTRLAдля увеличения числа, а чтобы (легко )передаем этот управляющий символ в Vim, мы создаем команду в виде строки для запуска с :execute
, поэтому нам нужен :global
.
Второй аргумент + просто сохраняет файл .
Если формат RANDOM TEXT менее регулярен (или если вы просто предпочитаете регулярные выражения ), вместо этого вы можете использовать команду:substitute
:
vim +'%s/num2=\zs\d\+/\=submatch(0) + 5' +wq file
При этом используется команда :substitute
для замены части N
в num2=N
существующим значением плюс пять.