URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 6915
[ Назад ]

Исходное сообщение
"Скрипт разбивающий винчестер"

Отправлено xfree86 , 06-Ноя-07 15:39 
Добрый день...

Необходимо написать скрипт, который проверял бы все жесткие диски (IDE и SATA) на компьютере... И если есть диски, на которых нет разделов (тоесть вставили новый пустой винт), то создавал бы на нем один раздел ext2 (можно ext3 - не важно) размером с весь жесткий диск...

Помогите

Самое главное для меня сейчас... Узнать есть ли на диске разделы... И есть нет, то разбить его...
Как красивее проверить наличие разделов на диске?


Содержание

Сообщения в этом обсуждении
"Скрипт разбивающий винчестер"
Отправлено DeadMustdie , 06-Ноя-07 16:23 
fdisk -l
man fdisk

"Скрипт разбивающий винчестер"
Отправлено xfree86 , 06-Ноя-07 16:27 
>fdisk -l
>man fdisk

угу
grep fdisk???

Зачем писать, если толком не знаешь в чем дело и что требуется... Нужен скрипт...
А написать в консоли fdisk -l я умею...

man man


"Скрипт разбивающий винчестер"
Отправлено DeadMustdie , 06-Ноя-07 17:11 
Лично мне скрипт не нужен. Если он кому нужен, лично я наивно полагаю, что этот кто-то будет пытаться этот самый скрипт написать.

Начать можно хотя бы примерно так:

fdisk -l | while read ln; do
  dk=`(echo $ln | sed -n 's/^Disk \(.*\)\:.*/\1/p')`;
  if [ ! -z "$dk" ]; then
    echo $dsk
  fi
done


"Скрипт разбивающий винчестер"
Отправлено xfree86 , 08-Ноя-07 12:57 
Подскажите, как с помощью sfdisk создать на диске раздел ext2 во весь жесткий жиск (на диске разделов нет)...



"Скрипт разбивающий винчестер"
Отправлено Arpo , 08-Ноя-07 13:16 
>Подскажите, как с помощью sfdisk создать на диске раздел ext2 во весь
>жесткий жиск (на диске разделов нет)...

sfdisk фаиловыьх систем не создает.
sfdisk has four (main) uses: list the size of a partition, list the partitions on a device, check the partitions on a device, and - very dangerous - repartition a device.
Перевод google translate :):):)
sfdisk имеет четыре (основных) использует: перечень размер раздела, список разделов на устройство, проверьте разделы на устройства, - и очень опасная - передела устройство.

Фаиловую систему можно создат при помощи комманд mkfs, newfs(Solaris,FreeBSD) и mke2fs.
Вот пример использования mke2fs:
Ext2: mke2fs /dev/hda1
Ext3: mke2fs -j /dev/hda1


"Скрипт разбивающий винчестер"
Отправлено xfree86 , 08-Ноя-07 13:21 
>[оверквотинг удален]
>and - very dangerous - repartition a device.
>Перевод google translate :):):)
>sfdisk имеет четыре (основных) использует: перечень размер раздела, список разделов на устройство,
>проверьте разделы на устройства, - и очень опасная - передела устройство.
>
>
>Фаиловую систему можно создат при помощи комманд mkfs, newfs(Solaris,FreeBSD) и mke2fs.
>Вот пример использования mke2fs:
>Ext2: mke2fs /dev/hda1
>Ext3: mke2fs -j /dev/hda1

Это я все понял и знаю... Я имел ввиду как раз разде созать)))



"Скрипт разбивающий винчестер"
Отправлено Arpo , 08-Ноя-07 13:33 
>[оверквотинг удален]
>>проверьте разделы на устройства, - и очень опасная - передела устройство.
>>
>>
>>Фаиловую систему можно создат при помощи комманд mkfs, newfs(Solaris,FreeBSD) и mke2fs.
>>Вот пример использования mke2fs:
>>Ext2: mke2fs /dev/hda1
>>Ext3: mke2fs -j /dev/hda1
>
>Это я все понял и знаю... Я имел ввиду как раз разде
>созать)))

)Я бы мог написать
man sfdisk :):)....
Но не стану, я лучше приведу пример.Я этого не проверял, одна из этих комманд должна сработать. Скорее всего вторая.

sfdisk /dev/hdc << EOF
0,,,*
EOF

или так

sfdisk /dev/hdc << EOF
0,,,
EOF

Если не сработает все же почитайте man, а лучше поgooglите на эту тему.


"Скрипт разбивающий винчестер"
Отправлено Arpo , 08-Ноя-07 13:38 
>[оверквотинг удален]
>EOF
>
>или так
>
>sfdisk /dev/hdc << EOF
>0,,,
>EOF
>
>Если не сработает все же почитайте man, а лучше поgooglите на эту
>тему.

Вот к сведению, чтоб долго не искали.

How to use Sfdisk to create or repartition your hard drive.
Well, one powerful feature of sfdisk is to repartition your hard drive or create new partitions. Create a file called "Test.data" which has entries in the following format, one per line, and the fields are comma delimited:

Start, Size, ID, Bootable

Start = cylinder to start at (first available cylinder if left blank), Size = number of cylinders (all if left blank), ID = type of partition (Linux, Swap, MSDOS, or other), and Bootable = if this partition is bootable. There are other options, but we won't get into them in this article.

To make it so you have 1 partition of 136 cylinders, a second partition with 254 cylinders of the SWAP ID (82), and a third Linux partition bootable that grabs the rest of the space (ID = 83), make a file list this,

1,136
101,254,82
201,,83,*

and then issue this command to take this configuration and execute it on your slave hard drive on your secondary controller

/sbin/sfdisk /dev/hdd << Test.data

and then issue this command to see what you did

/sbin/sfdisk /dev/hdd

Again, it is highly recommended you read the manpage to figure out how to format this data file. Any fields you leave blank have default values described above.


"Скрипт разбивающий винчестер"
Отправлено xfree86 , 08-Ноя-07 19:23 

>
>sfdisk /dev/hdc << EOF
>0,,,
>EOF

Спасибо, работает)


"Скрипт разбивающий винчестер"
Отправлено Arpo , 09-Ноя-07 10:01 
>
>>
>>sfdisk /dev/hdc << EOF
>>0,,,
>>EOF
>
>Спасибо, работает)

Незачто...)


"Скрипт разбивающий винчестер"
Отправлено Virgilij , 24-Июн-09 18:26 
Привет) мне нужно написать скрипт, который бы разбивал через команду fdisk флешку на три раздела, первый vfat (fat16), второй ext2, третий linux-swap. Точней понятно, что fdisk не может форматировать ни в какую фс, мне просто нужно, чтоб он их соответствующе пометил. В общем, я уже написал такой скрипт, но так как опыта в этом деле маловато, возникли следующие проблемы:
1. Какой цифровой индекс для отметки фс в ext2?
2. Есть ли возможность не фиксированно вводить количество мб в скрипт, а чтоб я имел возможность выбора количества мб дискового пространства по своему хотению, непосредственно при запуске скрипта (при запуске скрипта есть некоторое подобие гуя, в этом вроде как шоумодули помогают)? Например через переменную NUMPICKERDETAIL, только как с помощью неё сделать один раздел, я более менее в курсе, но как сделать так, чтоб она проверяла сколько осталось цилиндров или вообще места на диске и из этого брала для размечения второго, а потом и третьего, уже знаний не хватает..
Буду благодарен за любую помощь.