Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Форматирование флэшек - скрипт  (Прочитано 102513 раз)

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

Оффлайн Irshat

  • Автор темы
  • Активист
  • *
  • Сообщений: 554
    • Просмотр профиля
Форматирование флэшек - скрипт
« : 16 Декабря 2023, 02:59:51 »
делаю скрипт для форматирования флэшек, но уперся в команду EXT4 c 64 или без??. Форум что скажет?
Версия альфа, на zenity
#!/bin/sh
DEVICE=$(df -hT | grep "/media")
if [ "$DEVICE" = "" ]; then
zenity --info --text="Отсутствующие устройства" && exit 0;
fi
echo "$DEVICE" | grep -q "sdb1" && LIST1=/dev/sdb1
echo "$DEVICE" | grep -q "sdb2" && LIST2=/dev/sdb2
echo "$DEVICE" | grep -q "sdc1" && LIST3=/dev/sdc1
echo "$DEVICE" | grep -q "sdc2" && LIST4=/dev/sdc2
echo "$DEVICE" | grep -q "sdd1" && LIST5=/dev/sdd1
echo "$DEVICE" | grep -q "sdd2" && LIST6=/dev/sdd2
if [ "$EXIT" = "Форматировать" ]; then
zenity --info --text="Отсутствуют устройства" ;
fi
export MAIN_DIALOG='
    <window title="Форматирование флэш-накопителей">
    <vbox>
    <hbox>
    <pixmap>
      <input file>warning.png</input>
    </pixmap>
    <text wrap="false">
       <label>Внимание: выберите USB-накопитель для форматирования</label>
      </text>
    </hbox>
   
<frame Подключенные устройства>
<text wrap="false">
       <input>df -hT | grep "/media"</input>
      </text>
</frame>
      <hbox>
      <frame Устройства>
      <list>
    <variable>DEVICE</variable>
    <item>'$LIST1'</item>
    <item>'$LIST2'</item>
    <item>'$LIST3'</item>
    <item>'$LIST4'</item>
    <item>'$LIST5'</item>
  </list>
   </frame>

      <frame Файловая система>
        <list>
    <variable>MODEL</variable>
    <item>Ext4</item>
    <item>NTFS - быстрое форматирование</item>
    <item>NTFS</item>
    <item>exFAT</item>
    <item>FAT32</item>
  </list>
      </frame>

      <frame Метка>
  <entry>
    <default>Usb-Disk</default>
    <variable>NAME</variable>
  </entry>
      </frame>
      </hbox>

  <hbox>
<button>
<label>Форматировать</label>
<input file>format.png</input>
</button>
  </hbox>

    </vbox>
    </window>
'

I=$IFS; IFS=""
for CONFIRMATION in  $(gtkdialog --name="Форматирование" --program=MAIN_DIALOG); do
   eval $CONFIRMATION
done
IFS=$I

[ $EXIT = Форматировать ] ;

umount $DEVICE
case $MODEL in
'Ext4')
x-terminal-emulator -T "Форматирование Ext4"  -e "sudo mkfs.ext4 -L $NAME $DEVICE"     
;;
'NTFS - быстрое форматирование')
x-terminal-emulator -T "Быстрое форматирование NTFS"  -e "sudo mkfs.ntfs -Q -L $NAME $DEVICE"       
;;
'NTFS')
x-terminal-emulator -T "Форматирование NTFS"  -e "sudo mkfs.ntfs -L $NAME $DEVICE"       
;;
'exFAT')
x-terminal-emulator -T "Форматирование exFAT"  -e "sudo mkfs.exfat -n $NAME $DEVICE"       
;;
'FAT32')
x-terminal-emulator -T "Форматирование FAT32"  -e "sudo mkfs.vfat -F 32 -n $NAME -I $DEVICE"
;;
esac
zenity --info --text="Устройство отформатированно
Метка: $NAME
Файловая система: $MODEL "
« Последнее редактирование: 16 Декабря 2023, 03:07:14 от Irshat »

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6917
    • Просмотр профиля
Re: Форматирование флэшек - скрипт
« Ответ #1 : 16 Декабря 2023, 04:21:02 »
Начнём.
Цитировать
#!/bin/sh
Пора уже отвыкнуть от /bin, уже несколько лет как его нет. Пока ещё есть символическая ссылка, но может и она исезнет раньше, чем успеешь свой скрипт дописать.

Цитировать
EXT4 c 64 или без?
На своих устройствах даже основной диск форматирую в "старую версию ext", примерно до 2017года, чтобы даже старые версии систем умели с ним работать.
Например, отформатируешь сегодняшней версией, Ubuntu 16.04 не сможет её ипользовать.
« Последнее редактирование: 16 Декабря 2023, 05:27:12 от andytux »

