[Цитировать]

    Gemostarter
  • 15956
  • Стаж: 7 лет 1 месяц
  • Сообщений: 324
  • Репутация:35

    [+] [-]
conty9, давно хотел спросить: может pecmd своими средствами перемонтировать флешку с одной буквы на другую? Сейчас использую mounvol...
51179Он же наверное инфу из diskpart получает.
Не, дискпарт там не используется. Да и нелогично это - на просьбу дать шустрый способ получения инфы о накопителях отвечать скриптом с использованием этой весьма долго запускающейся программы.

[Цитировать]

    Гость
  • Репутация:0

    [+] [-]
dialmak, да, можно получить инфу без присвоенной буковки диска, по номеру накопителя. DiskPart не используется. Вообще, PART - очень мощная (в неумелых руках - и опасная) команда. Она позволяет: получать инфу о диске или разделе, инициализировать накопитель (как MBR или GPT), создавать/удалять/изменять/скрывать/показывать разделы (основные и расширенные), активировать/деактивировать их, устанавливать загрузочную запись в MBR/PBR и сохранять её в файл, обновлять для ОС инфу о диске/разделе, и многое другое.

Описание PART - мой перевод, не совсем корректный (я ещё не со всеми функциями разобрался)

PART [-gui] [-usb] [-up] [-admin] [-super] [-align[=..]] [-alignend[=..]] [-clear] [-raw]
[-swap:id] [-CHS=C:H:S] [del/init] [-img=FileName|Disk]#Part [a|-a] type [[-]start [len]]
PART -gpt [-up] [-admin] [-super] [-align[=..]] [-alignend[=..]] [-clear] [-raw] [-cmp]
[del/init] [Disk]#[+]Part -|typeguid -|start -|len|@FinalSectorAddr guid -|Attr -|Name
PART update [Disk]
PART [-ahup] hupdate [Disk] `очистить диск
PART [-devid] list disk [Disk],VarName `вернет в VarName значение DEVID
PART [-devidx] list disk [Disk],VarName `вернет в VarName значение physical ID
PART [-hextp] [-phy] [-phy#] [-fill] list part [Disk[#Part]],VarName
PART [-hextp] [-fill] [-raw] list drv DrvLetter,VarName
PART /mbr[=nt6|=win|=nt5|=dos|=[*LenLimit*]FileName] [-img=FileName|Disk]
PART [-phy] /pbr[=nt6[fat]|=win[fat]|=nt5[fat]|=dos|=[*LenLimit*]FileName]
[-img=FileName|Disk]#Part //fat относится к файловым системам FAT/FAT32/ExFAT
--------------------------------------------
В безопасном режиме (по умолчанию) команда работает только с основными незаблокированными разделами 3 или 4, исключая расширенные разделы.
-gui графический режим;
-usb для отображения только USB-дисков
-report[:RetVarName] для отображения списка, другие параметры игнорируются.
-admin расширенный режим (опасный), можно работать с разделами 1 и 2;
-super супер режим (довольно опасный), можно работать с расширенным разделом;
-align выровнять от начала, а затем =64K, =128K, =512K, =1M и т. д .
-alignend выровнять от конца =64K, =128K, =512K, =1M и т. д .
-clear принудительно очистить имеющуюся информацию в разделе
-raw не корректировать начало/размер, или назад (Dev# Part# Type Bus).
-up обновить для ОС таблицу разделов диска (после изменений)
-hup для очистки съемного диска
-ahup для очистки диска
-iv=n для извлечения элемента n#.
C:H:S отображение HeadsPerCylinder:SectorsPerHead:SectorSize
Disk от hd0 до hdN, по-умолчанию hd0, ведущий символ hd может отсутствовать для этого типа (т.е., можно указывать 0...N).
Part 1-4, физический идентификатор 4 основных разделов в таблице разделов.
Отличается от логического идентификатора, используемого для монтирования.
Если таблица разделов является нулевой или это расширенный раздел, для ID не будет идентификатора
+L для добавления логического раздела в конец расширенного раздела
-L для удаления последнего логического раздела расширенного раздела
Если идентификатор раздела является физическим идентификатором для логического раздела (>=5), то практически возможно для изменения его активации, типа, начала и длины.
[a|-a] индикация активации
-a удалить активацию раздела, в противном случае она останется неизменной
type тип раздела,0-255. 0 - полностью скрытый раздел, неопределяемый средствами разделов и ОС.
Если раздел назначен новым типом, этот раздел можно сразу же использовать
Если значение <0 или отсутствует, он тип раздела не изменяется.
Диск, часть, тип, начало и длина могут быть в шестнадцатеричном формате.
start начальная позиция на диске. Начальный байт диска равен 0. Емкость диска
кратна 512 байтам (автоматически сжимается и выравнивается внутри).
Это может быть 0. Если <0 или отсутствует, оно остается неизменным.
"-" указывает на конец последнего раздела с использованием «списка», и любая корректировка выравнивания конца не будет влиять на «len» (размер раздела).
Для логического раздела может быть добавлен суффикс +, указывающий пропуск определенного размера.
len размер, может равняться 0. Если <0 или отсутствует, остается неизменным.
Для Start/len можно использовать множители TGMKS (terabyte, gigabyte, megabyte, kilobyte, sectors: K=1024 байт, S=512 байт).
del чтобы удалить раздел полностью. Команда для удаления: PART del [Disk]#Part или PART [Disk]#Part -a 0 0 0
init для инициализации раздела GPT/MBR
----------------------------------------------
update [Disk] для обновления таблицы разделов в ОС. По-умолчанию Disk 0
[-ahup] [-up] hupdate [Disk] для принудительной очистки таблицы разделов выбранного диска. По-умолчанию Disk 0
----------------------------------------------
list disk для перечисления всех разделов, если диск не указан. Если указан, вернет такую информацию о диске: DiskID, Size, CylinNum, HeadNum, SetorNum, SectorSize, MediaType, Sign(Hex), BusType, PartType, RemvFixDisk.
list part:[Disk] hd0 по-умолчанию, если раздел не указан, отобразит все разделы ("-" нет, "@" расширенный раздел). Если присутствует, вернет такую информацию указанного раздела, как: PartID, Type, BootMark, BaseOffset, Size, HideSectorNum, End, DrvLetter.
-hextp в шестнадцатиричном счете 0xNN.
-phy разделы в физическом ID: 4 основных раздела 1-4 и логические разделы 5-N
-phy # для экспорта физического идентификатора.
-fill Существует заполнитель *, если нет буквы диска.
Информация о разделе GPT возвращается следующим образом: PartID, TypeGUID, GPT, BaseOffset, Size, Attr, PartGUID
list drv Буква диска в результате этой команды в основном такая же, как и из «части списка», но идентификатор диска добавляется в конце его результата.
VarName для возврата результата запроса
----------------------GPT---------------------
"MS Basic Data" раздел ОС по умолчанию,Attr:0.+ перед «Part» указывает режим вставки,the
original partition is moved backwards once. Physical ID:1~128.
-cmp для сжатия нулевого элемента в таблице разделов (в противном случае он не был распознан DG, но его использование не влияет).
Attr:
0x1000000000000000 только для чтения
0x2000000000000000 теневой
0x4000000000000000 скрытый
0x8000000000000000 буква диска не присвоена
0x0000000000000001 диспенсивный раздел на ПК
----------------------------------------------
/mbr перезаписать MBR, по-умолчанию nt6(win). Можно указать имя файла (файл не может быть слишком больше 63 сектора). Если имя файла начинается с #, это указывает номер ресурса в EXEDATA.
LenLimit указывает на максимально необходимую длину для чтения от начала файла. Вторая * может отсутствовать, если нет путаницы, например, если существует #.
----------------------------------------------?
/pbr перезаписать PBR, по-умолчанию nt6(win). Можно указать имя файла (файл не может быть слишком больше 63 сектора). Если имя файла начинается с #, это указывает номер ресурса в EXEDATA.
LenLimit указывает на максимально необходимую длину для чтения от начала файла. Вторая * может отсутствовать, если нет путаницы, например, если существует #.
--------------------------------------------
PART 1 для фиксации допустимой метки для таблицы разделов на диске 1.
PART 1#3 a активировать третий раздел диска 1 (1#3)
PART 1#3 -a дезактивировать третий раздел диска 1 (1#3)
PART 1#3 0x17 1048576000 2097152000 //создать скрытый NTFS-раздел 1#3, размером 200M, начиная от 100M partition
PART 1#3 0x17 //скрыть раздел 1#3
PART 1#3 0x7 //показать раздел 1#3
PART 1#3 -a 0 //полностью скрыть раздел, этот раздел не распознается менеджерами разделов и ОС.
PART 1#3 -1 -1 1048576000 //для настройки на 100M, на самом деле необходимо сначала уменьшить размер файловой системы и увеличить ее впоследствии.
2)сократите размер раздела с помощью Part.
2.Для увеличения от 50M до 100M: 1) увеличьте размер раздела с помощью Part;
2)затем увеличьте размер файловой системы.)
PART 1#3 -a 0 0 0 //для удаления раздела без влияния на его данные, а также переназначения и монтаж возможен.
PART del 1#3 //удалить раздел, не влияя на его данные, а также переназначить и монтаж возможен.
PART /MBR=*63s#5 0 //для записи ресурса №5 из EXEDATA в MBR диска 0, не более 63 сектора.
PART /MBR=*63s*%CurDir%\MBROS.MBR 1 //для записи файла %CurDir%\MBROS.MBR в MBR диска 1, не более 63 сектора.
PART 1#5 a 0x7 //для отображения и активации логического раздела 1#5.
PART -super -force -clear -up -hup 1#2 -a 5 2.5G 3.5G //для создания расширенных разделов, -clear полная очистка
PART -super -force -up -mbr 1#2 -a 0x07 1G 5G
PART -up -align -alignend 1#+L 0x7 +32256 57544704 //для создания логического раздела в конце расширенного раздела
PART -up 1#-L //для удаления последнего логического раздела
PART -up -super -gpt -cmp 1#+1 {EBD0A0A2-B9E5-4433-87C0-68B6B72699C7} 1G 5G {BC65AB2C-B5AF-4197-92B2-00E808FDEE09} 0x9000000000000000 "Basic data partition"
PART -up -super -gpt -cmp del 1#2 //для удаления раздела GPT без данных и переназначение и монтаж являются практически осуществимыми.
PART -up -super -gpt -cmp 1 //только для сжатия таблицы разделов GPT, что делает идентификатор раздела последовательно начиная с 1.
PART -up -super -swap:1 1#4 //1#4 обменять с 1#1
PART -up -hup -super -force -mbr init 1 //инициализация MBR; -gpt инициализация GPT
--------------------------------------------
Работа диска на системном уровне очень опасна, поэтому будьте осторожны!
Gemostarter, очень просто. Для этого можно использовать команды DISK или SHOW.

Примеры использования комманды DISK

DISK ,4,1 `Удалить букву накопителя 4#1
DISK U:,5,1, `Подключить букву U: для накопителя 5#1 (если раздел не скрытый)
DISK U:,5,2,1 `Подключить букву U: для накопителя 5#2 (даже если раздел скрытый)
DISK Letter,3,1 `Получить в переменную %Letter% букву накопителя 3#1
DISK ,,,1,U `Переназначить буквы дисков в порядке: разделы hdd0, hdd... hddX, CD/DVD, USB-HDD/UDF (USB-устройства, начиная с буквы U - определяется UDiskVol)
DISK ,,,2,U `Переназначить буквы дисков в порядке: первые разделы hdd0...hddX, остальные разделы hdd0...hddX, CD/DVD, USB-HDD/UDF
DISK ,,,3,U `Переназначить буквы дисков только для флешек (начиная с U)

