Сайт | Скачать | Видео | Wiki

Автор Тема: Разметить диск из скрипта. sfdisk fdisk  (Прочитано 4617 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн imp

  • cat /dev/ass > /dev/head
  • Ветеран
  • *****
  • Сообщений: 1708
  • Репутация: +49/-1
  • Автор темы
  • /dev/hands < /dev/ass
Re: sfdisk как нарезать 2+ раздела?
« Ответ #15 : 17 Октябрь 2020, 21:26:30 »
Да пробовал напрямую fdisk-у параметры подсовывать - фигвам. Причем слитно. Говорят, что sfdisk - тот же fdisk, только скриптовый. разбираюсь
Компьютер имеет то преимущество перед мозгом, что им пользуются.

Оффлайн kostyalamer

  • Почетный участник
  • Старожил
  • *
  • Сообщений: 235
  • Репутация: +5/-0
Re: sfdisk как нарезать 2+ раздела?
« Ответ #16 : 17 Октябрь 2020, 21:29:16 »
EOF - end of file, правильно? Где я таких обЬемов до конца раздела наберу?
Ты видимо не совсем понял механизм вот тебе как и обещал Тезка пример из Ледяного :
Код
fdisk $disk << EOF 
n
p
3



w
EOF

Здесь пустые строки просто эмулируют нажатие на Enter

Оффлайн imp

  • cat /dev/ass > /dev/head
  • Ветеран
  • *****
  • Сообщений: 1708
  • Репутация: +49/-1
  • Автор темы
  • /dev/hands < /dev/ass
Re: sfdisk как нарезать 2+ раздела?
« Ответ #17 : 17 Октябрь 2020, 21:34:35 »
Об этом и говорилось. Не понял ничего.
Как нарезать 2гб, а после них - все остальное пространство?
Может и пойму логику
Компьютер имеет то преимущество перед мозгом, что им пользуются.

Оффлайн knn

  • Ветеран
  • *****
  • Сообщений: 2538
  • Репутация: +33/-0
Re: sfdisk как нарезать 2+ раздела?
« Ответ #18 : 17 Октябрь 2020, 21:37:43 »
Здесь пустые строки просто эмулируют нажатие на Enter
- вот и я почерпнул полезного )
Gr4D, Grub2; HP Mini 210 VT - Intel Atom N470  @ 1.83GHz, Intel GMA3150, RAM=2 ГБ ;
Sams-n110: N270 - 1,6 ГГц, Intel GMA 950, RAM=2 ГБ.

Оффлайн kostyalamer

  • Почетный участник
  • Старожил
  • *
  • Сообщений: 235
  • Репутация: +5/-0
Re: sfdisk как нарезать 2+ раздела?
« Ответ #19 : 17 Октябрь 2020, 21:47:15 »
Об этом и говорилось. Не понял ничего.
Как нарезать 2гб, а после них - все остальное пространство?
Может и пойму логику
Тогда тебе надо не с подсовыванием нажатий разбираться а с самим fdisk-ом
https://losst.ru/komanda-fdisk-v-linux
https://vps.ua/wiki/fdisk-linux/
Потом сделать все что тебе нужно fdisk-ом вручную записывая на бумажку какие клавиши нажимал и какие значения вводил . После чего написать скрипт который будет все это скармливать fdisk-у через EOF.

Оффлайн kostyalamer

  • Почетный участник
  • Старожил
  • *
  • Сообщений: 235
  • Репутация: +5/-0
Re: sfdisk как нарезать 2+ раздела?
« Ответ #20 : 17 Октябрь 2020, 21:55:38 »
Хотя может я тебя не так понял и тебе надо не инсталлятор писать а просто разбить диск ?

Оффлайн knn

  • Ветеран
  • *****
  • Сообщений: 2538
  • Репутация: +33/-0