Оффлайн Irshat

  • Автор темы
  • Активист
  • *
  • Сообщений: 554
    • Просмотр профиля
Re: Форматирование флэшек - скрипт
« Ответ #2 : 16 Декабря 2023, 04:44:37 »
но может и она исезнет раньше
так я его поставил , так на всякий, у меня 16,04 есть )) как не странно
а про 64 почему спросил, gpartad его не ставит , но он же (gpartad) как бы для HDD предназначен, а я флэхи хочу форматить, наверняка есть свои фишки, тонну инфы прочитал, как лучше форматировать, но у всех почему-то просто без опций

Пользователь добавил сообщение 16 Декабря 2023, 05:00:27:
, отформатируешь сегодняшней версией, Ubuntu 16.04 не сможет её ипользовать.
понял, не зря они там все без опций предлагают, в общем альфу в бету перевожу
Может еще dd добавить ??? для полного форматирования.
« Последнее редактирование: 16 Декабря 2023, 05:00:27 от Irshat »

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6917
    • Просмотр профиля
Re: Форматирование флэшек - скрипт
« Ответ #3 : 16 Декабря 2023, 05:32:14 »
Цитировать
echo "$DEVICE" | grep -q "sdb1" && LIST1=/dev/sdb1
А sda нет. Например, если на устройстве nvme, то флешка вполне может оказаться sda.

Оффлайн Irshat

  • Автор темы
  • Активист
  • *
  • Сообщений: 554
    • Просмотр профиля
Re: Форматирование флэшек - скрипт
« Ответ #4 : 16 Декабря 2023, 05:34:23 »
А sda нет.
да это я так от греха подальше ))

Пользователь добавил сообщение 16 Декабря 2023, 05:46:11:
да не в принципе все нормально, как я и хотел

Только я не понял, какого тайтл направо ушел ???

Пользователь добавил сообщение 16 Декабря 2023, 20:52:31:
Добавил dd для низкоуровнего форматирования.
#!/bin/sh
DEVICE=$(df -hT | grep "/media")
if [ "$DEVICE" = "" ]; then
zenity --info --text="Отсутствующие устройства" && exit 0;
fi
echo "$DEVICE" | grep -q "sdb1" && LIST1=/dev/sdb1
echo "$DEVICE" | grep -q "sdb2" && LIST2=/dev/sdb2
echo "$DEVICE" | grep -q "sdc1" && LIST3=/dev/sdc1
echo "$DEVICE" | grep -q "sdc2" && LIST4=/dev/sdc2
echo "$DEVICE" | grep -q "sdd1" && LIST5=/dev/sdd1
echo "$DEVICE" | grep -q "sdd2" && LIST6=/dev/sdd2
if [ "$EXIT" = "Форматировать" ]; then
zenity --info --text="Отсутствуют устройства" ;
fi
export MAIN_DIALOG='
    <window title="Форматирование флэш-накопителей">
    <vbox>
    <text wrap="false">
       <label>Выберите USB-накопитель для форматирования</label>
      </text>
   
<frame Подключенные устройства>
<text wrap="false">
       <input>df -hT | grep "/media"</input>
      </text>
</frame>
      <hbox>
      <frame Устройства>
      <list>
    <variable>DEVICE</variable>
    <item>'$LIST1'</item>
    <item>'$LIST2'</item>
    <item>'$LIST3'</item>
    <item>'$LIST4'</item>
    <item>'$LIST5'</item>
  </list>
   </frame>

      <frame Файловая система>
        <list>
    <variable>MODEL</variable>
    <item>Ext4</item>
    <item>NTFS - быстрое форматирование</item>
    <item>NTFS</item>
    <item>exFAT</item>
    <item>Форматирование через dd</item>
    <item>FAT32</item>
  </list>
      </frame>

      <frame Метка>
  <entry>
    <default>Usb-Disk</default>
    <variable>NAME</variable>
  </entry>
      </frame>
      </hbox>

  <hbox>
<button>
<label>Форматировать</label>
<input file>format.png</input>
</button>
  </hbox>

    </vbox>
    </window>
'

I=$IFS; IFS=""
for CONFIRMATION in  $(gtkdialog --name="Форматирование" --program=MAIN_DIALOG); do
   eval $CONFIRMATION
done
IFS=$I

[ $EXIT = Форматировать ] ;