Описание команды SHOW (мой приблизительный перевод)

SHOW [=1] [*&-] [DiskPart],[DrvLetter],[TimeWait],[StartDrvLetter]
Служит для отображения removable-дисков, скрытых или несмонтированных разделов жестких дисков, существующих в системе, позволяет присваивать им буквы.
&: локальный режим, который вряд ли будет замечен другими процессами.
* При монтировании * указывает на длительность и при размонтировании * указывает размонтировать все.
В противном случае это относится к последнему.
- указывает на размонтирование
=1 не монтировать, если уже смонтировано.
DiskPart может принимать значение HDNo или ID:PartNo или ID#PartNo (где No - номер)
Используется либо HDNo, либо ID.
Если HDNo и номер<0, указывает на все жесткие диски, флешки и USB-HDD; 0 относится к HD0, 1 - HD1, 2 - HD2 и т.д.;
ID: может указываться как «F» (фиксированные HDD) или «U» (USB-Hdd и USB-Flash)
PartNo(логический): число, <"0" обозначает все разделы без присвоенных букв диска, "0": все видимые разделы без букв диска, «1»: первый раздел, «2»: второй, «3»: третий.
Если цифра идет после #, тогда относится к физическому номеру раздела (1-4 - основные разделы и 5-N - логические разделы)
DrvLetter: буква диска «A ~ Z», если отсутствует или не установлена, будет присвоена автоматически.
Разрешены китайские иероглифы, которые помогают уладить невосприимчивость букв дисков и сохранять секретность (не могут быть перечислены). Они могут монтироваться или размонтироваться по мере необходимости.
TimeWait:number число, указывающее на время ожидания (в мс) готовности для устройств, перед присвоением букв дисков.
SHOW 0:1,H (или SHOW 0#1,H) `присвоить HD0 Part 1 букву диска H:
SHOW U:1,U `присвоить первому разделу съемного HDD букву диска U:
SHOW F:0 `присвоить буквы всем видимым разделам на Fixed HDD (буквы будут выбраны автоматически)
SHOW U:0,,3000 `присвоить буквы всем removable-накопителям, ожидать 3000мс
SHOW U:-1 `присвоить буквы всем removable-накопителям, подключать скрытые разделы
SHOW 0:-1 `присвоить буквы скрытым разделам HD0 ????
SHOW ,G: `удалить букву G:
SHOW 0:1 (или SHOW 0#1) `присвоить HD0 Part 1 букву автоматически
SHOW - 0:1 (или SHOW - 0#1) `размонтировать HD0 Part 1
Скрытые разделы по-умолчанию, не монтируются автоматически. Если нужно их монтировать,
установите «PartNo» как «-1»; Используйте SHOW или SUBJ для удаления буквы диска чтобы загрузить выходы в скрытом разделе и сохранить атрибут скрытия в том же самом.

И до кучи - как получить список занятых или свободных буковок

FDRV *ab *rsort DrvAll=* `Получить в переменную DrvAll список всех доступных в системе буковок дисков (начиная с конца /*rsort/ и игнорируя A и B /*ab/)
FDRV *idlec FreeLett=*: `Получить в переменную FreeLett список всех незанятых буквок дисков (начиная с начала и игнорируя A и B)
Для ознакомления прикрепил скрипт из "дистрибутива" PECMD с менеджером разделов (там не всё работает, но скрипт позволяет сразу же оценить результаты своих действий).
Вложение

Простенький менеджер разделов на PECMD



Последний раз редактировалось: Гость (2018-02-22 16:53), всего редактировалось 1 раз

[Цитировать]

    dialmak
  • 2607
  • Стаж: 8 лет 2 месяца
  • Сообщений: 842
  • Репутация:40

    [+] [-]
conty9, хм. чем-то по функционалу близок к команде GETHDINFO в TBScript

[Цитировать]

    sergeysvirid
  • 104
  • Стаж: 9 лет 4 месяца
  • Сообщений: 2499
  • Репутация:127

    [+] [-]
  • Откуда: 65 регион (GMT+11)
51183SHOW U:-1 `присвоить буквы всем removable-накопителям, подключать скрытые разделы
Привет сэнсэй!!! aa
Огромное спасибо тебе за примеры использования команд (с комментариями) ay az
Так что же получается командой SHOW U:-1 можно подключить все разделы на многораздельной флешке без использования, например, bootpart или imdisk ?

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет 3 месяца
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
51186можно подключить все разделы на многораздельной флешке без использования, например, bootpart или imdisk ?
Нельзя , PECMD использует imdisk .

[Цитировать]

    sergeysvirid
  • 104
  • Стаж: 9 лет 4 месяца
  • Сообщений: 2499
  • Репутация:127

    [+] [-]
  • Откуда: 65 регион (GMT+11)
nikzzzz,
Приветствую! aa
Понятно ac , спасибо ab .

[Цитировать]

    Гость
  • Репутация:0

    [+] [-]
sergeysvirid, нет, не выйдет. Проблема в том, что винда (до 10-ки) просто не даст присвоить букву второму разделу флешки. bootpart или imdisk используют свой драйвер для монтирования.

[Цитировать]

    sergeysvirid
  • 104
  • Стаж: 9 лет 4 месяца
  • Сообщений: 2499
  • Репутация:127

    [+] [-]
  • Откуда: 65 регион (GMT+11)
51189винда (до 10-ки) просто не даст присвоить букву второму разделу флешки. bootpart или imdisk используют свой драйвер
Ясно. Ну так это я вкурсе. Я просто подумал было, что PECMD своими средствами оказывалось всегда умел это делать (без использования bootpart или imdisk).
Неверно истолковал для себя фразу: "SHOW U:-1 `присвоить буквы всем removable-накопителям, подключать скрытые разделы" ah ab

[Цитировать]

    Гость
  • Репутация:0

    [+] [-]
sergeysvirid, скрытый раздел - это раздел, которому присвоен Type 0x17 (вместо 0x07), для того чтобы ОС его скрывала. А вот второй раздел на флешке - это обычный раздел, с обычным Type. Но ОС просто его не позволяет смонтировать.
К слову, MBROS (которая базируется на PECMD) использует манипуляции с Type. Он указывается таким, каким его "признают" загрузчики и "не признаёт" ОС (да и стандартные менеджеры дисков просто не видят этот раздел).

[Цитировать]

    dialmak
  • 2607
  • Стаж: 8 лет 2 месяца
  • Сообщений: 842
  • Репутация:40

    [+] [-]
conty9
, стандартные менеджеры дисков просто не видят этот раздел
Что ж это за менеджеры такие? Для того они и менеджеры, что бы увидеть ID раздела, и если менеджер умеет, то и сменить его ID (как правило умеет большинство). А если даже такое не умеет, то это не менеджер, а ...
Есть вариант, когда и никакой менеджер его не увидит, но это специальные MBR, их редко юзают.
Впрочем у меня именно такой случай

[Цитировать]

    Гость
  • Репутация:0

    [+] [-]
dialmak, не видят, лично проверял. Просто показывают пустое место. ID не помню. Впервые это применяли, по-моему, в FBINST - в такой "спрятанный" раздел заливали меню и Grub4Dos. А в MBROS пошли дальше, из такого раздела монтируют WIM или ISO (команда MOUN). Вроде как-то так, я детально не вникал.

[Цитировать]

    dialmak
  • 2607
  • Стаж: 8 лет 2 месяца
  • Сообщений: 842
  • Репутация:40

    [+] [-]
conty9, возможно это diskmgmt.msc. Так эт не совсем менеджер. А вот diskpart, tesdisk, dmde и т.д. всё видят. Последний скрин в этом посте описывает некоторые интересные ID.

[Цитировать]

    Гость
  • Репутация:0

    [+] [-]
dialmak, я проверял Paragon HDM, Acronis DDM, ещё несколькими менеджерами (у меня в 2k10 их хватает). Ни один не видел, кроме китайского PartitionGuru.

[Цитировать]

    dialmak
  • 2607
  • Стаж: 8 лет 2 месяца
  • Сообщений: 842
  • Репутация:40

    [+] [-]
в FBINST
А, так там спец MBR.. Грубо говоря нестандартная таблица разделов. Как и в BootIt.
В таких вещах, если отойти от стандарта - никто и не увидит. А принцип там прост и тривиален, можно и самому забацать.

[Цитировать]

    Гость
  • Репутация:0

    [+] [-]
51201если отойти от стандарта - никто и не увидит
Согласен. Китайцы не боятся использовать нестандарт. Иногда из этого получается что-то интересное. Например, наитив-режим WinPE, да и PECMD - это очень сильно продвинутый CMD, который напрямую использует системные библиотеки и позволяет обойтись без дополнительных утилит.

Страница 8 из 28


Показать сообщения:    

Текущее время: 26-Апр 18:53

Часовой пояс: UTC + 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы можете скачивать файлы