fdisk, зараза - интерактивныйТезка, aka 'kostyalamer' в установщике ч/з 'EOF' сделал [под fdisk, и вроде под cfdisk].
я тебе четче не скажу (для меня "потоками" то громко звучит).
(у яши в первых рядах было - [fdisk EOF] - https://superuser.com/questions/332252/how-to-create-and-format-a-partition-using-a-bash-script, https://www.linuxquestions.org/questions/linux-newbie-8/fdisk-dev-sda-__eof__-what-does-this-do-932648/)
да и с фдиском пока малознаком
Так ненавязчиво послали в яндексе гуглить)Да там и разбираться особо нечего, как совершенно справедливо заметил Тезка все делается через EOF:
Как-то я не понял, просто, передавать потоками на эту хрень
Буду разбираться
EOF - end of file, правильно? Где я таких обЬемов до конца раздела наберу?Ты видимо не совсем понял механизм вот тебе как и обещал Тезка пример из Ледяного :
fdisk $disk << EOF
n
p
3
w
EOF
Здесь пустые строки просто эмулируют нажатие на Enter- вот и я почерпнул полезного )
Об этом и говорилось. Не понял ничего.Тогда тебе надо не с подсовыванием нажатий разбираться а с самим fdisk-ом
Как нарезать 2гб, а после них - все остальное пространство?
Может и пойму логику
разбить диск ?
. Вместо стандартного потока. Всем извините)Собственно я вам сразу так и написал. Нужно скормить в fdisk через stdin ответы на все его вопросы. А там хоть cat, хоть echo -e, хоть eof.
# gpt
# 1. - Раздел под не шифрованные данные (ntfs "размер флешки" - 8G)
# 2. - boot ESP (100M fat32)
# 3. - sys (5G ext3)
# 4. - luks (все что останется - luks/ext4)
gpt4 () {
fs_part1="ntfs/NOSECURE"
fs_part2="vfat/BOOT" ; part2=100
fs_part3="ext3/ROSA-SYSTEM" ; part3=5000
fs_part4="ext4(luks)/ROSA-DATA"
part1=$(( "$devsize" - 8000 ))
part4=$(( "$devsize" - 8000 - "$part2" - "$part3" ))
show_stat gpt ${fs_part1}:${part1} ${fs_part2}:${part2} ${fs_part3}:${part3} ${fs_part4}:${part4}
action "Partition initialization"
try_to_clear
parted -s $device mklabel gpt
parted -a optimal -s $device mkpart DATA 1MiB $(($part1 + 1))MiB
parted -a optimal -s $device mkpart ESP $(($part1 + 1))MiB $(( 1 + $part1 + $part2))MiB set 2 esp on || echo_exit "$action - ERROR" ${LINENO}
parted -a optimal -s $device mkpart ROSA-SYSTEM $(( 1 + $part1 + $part2))MiB $(($part1 + $part2 + $part3 + 1))MiB || echo_exit "$action - ERROR" ${LINENO}
parted -a optimal -s $device mkpart ROSA-DATA $(($part1 + $part2 + $part3 + 1))MiB 100% || echo_exit "$action - ERROR" ${LINENO}
format 2 && install 2
}
# gpt
# 1. - boot ESP (100M fat32)
# 2. - sys (4-5G ext3)
# 3. - luks (все что останется - luks/ext4)
gpt3 () {
fs_part1=vfat/BOOT ; part1=100
fs_part2=ext3/ROSA-SYSTEM ; part2=5000
fs_part3="ext4(luks)/ROSA-DATA"
part3=$(( "$devsize" - "$part1" - "$part2" ))
echo ""
show_stat gpt ${fs_part1}:${part1} ${fs_part2}:${part2} ${fs_part3}:${part3}
action "Partition initialization"
try_to_clear
parted -s $device mklabel gpt
parted -a optimal -s $device mkpart ESP 1MiB $(($part1 + 1))MiB set 1 esp on || echo_exit "$action - ERROR" ${LINENO}
parted -a optimal -s $device mkpart ROSA-SYSTEM $(($part1 + 1))MiB $(($part1 + $part2 + 1))MiB || echo_exit "$action - ERROR" ${LINENO}
parted -a optimal -s $device mkpart ROSA-DATA $(($part1 + $part2 + 1))MiB 100% || echo_exit "$action - ERROR" ${LINENO}
format 1 && install 1
}
# gpt (Разбивка для флэшек меньше 8 гигов. 2 раздела.)
# 1. - boot ESP (100M fat32)
# 2. - data (все что останется - ext4)
gpt2 () {
fs_part1="vfat/BOOT" ; part1=100
fs_part2="ext3/SYSTEM+DATA"
part2=$(( "$devsize" - "$part1" ))
echo ""
show_stat gpt ${fs_part1}:${part1} ${fs_part2}:${part2}
action "Partition initialization"
try_to_clear
parted -s $device mklabel gpt
parted -a optimal -s $device mkpart ESP 1MiB $(($part1 + 1))MiB set 1 esp on || echo_exit "$action - ERROR" ${LINENO}
parted -a optimal -s $device mkpart ROSA-SYSTEM $(($part1 + 1))MiB 100% || echo_exit "$action - ERROR" ${LINENO}
format 1 && install 1
}
# mbr (если машина не грузится с gpt)
# 1. - boot ESP (100M fat32)
# 2. - sys (4-5G ext3)
# 3. - luks (все что останется - luks/ext4)
mbr3 () {
fs_part1=vfat/BOOT ; part1=100
fs_part2=ext3/ROSA-SYSTEM ; part2=5000
fs_part3="ext4(luks)/ROSA-DATA"
part3=$(( "$devsize" - "$part1" - "$part2" ))
echo ""
show_stat mbr ${fs_part1}:${part1} ${fs_part2}:${part2} ${fs_part3}:${part3}
try_to_clear
parted -s $device mklabel msdos
action "Partition initialization"
parted -a optimal -s $device mkpart primary fat32 1MiB $(($part1 + 1))MiB set 1 esp on set 1 boot on || echo_exit "$action - ERROR" ${LINENO}
parted -a optimal -s $device mkpart primary ext4 $(($part1 + 1))MiB $(($part1 + $part2 + 1))MiB || echo_exit "$action - ERROR" ${LINENO}
parted -a optimal -s $device mkpart primary $(($part1 + $part2 + 1))MiB 100% || echo_exit "$action - ERROR" ${LINENO}
format 1 && install 1
}
fs_part1=vfat/BOOT ;Первый раздел не обязательно должен быть загрузочным, у меня на флешке система на втором разделе, первый /home. Для разбивки использовал gparted.
Первый раздел не обязательно должен быть загрузочным,В первой функции (gpt4) как раз так и есть. Первый раздел большой ntfs, а загрузочный второй.
Сам бы побоялся такое юзать. Чревато потерей инфы
fdisk /dev/sdb <<EOF
o
n
p
1
+2G
t
87
w
EOF
fdisk /dev/sdb <<EOF
n
p
2
t
87
w
EOF