umount $DEVICE
case $MODEL in
'Ext4')
x-terminal-emulator -T "Форматирование Ext4"  -e "sudo mkfs.ext4 -L $NAME $DEVICE"     
;;
'NTFS - быстрое форматирование')
x-terminal-emulator -T "Быстрое форматирование NTFS"  -e "sudo mkfs.ntfs -Q -L $NAME $DEVICE"       
;;
'NTFS')
x-terminal-emulator -T "Форматирование NTFS"  -e "sudo mkfs.ntfs -L $NAME $DEVICE"       
;;
'exFAT')
x-terminal-emulator -T "Форматирование exFAT"  -e "sudo mkfs.exfat -n $NAME $DEVICE"       
;;
'FAT32')
x-terminal-emulator -T "Форматирование FAT32"  -e "sudo mkfs.vfat -F 32 -n $NAME -I $DEVICE"
;;
'Форматирование через dd')
x-terminal-emulator -T "Низкоуровневое форматирование через dd"  -e "sudo dd if=/dev/zero of=/dev/$DEVICE bs=1M"       
;;
esac
zenity --info --text="Устройство отформатировано
Метка: $NAME
Файловая система: $MODEL "

Внимание!!! Флэшки под рукой нет, dd не проверял
« Последнее редактирование: 16 Декабря 2023, 21:05:59 от Irshat »

Оффлайн Irshat

  • Автор темы
  • Активист
  • *
  • Сообщений: 554
    • Просмотр профиля
Re: Форматирование флэшек - скрипт
« Ответ #5 : 25 Января 2024, 01:58:21 »
народ как в yad сделать выпадающее меню???
dd нормально работает.
переделал на yad, но не могу выпадающее меню сделать
« Последнее редактирование: 25 Января 2024, 14:56:50 от Irshat »

Оффлайн mahinist

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 3876
  • Ubuntu-20.04, Archlinux, Blackarchlinux, Gentoo
    • Просмотр профиля
Re: Форматирование флэшек - скрипт
« Ответ #6 : 25 Января 2024, 13:53:20 »
делаю скрипт для форматирования флэшек
Непонятно для чего это нужно  :coolsmiley: У вас мастерская по восстановлению флешек?  :o   

Пользователь добавил сообщение 25 Января 2024, 14:26:28:
в этом долбанном yad
К тому же это не красит вас, и наш форум вашим сленгом  :coolsmiley:
« Последнее редактирование: 25 Января 2024, 14:26:28 от mahinist »
31-регион

Оффлайн Irshat

  • Автор темы
  • Активист
  • *
  • Сообщений: 554
    • Просмотр профиля
Re: Форматирование флэшек - скрипт
« Ответ #7 : 25 Января 2024, 15:07:16 »
К тому же это не красит вас
извиняюсь, ну просто достало, наверно на фитоне попробую сделать.
я на свой дабл коммандер просто делаю утилитки, ну и форматировалка как бы не помешала бы )).
Главное на винде все быстро и красиво сделал, а на лине не как (((
« Последнее редактирование: 25 Января 2024, 15:10:56 от Irshat »

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6917
    • Просмотр профиля
Re: Форматирование флэшек - скрипт
« Ответ #8 : 25 Января 2024, 15:16:03 »
Так ведь есть gparted. Сейчас восходит Disks.

Оффлайн Irshat

  • Автор темы
  • Активист
  • *
  • Сообщений: 554
    • Просмотр профиля
Re: Форматирование флэшек - скрипт
« Ответ #9 : 25 Января 2024, 15:33:55 »
andytux, да не Антитукс, я хочу чтобы в любой системе все работало. Портабле как бы делаю.
« Последнее редактирование: 25 Января 2024, 17:50:53 от Irshat »

Оффлайн Usermaster

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 2623
    • Просмотр профиля
Re: Форматирование флэшек - скрипт
« Ответ #10 : 25 Января 2024, 15:38:46 »
я хочу чтобы в любой системе все работало
А я в консоли cfdisk использую, на любой системе работает и довольно просто всё.
А чего это вы тут делаете, а?

Оффлайн Irshat

  • Автор темы
  • Активист
  • *
  • Сообщений: 554
    • Просмотр профиля
Re: Форматирование флэшек - скрипт
« Ответ #11 : 25 Января 2024, 16:01:44 »
cfdisk

хм интересно, но хотелось бы гуи ))

Оффлайн Usermaster

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 2623
    • Просмотр профиля
Re: Форматирование флэшек - скрипт
« Ответ #12 : 25 Января 2024, 16:44:59 »
В оси которая лично у меня везде стоит и такая присутствует :)

А чего это вы тут делаете, а?

Оффлайн Irshat

  • Автор темы
  • Активист
  • *
  • Сообщений: 554
    • Просмотр профиля
Re: Форматирование флэшек - скрипт
« Ответ #13 : 25 Января 2024, 17:51:43 »
cfdisk
Что-то у меня не получилось с ним сработать. Write же чтобы сохранил. Хотел две 11 гиговые объединить не вышло (

Пользователь добавил сообщение 25 Января 2024, 17:53:43:
Ах да у меня это тествоый комп , что хочу то делаю )))
« Последнее редактирование: 25 Января 2024, 17:53:43 от Irshat »

 

Страница сгенерирована за 0.05 секунд. Запросов: 22.