Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Автоматическая установка Windows 2000/XP/2003 (http://forum.oszone.net/forumdisplay.php?f=32)
-   -   Форматирования NTFS-раздела в DOS (http://forum.oszone.net/showthread.php?t=65896)

DmitryOlenin 19-05-2006 01:37 439766

Форматирования NTFS-раздела в DOS
 
Хочу реализовать форматирование любого логического диска из DOS.
Как все знают разделы NTFS из доса форматировать не удается.
Можно зато развернуть образ NTFS-раздела сделанный гостом, таким образом все, что было, потрется.

В линуксе форматируется просто раздел жесткого диска, но линукс для этих целей не очень удобен.

Соответственно, что хочется...
1. Вывод на экран в ДОСе всех разделов(в том числе NTFS).
2. Выбор одного из этих разделов.
3. В зависимости от того, является ли он NTFS - запуск либо развертывания образа, либо простого форматирования.

Жду ваших предложений.

--------------------------------------

Да, кстати, пользуясь случаем, повторю вопрос, на который так никто и не ответил в соседней теме...

Устанавливается FullUnattendedWindows с CD при помощи setupldr.bin(обычный вариант).
Имеется 2 отформатированных пустых диска одинакового размера(например 30Gb) с FAT32.
Соответственно локальные диски C и D.

Cтавится все почему-то все на диск D.
Выдержка из winnt.sif:
Код:

[Data]
        Autopartition = 1
[Unattended]
        FileSystem=LeaveAlone

Очень надеюсь на то, что у кого-нибудь есть здравые мысли.

botvin 19-05-2006 06:30 439786

DmitryOlenin
А меня бы устроил загрузочный диск с Recovery Console- там есть DiskPart с возможностью выполнить скрипт и команда format. Да и на случай восстановления может пригодиться. Вот только для работы с реестром я там утилит не видел.

ProkVS 19-05-2006 07:22 439792

DmitryOlenin
1. Попробуй Hiren's BootCD - ОООчень полезная штука, на все случаи жизни, в том числе и с NTFS!

2. Что бы наверняка исключить установку на D делаю следующим образом:
В загрузочное меню (BCDW) встраиваю PartitionMagic 8.05, с помощью его перед установкой подготавливаю винт, т.е. разбиваю на разделы, форматирую (NTFS или FAT) и самое главное - диск С делаю активным! Всегда неизменно превосходный результат!

DmitryOlenin 20-05-2006 01:37 440105

botvin, ProkVS
Спасибо за советы. Но у меня весьма конкретные вопросы.
Рекавери консоль - это другое. Мне нужно форматирование одним/двумя нажатиями.
HirenBootCd я "пробую" чуть ли не с версии 5.0. Мне нужно не это...
У меня нет проблем отформатировать NTFS-раздел миллионом способов. Кроме PartitionMagic есть куча прог, позволяющих делать это из доса. А еще можно форматировать из самой установки, сделав sif-файл с выбором раздела для установки.

Вопрос не в том, что я не знаю, каким способом можно отформатить диск NTFS.
Вопрос в том, как сделать это именно так, как мне хотелось бы. То есть за минимально возможное время.

XXXler 20-05-2006 20:18 440347

DmitryOlenin, может здесь будет подходящий вариант: http://forum.oszone.net/thread-57498.html

DmitryOlenin 21-05-2006 23:20 440717

XXXler
Тему эту читал. Сейчас перечитал...
Никаких упоминаний про то, что мне нужно, к сожалению :(

botvin 22-05-2006 13:46 440913

DmitryOlenin
Может сделать WinXP PE загрузочный диск, где в автозапуске будут находиться все требуемые команды? А последней командой shutdow -r компьютер и приступить уже к установке

DmitryOlenin 24-05-2006 01:25 441617

botvin
А можно как-то сделать, чтобы при этом он занимал... Ну, скажем, мегабайта 2?
Если нет, то толку чуть...

botvin 30-05-2006 18:21 444274

DmitryOlenin
Цитата:

А можно как-то сделать, чтобы при этом он занимал... Ну, скажем, мегабайта 2?
Если нет, то толку чуть...
Если говорить про 2 мб, то на ум кроме линуксовой загрузочной дискеты с драйвером NTFS ничего и не приходит. В линуксе возможностей побольше и автоматизировать легче, но потом NT/XP не воспринимает загрузочные записи как родные (впрочем как и от pqmagic), хотя и работает. Но случись что - ломай голову, вдруг несовместимость сыграла?

DmitryOlenin 30-05-2006 22:38 444356

botvin
Линукс уже есть. Но это не то, чего я хочу.
В первом посте я описал работающий вариант, занимающий копейки. Только я не знаю, как именно его реализовать.

botvin 31-05-2006 08:11 444437

DmitryOlenin
Цитата:

1. Вывод на экран в ДОСе всех разделов(в том числе NTFS).
2. Выбор одного из этих разделов.
3. В зависимости от того, является ли он NTFS - запуск либо развертывания образа, либо простого форматирования
1-е два пункта из-под доса легко решаются - прочитать MBR из с 4-мя записями, по смещению перейти к разделу и прочитать тип FS - эта програмка будет весить несколько килобайт. Если записи отсутствуют их легко создать.
Вот форматировать я стараюсь средствами самой ОС, чтобы потом не было недоразумений со структурой FAT/MFT, этот вопрос в моей схеме не решается. А вот в recovery console это не проблема.

DmitryOlenin 31-05-2006 13:04 444573

botvin
Цитата:

1-е два пункта из-под доса легко решаются - прочитать MBR из с 4-мя записями, по смещению перейти к разделу и прочитать тип FS - эта програмка будет весить несколько килобайт. Если записи отсутствуют их легко создать.
А можно поподробнее? Хотелось бы узнать, как именно это можно реализовать...

botvin 01-06-2006 14:22 445063

DmitryOlenin
Цитата:

А можно поподробнее?
Можно, зная форматы системных таблиц. Мне надо дома покопаться... под дос не программировал уже лет 10

DmitryOlenin 01-06-2006 14:30 445069

botvin
Спасибо большое. Буду ждать результатов.
Если все получится, то можно будет элегантно форматировать любые разделы из чистого дос-а.

botvin 06-06-2006 07:54 447156

DmitryOlenin
Цитата:

Если все получится, то можно будет элегантно форматировать любые разделы из чистого дос-а
Тут поправка - это не форматирование, а только разбиение диска на разделы - создаются первичные, расширенный раздел и в нем подразделы. Вот с форматированием еще мне разбираться и разбираться, т.к. это ОС-зависимая операция.
Я призадумался над форматом командной строки - наверное было бы удобно задание на разбивку сформулировать так:

Цитата:

diskptab -pri:szp1,szp2,szp3 -ext:sze1,sze2...
где опция -pri определяет кол-во и размеры первичных разделов, а -ext задает кол-во и размеры подразделов расширенного раздела, размер которого вычисляется по сумме подразделов.
Мне кажется будет исчерпывающе?

DmitryOlenin 06-06-2006 10:07 447219

botvin
Разбивка как раз мне совершенно не интересна.
Я хочу именно форматировать диск. Выводить список разделов, давать пользователю возможность выбора, а затем, в зависимости от типа файловой системы либо форматировать (FAT 32), либо разворачивать образ ghost-a.

botvin 06-06-2006 20:11 447628

DmitryOlenin
Цитата:

Разбивка как раз мне совершенно не интересна. Я хочу именно форматировать диск.
Мне тогда непонятно: если есть готовые разделы, почему тогда не применить готовую утилиту format ?

DmitryOlenin 06-06-2006 23:26 447693

botvin
Я описал все довольно подробно в 1м сообщении.
Если один из логических дисков является NTFS, то в ДОСе он не виден. Например, C -> FAT32, D -> NTFS, E -> FAT32.
В досе будут только C и D. То есть 2й раздел отформатировать не удастся, более того - можно по ошибке(+ по незнанию) вместо настоящего диска D отформатировать то, что ДОС считает таковым.

Соответственно хотелось бы:
1. Вывод на экран в ДОСе всех разделов(в том числе NTFS).
2. Выбор одного из этих разделов.
3. В зависимости от того, является ли он NTFS - запуск либо развертывания образа, либо простого форматирования.

botvin 07-06-2006 06:40 447748

DmitryOlenin
Кажется мне понятна основная проблема - нет стандартного инструмента под досом для идентификации не-дос разделов, главным образом ntfs.
Тогда можно поставить такую задачу: получить список всех партиций (для каждого HDD) с их типами (ntfs, linux, fat32...) и размерами - результат (в виде файла на ДОС-дискете? на вирт. диске?) использовать для построения строк bat-файла (последующего развертывания/форматирования)

DmitryOlenin 07-06-2006 16:57 448051

botvin
Да, вариант хороший. Лучше именно на виртуальном диске, чтобы независимо было от железа.
Причем этот файл можно сразу вывести на экран.
Это как-то возможно сделать?

botvin 07-06-2006 21:16 448170

DmitryOlenin
Собственно осталось обработку ошибок написать и формат вывода разработать. На экран и сейчас вывожу информацию. Вот на новых дисках (SATA & >160 gb) или с новыми контроллерами не пробовал - могут возникнуть заморочки. Посмотрим

botvin 09-06-2006 15:34 448977

Опробовал свою утилиту на дисках SATA 80Gb, IDE 40-200Gb, Promise RAID Controller + 2xIDE 80Gb - оказывается везде работает. Похоже основным ограничением является поддержка bios int13ext и установка на дисках LBA-режима (у меня только оч. старые компы не соответствуют).

DmitryOlenin 09-06-2006 18:03 449066

botvin
Есть ли возможность протестировать?
Что еще осталось сделать до полной работоспособности?

botvin 14-06-2006 10:32 450409

Вложений: 1
DmitryOlenin
Извиняюсь за большую задержку

Поскольку программу-максимум не выполнил (нет автом. определения присоединенных жест. дисков) - пользоваться так:
viewpart [d] [>out_file]
где d = 0,1,2... - номер присоединенного диска (по умолч. 0)
обычно IDE-диски нумеруются сначала, потом уже RAID, SCSI и т.п.

Далее видится такой путь:
1. выбор формата вывода на экран/в файл
2. включение в процесс установки ОС (предварительный этап, плавно перетекающий в дальнейшую установку)

достал описание ntfs, может несложно окажется подготовить и форматированный раздел?

DmitryOlenin 14-06-2006 18:49 450647

botvin
Спасибо за заинтересованность данным вопросом. И, конечно, за кодинг :)

К сожалению архив битый :( Проверял 2 раза...
Я так понимаю, что программа выводит куда-либо (на экран или в файл) информацию о разделах определенного диска.
Тогда возникают вопросы:

1. Как можно будет "выбрать" один из разделов?
2. Как, в зависимости от выбора запустить ту или иную программу?
3. Планируется ли сделать "подхватывание" всех hdd?

botvin 14-06-2006 22:11 450709

DmitryOlenin
Цитата:

К сожалению архив битый
Я тоже так думал (оперой скачивал для проверки) - файл не скачивается полностью, а IE скачалось нормально.
Правда только на работе, дома почему-то php-файл грузится (не разбирался еще)

Для этой версии рез-тат выглядит так (один из моих дисков):
Код:

viewpart.exe 0

partition    offset  size,sec    size,Mb  type  descript
-----------------------------------------------------------
0      *        63    4208967      2055  0x0B  FAT32
1      -  4209030  73947195      36107  0x0F  Win extended
  In extended partition:
                      16964577      8283  0x07  NTFS or HPFS
                      18667467      9114  0x0B  FAT32
                      10393992      5075  0x07  NTFS or HPFS
                      4289292      2094  0x07  NTFS or HPFS
                      1028097        502  0x83  Linux native
                      7164927      3498  0x83  Linux native
                      1028097        502  0x82  Linux Swap
                      1028097        502  0x83  Linux native
                      13382082      6534  0x83  Linux native

Сейчас я вижу еще недостаток - если будет место для создания раздела, а раздела еще нет, то это пустое место не покажется, т.к. перечисляются только имеющиеся разделы. Может завтра-послезавтра доделаю.

botvin 14-06-2006 22:32 450717

По поводу заинтересованности - у меня следующая цель:
Надо к моменту загрузки с автоустановочного CD иметь как мин. два ntfs-раздела (причем 2-й должен быть отформатирован под ntfs, т.к. туда направляются все профили и файл подкачки), 1-го может и не быть - я его создам вручную в начале установки, было-бы место. Fat32 меня не устраивает. Исходное содержимое диска меня не волнует (это либо новый, либо старый где уже все спасено).
Даже если удастся создать разделы (даже форматированные) - все равно похоже светит 2-этапная установка с перезагрузкой между этапами, т.к. не вижу способа вставить внешний код своей программы в процесс загрузки с xpcd.
А было бы здорово влезть туда - можно было бы исключить все ручные работы.

botvin 15-06-2006 09:21 450826

Вложений: 4
Еще попытка закачать тот же архив в разных вариантах

botvin 15-06-2006 09:52 450844

Еще раз проверил: все 4 архива замечательно скачиваются с помощью IE6, файл внутри идентичен исходному. А вот Оперой не докачивается - архив оказывается порушенным.
Содержимое всех архивов одно и то же - либо файл viewpart.exe, либо viewpart.ex_ (перед запуском надо поменять расширение на exe)

DmitryOlenin 15-06-2006 10:13 450858

botvin
Спасибо, архив скачался.
К сожалению моего рейда он не видит в упор. То есть не помогает прописывание цифр от 0 до 10.

Судя по примеру, прога выводит подробную информацию о разделах. Можно ли как-то сделать после вывода на экран выбор одного из них? Например, при помощи choice.com. И потом, в зависимости от выбора, форматировать или запускать разворачивание какого-либо ghost-образа.

Я просто пока плохо представляю себе конечный результат...

botvin 15-06-2006 18:07 451081

DmitryOlenin
Цитата:

К сожалению моего рейда он не видит в упор.
Поскольку я еще не нашел универсального средства определения дисковой конфигурации мне интересно, а видят ли диски в этой же ситуации такие программы как diskedit и pqmagic? (из-под доса конечно). viewpart наверное выдает что-то вроде Invalid argument? Чтобы увидеть результат удобно сконфигурировать простейшую виртуальную дос-машину (я использую vmware) с ide-диском и какими-нибудь разделами на нем.
Цитата:

Можно ли как-то сделать после вывода на экран выбор одного из них?
Концептуально я вижу 2 варианта: либо viewpart выступает как составная часть группы команд большого bat-файла, либо она сама обрабатывает собственные результаты и в завис-ти от них выполняет какие-то команды, пусть даже внешние.
1-й вариант подразумевает что после выполнения viewpart остается файл-протокол ее работы в виде, удобном для дальнейшего анализа средствами ДОС и простыми утилитами, т.е. по его содержимому должны определиться все последующие команды. Мне в голову приходит формат ini-файлов с учетом иерархии типа
Код:

[hdd0]
size=79000

[hdd0.primary0]
size=20000
type=fat32

[hdd0.primary1]
size=10000
type=none
....

анализировать его можно утилитами типа grep и т.п. на присутствие определенных строк и соответствующих чисел, после чего придавать shell-переменным определенные значения
Код:

set need_format_fat32=0
set need_format_ntfs=1
....
if need_format_fat32==0 goto format_0      ;форматируем 0-раздел
if need_format_fat32==1 goto ghost_1      ;разворачиваем образ в раздел 1
....

в общем работы тут много, но и свободы побольше

Мне же легче все облечь своей программой, а таблицу ситуаций и соотв-х выполняемых команд взять например из текстового файла, кт-й можно дописывать/переписывать.

DmitryOlenin 15-06-2006 18:30 451094

botvin
2 разных контроллера дома и на работе. Не работает на рейде совсем.
Буду ждать развития идеи в данном направлении...
Да, viewpart выдает именно Invalid argument.

DOS Pqmagic проверю, отпишусь в тему.

Да, было бы просто отлично, если бы программа сама запоминала выбранный диск/раздел и потом, в зависимости от настроечного файла запускала что-либо или делала что-то еще.

botvin 15-06-2006 20:47 451149

Забыл еще вот что уточнить надо: видятся ли диски на контроллере в биосе (не контроллера, а в биосе материнки), и что это за контроллер и диски?

DmitryOlenin 15-06-2006 21:29 451165

botvin
Проверил. Symantec Pmagic 8.05 для DOS разделы видит.
Впрочем, их также видит стандартный fdisk.
Биос не видит диска, но он 2003г, а тогда с SATA-RAID, я думаю, была напряженка.

Материнская плата - ASUS A8V Deluxe.
Чипсет северного моста - VIA K8T800Pro.
Чипсет южного моста - VIA VT8237.

Еще есть промисовский контроллер, но я им не пользуюсь.

Диски - 2 Sata диска по 80Gb от Seagate. ST380817AS (4MR1E4SQ и 4MR4TR6L). RAID 0.

botvin 15-06-2006 22:55 451207

Цитата:

Биос не видит диска, но он 2003г
это странно, ведь биос на плате просто обязан видеть все свои устройства (встроенный sata-контроллер), разве только там где-то можно отключить sata-raid. А что в биосе указано в качестве загрузочного устройства ?
А прога как раз использует прерывание биос int13h, т.е. видит не больше биоса.
Диск один у меня такой же, завтра поэкспериментирую с установками в биосе, чтоб диска не видно было, а стандартные проги его видели (невероятно)

DmitryOlenin 16-06-2006 11:38 451409

botvin
В качестве загрузчика стоит конктроллер в биосе.
Я говорил о дисках на первой вкладке - там видно только IDE диски, насколько я понимаю.
Видимо, мы неправильно друг друга поняли.

Полагаю, что pqmagic и fdisk не пользуются какими-то особенными способами, чтобы мой диск увидеть(они массив видят как 1 диск).
Да, кстати, всяческие тесты HDD типа SpinRite тоже все видят.
Значит собака с Viewpart порылась в чем-то другом.

botvin 20-06-2006 13:52 452593

Вложений: 1
Непонятно, у меня не нашлось компьютеров, где бы диски не были видны для viewpart. В пятницу закупаю пару SATA для рейда, правда MB не такая накрученная - попробую воспроизвести ситуацию.

А пока придется тыкаться вслепую: в архиве 2 файла, один просто выдает количество жест. дисков в системе (сколько обнаружит) - chkhdd.exe, и новая версия viewpart.exe - ее без параметров, она сама будет перебирать все возможные варианты (0-127), если чего найдет - выдаст HDD# и его таблицу разделов.
У меня, правда, ко всем имеющимся дискам еще выводит шапку для HDD31 без всякой информации (фантом какой-то) - не разобрался пока почему

DmitryOlenin 22-06-2006 16:27 453675

botvin
Пока потестил не на рейде.
Из-под винды почему-то работать viewpart.exe не захотел. Наверное какие-то обращения к диску хитрые.
chkhdd.exe диск определил.
Из доса viewpart.exe показал мне таблицу разделов. Правда почему-то показал 0,1 размеры 2х разделов, а затем повторил размер второго раздела.
Видимо, если бы было во exteded партиции 2 логических диска, то показал бы их.

Каковы дальнейшие направления развития?

botvin 29-06-2006 09:30 455957

Вложений: 1
Наконец-то и у меня появился рейд, разделы которого не просматриваются. К сож. скоро этот комп отдаю, боюсь не успею эту проблему отладить.
DmitryOlenin
Цитата:

Из-под винды почему-то работать viewpart.exe не захотел
Все эти утилиты исключительно для работы в DOS - можно записать их на загр. дискету например.
Цитата:

Правда почему-то показал 0,1 размеры 2х разделов, а затем повторил размер второго раздела
Хорошо бы посмотреть на вывод программы с комментариями что не соответствует или непонятно. В файл вывести обычным перенаправлением programm.exe > partit.log
Сейчас выкладываю (сырую) расширенную версию chkhdd.exe - определяет кол-во ж.дисков и их параметры. Форма вывода в этой версии - заголовок диска + 4 строчки, например для моего компа:
Код:

HDD0      38166 Mbytes
===========================================================
HDD access subset  supported
Device lock/eject NOT supported (NOT CD/DVD drive)
EDD service  supported
64-bit extension  supported
-----------------------------------------------------------
partition    offset  size,sec    size,Mb  type  descript
-----------------------------------------------------------
0      *        63    4208967      2055  0x0B  FAT32
1      -  4209030  73947195      36107  0x0F  Win extended
  In extended partition:
                      16964577      8283  0x07  NTFS or HPFS
                      18667467      9114  0x0B  FAT32
                      10393992      5075  0x07  NTFS or HPFS
                      4289292      2094  0x07  NTFS or HPFS
                      1028097        502  0x83  Linux native
                      7164927      3498  0x83  Linux native
                      1028097        502  0x82  Linux Swap
                      1028097        502  0x83  Linux native
                      11438217      5585  0x83  Linux native
                      1943802        949  0x0B  FAT32


HDD1      76319 Mbytes
===========================================================
HDD access subset  supported
Device lock/eject NOT supported (NOT CD/DVD drive)
EDD service NOT supported
64-bit extension  supported
-----------------------------------------------------------
partition    offset  size,sec    size,Mb  type  descript
-----------------------------------------------------------
0      -    16065  156280320      76308  0x0F  Win extended
                    154545237      75461  0x07  NTFS or HPFS
                      1734957        847  0x0B  FAT32

развитие такое:
1. допишу анализ файла-задания (что выполнять при каком исходе)
2. для себя - надо освоить программно ntfs-форматирование
3. найти универсальный путь для доступа к параметрам дисков (вот не хотелось этим заморачиваться, но это актуально - рейды сейчас кругом, да еще и scsi будут)
p.s. неожиданно для лета объем работы увеличился, все медленно движется

nj_ 12-09-2006 16:21 483943

Не знаю туда-ли но все же
Есть какие-то файловие менеджери для роботи с дисками НТФС в досе
(типа наворочений ФАР)

Псоветуйте чонить плз

Shido 13-09-2006 02:10 484184

Всё заглохло?

DmitryOlenin 14-09-2006 22:47 485056

Shido
Вы про разработку botvin-а? Надеюсь, что нет.
Я все жду готового скрипта, чтобы добавить в свой комплект и получить полнофункциональное решение для форматирования чего угодно ;)


Время: 10:44.

Время: 10:44.
© OSzone.net 2001-