Re: sfdisk как нарезать 2+ раздела?
« Ответ #21 : 17 Октябрь 2020, 21:56:18 »
- теоретически - примерно так. (аналог https://superuser.com/a/984637) ! 2G - я взял по аналогии с dd. наугад. для обсолютной точности и под себя - все равно хоть как с прогой ознакамливаться
Код
# attation - no uno practika
sudo fdisk /dev/sdc << EOF
o # clear the in memory partition table
n # new partition
1 # partition number 1
  # default - start at beginning of disk
+2G # 2 G boot parttion
n # new partition
p # primary partition
  # default, start immediately after preceding partition
  # default, extend partition to end of disk
a # make a partition bootable
1 # bootable partition is partition 1 -- /dev/sda1
p # print the in-memory partition table
w # write the partition table
q # and we're done
EOF
Gr4D, Grub2; HP Mini 210 VT - Intel Atom N470  @ 1.83GHz, Intel GMA3150, RAM=2 ГБ ;
Sams-n110: N270 - 1,6 ГГц, Intel GMA 950, RAM=2 ГБ.

Оффлайн imp

  • cat /dev/ass > /dev/head
  • Ветеран
  • *****
  • Сообщений: 1708
  • Репутация: +49/-1
  • Автор темы
  • /dev/hands < /dev/ass
Re: sfdisk как нарезать 2+ раздела?
« Ответ #22 : 17 Октябрь 2020, 22:08:53 »
разбить диск ?

Да, просто разбить на 2 и установить на 1й флаг bootable
Из скрипта
Далее загрузчик и файлы скопируются
Компьютер имеет то преимущество перед мозгом, что им пользуются.

Оффлайн imp

  • cat /dev/ass > /dev/head
  • Ветеран
  • *****
  • Сообщений: 1708
  • Репутация: +49/-1
  • Автор темы
  • /dev/hands < /dev/ass
Re: sfdisk как нарезать 2+ раздела?
« Ответ #23 : 17 Октябрь 2020, 22:15:10 »
А далее зашифруется второй раздел и там совсем другая канитель
Хотя, если б я знал, как с шифрованного раздела систему грузить - я бы и первый залочил
« Последнее редактирование: 17 Октябрь 2020, 22:19:41 от imp »
Компьютер имеет то преимущество перед мозгом, что им пользуются.

Оффлайн imp

  • cat /dev/ass > /dev/head
  • Ветеран
  • *****
  • Сообщений: 1708
  • Репутация: +49/-1
  • Автор темы
  • /dev/hands < /dev/ass
Re: sfdisk как нарезать 2+ раздела?
« Ответ #24 : 18 Октябрь 2020, 07:35:36 »
Я дебил. Дошло, зачем eof. Вместо стандартного потока. Всем извините)
Я так понимаю и через cat или echo такое можно делать.

А kostyalamer ведь дал исчерпывающий ответ)..

Можно ставить плашку "Решено"
« Последнее редактирование: 18 Октябрь 2020, 07:43:39 от imp »
Компьютер имеет то преимущество перед мозгом, что им пользуются.

Оффлайн betcher

  • Ветеран
  • *****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: sfdisk как нарезать 2+ раздела?
« Ответ #25 : 18 Октябрь 2020, 10:15:09 »
. Вместо стандартного потока. Всем извините)
Собственно я вам сразу так и написал. Нужно скормить в fdisk через stdin ответы на все его вопросы. А там хоть cat, хоть echo -e, хоть eof.
Но повторюсь, если нужно разбивать из скрипта parted намного удобнее, fdisk заточен под интерактив. С партед могу и примеров кинуть, всегда его использую.
« Последнее редактирование: 18 Октябрь 2020, 10:16:40 от betcher »

Оффлайн imp

  • cat /dev/ass > /dev/head
  • Ветеран
  • *****
  • Сообщений: 1708
  • Репутация: +49/-1
  • Автор темы
  • /dev/hands < /dev/ass
Re: sfdisk как нарезать 2+ раздела?
« Ответ #26 : 18 Октябрь 2020, 10:32:14 »
Если реально удобнее - хотел бы посмотреть на ваши пару примеров. Даже просто для понимания
Компьютер имеет то преимущество перед мозгом, что им пользуются.

Оффлайн betcher

  • Ветеран
  • *****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: sfdisk как нарезать 2+ раздела?
« Ответ #27 : 18 Октябрь 2020, 10:34:13 »
До дома доберусь, кину.

Оффлайн betcher

  • Ветеран
  • *****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: sfdisk как нарезать 2+ раздела?
« Ответ #28 : 18 Октябрь 2020, 16:51:45 »
Код
# 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
}



Это функции с разными разбивками из скрипта - инсталлятора.

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Старый чайник
Re: sfdisk как нарезать 2+ раздела?
« Ответ #29 : 18 Октябрь 2020, 17:50:51 »
fs_part1=vfat/BOOT ;
Первый раздел не обязательно должен быть загрузочным, у меня на флешке система на втором разделе, первый /home. Для разбивки использовал gparted.
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64