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

    SmokieBlahBlah
  • 1736
  • Стаж: 8 лет 6 месяцев
  • Сообщений: 42
  • Репутация:2

    [+] [-]
conty9, есть ли в PECMD аналог команды "bootice /DEVICE=E: /partitions /firstpart=1"? То есть "сделать второй раздел флешки доступным"
Команда "PART -super -force -clear -up -hup 1#2 -a 5 2.5G 3.5G" не переразбивает флешку
И можно в скрипте получения инфы о дисках добавить инфу о размере всех разделов, включая разделы без назначенных букв?
Типа того: "1:213718237812,2:54545454"

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

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

    [+] [-]
SmokieBlahBlah, насколько я знаю, простой команды обмена разделов 1<>2 нет. Собственно, я сам интересовался у автора такой возможностью, пока он не ответил. Свой вариант скрипта для обмена я там привел, но он сыроват, нужно тестировать (под 10-кой глючит). Суть: прочитать инфу о первом и втором разделе и внести их наоборот в MBR.
Инфу о размере разделов без буквы, в принципе, тоже можно добавить. Будет время - подправлю скрипт.
Хотя, имхо, проще вначале подключить все разделы.

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

    SmokieBlahBlah
  • 1736
  • Стаж: 8 лет 6 месяцев
  • Сообщений: 42
  • Репутация:2

    [+] [-]
conty9, спасибо заранее. а что насчет создания двух разделов на флешке? как это сделать при помощи PECMD? или чем еще можно кроме bootice?
51235Хотя, имхо, проще вначале подключить все разделы.
второй раздел флешки нельзя же подключить одновременно с первым. вот и хочется сразу знать, что есть второй раздел и какой он по размеру, чтобы высвечивать или затемнять доступные опции

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

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

    [+] [-]
По поводу создания двух разделов средствами PECMD - сам сейчас переписываю UTmake, чтобы этот процесс делался полностью средствами PECMD (хочу отказаться от RMPartUSB, который используется в актуальной версии для создания MBR и первого раздела, второй делал через PECMD).
Я ведь сам пока изучаю PECMD.

Но примерный скрипт для создания двух разделов есть

PART -usb list disk,DrvAll
FORX* %DrvAll%,XEnvi,
{* TEAM DISK TEnvi,%XEnvi%,1|FIND $%TEnvi%=,PART -devid list disk %XEnvi%,TEnvi!EXIT -
TEAM LPOS DEnvi=USBSTOR,1,%TEnvi%|IFEX $%DEnvi%=0,EXIT -!TEAM FDRV *idlec DEnvi=*:|MSTR DEnvi=<1>%DEnvi%|DISK %DEnvi%,%XEnvi%,1,|EXIT -
}
Envi DiskN=7 `Номер диска (hd7)
ENVI DiskFS=FAT32 `Файловая система первого раздела
ENVI DiskLN=First.1 `Метка первого раздела
ENVI F2PtnD=%CurDir%\Utilites\Flash2Ptn.exe `Самораспаковка для установки на второй скрытый раздел
TEAM ENVI UTFold=%Temp%\2k10\UTmake|PATH %UTFold%
ENVI ScPart=10 `Размер второго раздела в мегабайтах
ENVI Spart.Check=1 `Если 1, создавать второй раздел, если 0 - единственый раздел
PART -phy list part %DiskN%#1,TEnvi
TEAM MSTR TEnvi=<8>%TEnvi%
MSTR SelDsk=1,2,%TEnvi%
CALL @RePart
EXIT
_SUB RePart,W360H195,Repartition & format %SelDsk%\,,,,,
LABE ,L20T12W160H22,SelDsk=%SelDsk%,,0x0000AA,14
ITEM UDFRPrt,L240T12W100H25,Repartition,TEAM CALL UForm|Envi @RepMess=DONE!|WAIT 2000|Envi @RepMess=|EXIT
LABE RepMess,L20T70W320H22,Start,,0x0000AA,14
TEAM PART -devid list disk %DiskN%,TEnvi|MSTR TEnvi=<~12>%TEnvi%|SED TEnvi=1,USBSTOR\\DISK\&VEN_,,%TEnvi%|SED TEnvi=1,\&REV.*,,%TEnvi%|SED TEnvi=1,\&,_,%TEnvi%|LABE ,L10T32W220H22,%TEnvi%,,,12
_END
_SUB UForm
TEAM DISK TEnvi,%DiskN%,1|CALC EFIldr=0|FIND $%TEnvi%=,!ENVI SelDSK=%TEnvi%
IFEX $%Spart.Check%=1,FIND $%ScPart%=EFI-loaders,TEAM CALC EFIldr=1|EXEC --hide --wait %F2PtnD% -nr -InstallPath="%UTFold%\2Ptn"|SIZE TEnvi=%UTFold%\2Ptn|CALC #ScPart=%TEnvi%/920000+2|FILE %UTFold%\2Ptn
TEAM PART list disk %DiskN%,TEnvi|MSTR ,DiskFF=<1*>%TEnvi%
TEAM CALC Size2P=%ScPart%M*%Spart.Check%|CALC #Start2P=(%DiskFF%-%Size2P%)/1M*1M
FORX* 2 1,NEnvi,TEAM PART -phy list part %DiskN%#%NEnvi%,TEnvi|MSTR TEnvi=<8>%TEnvi%|MSTR DEnvi=3,2,%TEnvi%|MSTR TEnvi=1,2,%TEnvi%|FIND $%TEnvi%<>,TEAM SHOW ,%TEnvi%|FIND $%DEnvi%<>,SHOW ,%DEnvi%
ENVI @RepMess=Clear first 1MB (zero padding)
PUTF \\.\PhysicalDrive%DiskN%,0,*1M 0x00 0x00
IFEX $%Size2P%>0,
{* ENVI @RepMess=Create MBR and second partition
PART -mbr -up -super init %DiskN%
SHOW - %DiskN%#1
PART -mbr -up -hup -force -super -usb -fs %DiskN%#1 0x0E %Start2P% %Size2P%
TEAM WAIT 200|PART -phy list part %DiskN%#1,TEnvi|MSTR TEnvi=<8>%TEnvi%|MSTR DEnvi=3,2,%TEnvi%|MSTR TEnvi=1,2,%TEnvi%|FIND $%DEnvi%<>,SHOW ,%DEnvi%
FIND $%TEnvi%<>,ENVI SelDsk=%TEnvi%!FIND $%SelDsk%=,TEAM FDRV *idlec TEnvi=*:|MSTR SelDsk=<1>%TEnvi%|SHOW %DiskN%#1,%SelDsk%!SHOW %DiskN%#1,%SelDsk%
TEAM ENVI @RepMess=Format the second partition|IFEX $%Size2P%>2048M,EXEC --hide --wait --exe:#20 tmp %SelDsk%!DFMT %SelDsk%,FAT,,1
TEAM WAIT 200|FDRV *setvol %SelDsk%=Part_II|PART -hextp -phy list drv %SelDsk%,TEnvi|MSTR FS2P=<2>%TEnvi%
FIND $%EFIldr%=1,TEAM ENVI @RepMess=Copy files from archive to second partition|EXEC --hide =%F2PtnD% -nr -InstallPath="%SelDsk%"|ENVI EFIldr=
}
TEAM ENVI @RepMess=Create the first partition|CALC #Size1P=%Start2P%-1048576|SHOW - %DiskN%#1
PART -mbr -up -hup -force -super -usb -fs %DiskN%#1 0x0E 1048576 %Size1P%
TEAM WAIT 200|PART -phy list part %DiskN%#1,TEnvi|MSTR TEnvi=<8>%TEnvi%|MSTR DEnvi=3,2,%TEnvi%|MSTR TEnvi=1,2,%TEnvi%
FIND $%TEnvi%=,SHOW %DiskN%#1,%SelDsk%!FIND $%DEnvi%<>,SHOW ,%DEnvi%
TEAM ENVI @RepMess=Format the first partition
TEAM SITE ?XEnvi=FVER,%WinDir%\System32\cmd.exe|LSTR XEnvi=1,%XEnvi%
FIND $%OsVer%=5,ENVI NEnvi=EXEC --hide --wait --exe:#21 tmp %SelDsk% /Q /Y /X /FS:%DiskFS%!ENVI NEnvi=DFMT %SelDsk%,%DiskFS%,,1
FIND $%DiskFS%=FAT32,ENVI NEnvi=EXEC --hide --wait --exe:#20 tmp %SelDsk%
IFEX $%Size1P%<2048M,ENVI NEnvi=DFMT %SelDsk%,FAT,,1
TEAM %NEnvi%|IFEX $%errorlevel%<>0,EXEC --hide --wait --exe:#20 tmp %SelDsk%
TEAM PART -hextp -phy list drv %SelDsk%,TEnvi|MSTR FS1P=<2>%TEnvi%|FIND $%DiskLN%=,!CALL NewLabel
TEAM ENVI @RepMess=Mount partition(s)|SHOW - %DiskN%#1|CALC TEnvi=lnot(%EFIldr%)*%ScPart%
IFEX $%TEnvi%=0,TEAM CALC TEnvi=1|CALC XEnvi=2|ENVI NEnvi=a|ENVI DEnvi=-a!TEAM CALC TEnvi=2|CALC XEnvi=1|ENVI NEnvi=-a|ENVI DEnvi=a
PART -mbr -force -super -usb %DiskN%#%TEnvi% %NEnvi% %FS1P% 1048576 %Size1P%
IFEX $%Size2P%>0,PART -mbr -force -super -usb %DiskN%#%XEnvi% %DEnvi% %FS2P% %Start2P% %Size2P%
TEAM PART update %DiskN%|WAIT 200|PART -phy list part %DiskN%#1,TEnvi|MSTR TEnvi=<8>%TEnvi%|MSTR DEnvi=3,2,%TEnvi%|MSTR TEnvi=1,2,%TEnvi%
FIND $%TEnvi%=,SHOW %DiskN%#1,%SelDsk%!FIND $%DEnvi%<>,SHOW ,%DEnvi%
IFEX $%Size2P%>0,
{* TEAM PART -phy list part %DiskN%#2,TEnvi|MSTR TEnvi=<8>%TEnvi%|MSTR DEnvi=3,2,%TEnvi%|MSTR TEnvi=1,2,%TEnvi%
FIND $%TEnvi%=,TEAM FDRV *idlec TEnvi=*:|MSTR TEnvi=<1>%TEnvi%|SHOW %DiskN%#2,%TEnvi%
}
_END
MESS Done!
EXIT
_SUB NewLabel
TEAM ENVI DiskL=%DiskLN%|ENVI DiskLN=|FIND $%DiskL%=,ENVI TEnvi=0!ENVI TEnvi=1
LOOP #%TEnvi%>0,
{* TEAM FDRV *setvol %SelDsk%=%DiskL%|FDRV *vol TEnvi=%SelDsk%
FIND $%TEnvi%=%DiskL%,TEAM ENVI TEnvi=0|EXIT
TEAM STRL TEnvi=,%DiskL%|CALC TEnvi=%TEnvi%-2|LSTR DiskL=%TEnvi%,%DiskL%
IFEX $%TEnvi%<1,TEAM FDRV *setvol %SelDsk%=UTmake|ENVI TEnvi=0|EXIT
}
_END
`В скрипте используются утилиты format2003.exe и fat32format, вшитые в ехе-шник как ресурсы #21 и #20. Они задействуются вместо стандартных средств форматирования при выборе файловой системы NTFS или ExFAT под ОС/РЕ ХР (поскольку там штатный форматировщик этого может не позволить), и для форматирования в FAT32 с поддержкой больших разделов.

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

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

    [+] [-]
вот и хочется сразу знать, что есть второй раздел и какой он по размеру, чтобы высвечивать или затемнять доступные опции
Тогда, наверное, лучше отображать дополнительно только данные второго раздела флешки и не обрабатывать все накопители?

Тогда скрипт будет таким (под 10-й двухраздельной флешке будут показаны 2 буковки, а под остальными ОС - второй раздел `Invisible`)

TEAM ENVI^ EnviMode=1|SET$ &NL=0d 0a|FDRV &Drvs=*:
FORX * %&Drvs%,&D,TEAM PART list drv %&D%,&&V|MSTR &&hd=<9>%&V%|^SET &Drv[%&hd%]=%%&Drv[%&hd%]%%%&D%
TEAM PART list disk,&&AllDsk|ENVI &&FindLIST=|SET &D1=
FORX * %&AllDsk%,&Find,
{* TEAM PART -devid list disk %&Find%,&DskID|MSTR &&hd,&&SZ,&&Bus=<1><2><9>%&DskID%
TEAM SED &DskID=1,DISK\&VEN_,1 ,%&DskID%|SED &DskID=1,IDE\\DISK,1 ,%&DskID%|SED &DskID=1,\&PROD_,_,%&DskID%
TEAM MSTR &DskID=<-1>%&DskID%|SED &DskID=1,\&REV, ,%&DskID%|SED &DskID=1,\\, ,%&DskID%|SED &DskID=1,___, ,%&DskID%
TEAM MSTR &DskID=<1>%&DskID%|SED &DskID=8,_, ,%&DskID%
FIND $%&DskID%=,SET &DskID=-
IFEX #%Bus%=2, SET Bus=(ATAPI)
IFEX #%Bus%=3, SET Bus=(ATA)
IFEX #%Bus%=7,TEAM SET Bus=(USB_HDD)|^SET &TEnvi=%%&Drv[%hd%]%%|FORM TEnvi=%&TEnvi%|FIND $%TEnvi%=DRIVE_USBFLASH,TEAM SET Bus=(USB_Flash)
IFEX #%Bus%=11, SET Bus=(SATA)
IFEX #%&SZ%>2G, @TEAM CALC &SZ=%&SZ%/1G#1| SET SZ=%&SZ%G! IFEX #%&SZ%>2M, @TEAM CALC &SZ=%&SZ%/1M#1| SET SZ=%&SZ%M
^SET &FindLIST=%&FindLIST%%&NL%%&Find%,%&Bus%,%&SZ%,%&DskID%,%%&Drv[%hd%]%%
FIND $%Bus%=(USB_Flash),
{* TEAM PART -hextp -phy -phy# list part %&Find%#2,TEnvi|MSTR &SZ2,TEnvi=<5><9>%TEnvi%
FIND $%TEnvi%=,EXIT -!FIND $%&SZ2%=0,EXIT -
IFEX #%&SZ2%>2G, @TEAM CALC &SZ2=%&SZ2%/1G#1| SET SZ2=%&SZ2%G! IFEX #%&SZ2%>2M, @TEAM CALC &SZ2=%&SZ2%/1M#1| SET SZ2=%&SZ2%M
^SET &FindLIST=%&FindLIST%%&NL%%&Find%#2,%&Bus%,%SZ2%,%&DskID%,Invisible
}}
FILE .\HDD_data.txt
WRIT .\HDD_data.txt,$*,%&FindLIST%

Результат

0,(ATA),465.8G,ST500DM002-1BC142,C:D:E:F:
1,(USB_Flash),87.4M,GENERIC FLASH DISK,G:
1#2,(USB_Flash),82M,GENERIC FLASH DISK,Invisible
2,(USB_Flash),7.5G,JETFLASH TRANSCEND 8GB,H:
2#2,(USB_Flash),12M,JETFLASH TRANSCEND 8GB,Invisible


Последний раз редактировалось: Гость (2018-02-23 11:34), всего редактировалось 7 раз(а)

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

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

    [+] [-]
aa
Для создания мультираздельной флэшки я пользовался gdisk
GDISK Fixed Disk Partitioning Utility
GDISK disk /CRE {/PRI|/EXT|/LOG} [/SZ:{mbytes|pcent{P|%}}] [/END]
      [/FOR [/Q] [/NTFS[:VISTA|XP|2000|NT4|NT351]] [/EXT2] [/ALIGN[:CHS|1MB]] [/V[:label]]] [/-32] [/NTFAT16] [/NOUSB] [/NO1394]
      [/Y] [/R]
      [/X] [/U] [/NOUSB] [/NO1394] [/Y] [/R]
GDISK disk /DEL {/P:partn-no|/ALL}
      [/QWIPE|/DODWIPE|/CUSTOMWIPE:passes]
GDISK [disk] [/STATUS] [/RAW|/LBA] [/SER] [/X] [/U]
      [/NOUSB] [/NO1394] [/Y] [/R]
GDISK disk /[-]ACT /P:partn-no [/X] [/U] [/NOUSB] [/NO1394]
      [/Y] [/R]
GDISK disk /[-]HIDE /P:partn-no [/X] [/U] [/NOUSB] [/NO1394]
      [/Y] [/R]
GDISK disk /DISKWIPE [/DODWIPE|/CUSTOMWIPE:passes] [/[-]HPA] [/X] [/U]
      [/NOUSB] [/NO1394] [/Y] [/R]
GDISK disk /MBR [/WIPE] [/X] [/U] [/NOUSB] [/NO1394] [/Y] [/R]
GDISK disk /GPT /WIPE [/X] [/U] [/NOUSB] [/NO1394] [/Y] [/R]
GDISK /REVERT [/X] [/U] [/NOUSB] [/NO1394] [/Y] [/R]
GDISK /BOOTINI {/ADD|/REMOVE|/DEFAULT} [/D:disk-no] [/P:partn-no]
      [/DESC:desc] [/ENTRY:no] [/TIMEOUT:sec] [/INIFILE:filename]
      [/BSECTFILE:filename] [/WINNT [/SYSFOLDER:folder]] [/R]
GDISK [disk] /BATCH[:filename] [switch[switch...]]
GDISK disk /VIEW:sector [/NUM:num-sectors] [/PAGE]
GDISK /? [/STATUS|/[-]ACT|/[-]HIDE|/DISKWIPE|/BOOTINI|/BATCH|/VIEW]
Adding virtual disks as regular disks to the disk list.
Supports VMDK/V2i/Pqi under Windows and VMDK under Dos/Linux
GDISK /ad=VirtualDisk.vmdk or /addDisk=VirtualDisk.v2i
    where VirtualDisk.vmdk is either absolute or relative path to VMDK/V2i/Pqi file
Option to preserve Ghost Boot Partition during disk wipe operation
GDISK /keepghostboot
Copyright (C) 1998-2010 Symantec Corporation. All rights reserved. 11.5.1.2297.
Довольно мощная и удобная консольная утилита с широкими возможностями.

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

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

    [+] [-]
Да практически любым менеджером разделов можно слепить. Можно и TBScript написать. Кстати неплохая идея. Так и сделаю.
nikzzzz, как правило под gdisk предполагают этот. Есть версии под виндой и линукс. Уникальная прога. А вот от Symantec я не слышал, нужно пощупать.

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

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

    [+] [-]
51242как правило под gdisk предполагают этот.
Да, знаю эту утилиту, но она ориентирована в основном под GPT . ac

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

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

    [+] [-]
Это разные GDISK-и. nikzzzz говорит о GDISK от Symantec, наследника Parted Magic, часть Ghost. Насколько я помню, у него "неправильная" нумерация - накопители он начинает считать от первого (а не от 0, как принято).
Я тоже экспериментировал с GDISK, но что-то не сложилось. Да и великоват он, практически не пакуется.


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

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

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

    [+] [-]
nikzzzz Да, но с MBR тоже работает. Из уникальных возможностей - создание гибридного MBR, что примеру позволяет грузить XP на GPT. К сожалению не поддерживает ключи, только интерактивно использовать можно.

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

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

    [+] [-]
... есть ли в PECMD аналог команды "bootice /DEVICE=E: /partitions /firstpart=1"? То есть "сделать второй раздел флешки доступным"
Как оказалось, есть - обмен разделов... И очень даже просто (в переменной DiskN указываем номер диска).
PART -phy -super -force -up -hup -swap:2 %DiskN%#1

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

    SmokieBlahBlah
  • 1736
  • Стаж: 8 лет 6 месяцев
  • Сообщений: 42
  • Репутация:2

    [+] [-]
51311расширенные и невидимые /второй раздел флешки/ разделы в список не попадут
второй раздел посмотреть невозможно? или почему
ведь нужная вещь...
51236второй раздел флешки нельзя же подключить одновременно с первым. вот и хочется сразу знать, что есть второй раздел и какой он по размеру, чтобы высвечивать или затемнять доступные опции
немножечко под себя подправил скрипт
а как обрезать последний символ в строке? что добавить в строку 20?
и не понимаю: получить тип файловой системы невозможно для раздела без буквы?

скрипт

TEAM ENVI HdData=|SET$ &NL=0d 0a|PART list disk,AllDrv
FORX* %AllDrv%,CurDrv,
{* TEAM PART -devid list disk %CurDrv%,DskNam|MSTR HdNum,HdSize,HdBus=<1><2><9>%DskNam%|SED DskNam=1,DISK\&VEN_, ,%DskNam%
TEAM MSTR DskNam=<~13>%DskNam%|SED DskNam=1,\&REV, ,%DskNam%|SED DskNam=1,\\, ,%DskNam%
TEAM MSTR DskNam=<1>%DskNam%|SED DskNam=1,\&PROD_, ,%DskNam%|SED DskNam=6,_, ,%DskNam%
FIND $%DskNam%=, SET DskNam=-
'IFEX #%HdSize%>2G, @TEAM CALC HdSize=%HdSize%/1G#1|ENVI HdSize=%HdSize%G!IFEX #%HdSize%>2M,@TEAM CALC 'HdSize=%HdSize%/1M#1|ENVI HdSize=%HdSize%M
IFEX #%HdBus%=2,ENVI HdBus=ATAPI!IFEX #%HdBus%=3,ENVI HdBus=ATA!IFEX #%HdBus%=11,ENVI HdBus=SATA
IFEX #%HdBus%=7, TEAM ENVI HdBus=USB_HDD|DISK TEnvi,%CurDrv%,1|FORM TEnvi=%TEnvi%|FIND $%TEnvi%=DRIVE_USBFLASH,ENVI HdBus=USB_Flash
ENVI HdData=%HdData%%&NL%%HdNum% %HdBus% %HdSize% %DskNam%
ENVI PtsData=
PART list part %CurDrv%,AllPrt
FORX* %AllPrt%,CurPrt,
{* IFEX $%CurPrt%<1,EXIT -!
'TEAM PART list part %CurDrv%#%CurPrt%,TEnvi|MSTR PtSize,PtLet=<5><8>%TEnvi%|FIND $%PtLet%=,ENVI PtLet=*
'ENVI HdData=%HdData%|%CurPrt%,%PtLet%,%PtSize%
TEAM PART list part %CurDrv%#%CurPrt%,TEnvi|MSTR PtSize,PtLet=<5><8>%TEnvi%|FIND $%PtLet%=,ENVI PtLet=*:
ENVI PtsData=%PtsData%%PtLet%,%PtSize%|
}
ENVI HDdata=%HDdata% %PtsData%
}
'MESS %HDdata%
FILE .\HDD_data.txt
WRIT .\HDD_data.txt,$*,%HDdata%
EXIT

результат

0 SATA 240057409536 KINGSTON SUV400S *:,103809024|C:,38461767680|G:,201490169856|
1 SATA 1000204886016 TOSHIBA HDWD110 *:,103809024|*:,44970278912|D:,955126906880|
2 USB_Flash 32937869312 [JF700] TRANSCEND I:,28641853440|


Последний раз редактировалось: SmokieBlahBlah (2018-02-26 08:54), всего редактировалось 1 раз

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

    SmokieBlahBlah
  • 1736
  • Стаж: 8 лет 6 месяцев
  • Сообщений: 42
  • Репутация:2

    [+] [-]
51340PART -phy -super -force -up -hup -swap:2 %DiskN%#1
как бы обяснить. эта команда работает "в режиме toggle". то есть PECMD будто бы запутывается и не знает, какой раздел фактически первый, а какой второй, и тупо меняет их местами. как в итоге моя программа будет знать, что показан именно фактический первый раздел? не понятно.
придётся наверное bootice всё-таки использовать
"bootice /DEVICE=I: /partitions /firstpart=0" делает доступным именно первый раздел, /firstpart=1 - второй раздел

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

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

    [+] [-]
По-порядку: посмотреть данные и расширенного, и невидимого раздела можно. Но обрабатывать эти разделы нужно иначе. PECMD маркирует: первичные разделы: 1 2 3 4; отсутствующие разделы: -1 -2 -3 -4; расширенные разделы: @4, невидимые (в данной ОС) разделы флешки: =2 (=3 =4).
Чтобы обрезать последний символ в строке из переменной %Data% (999 - максимальное количество символов в %Data%, я пока не нашёл как подменить): MSTR Data=-2,999,%Data%
Получить тип файловой системы без буквы - вероятно, можно, для ОС Windows 7 и новее. Но я не знаю как. Можно создать скрипт с единственной записью "PART -gui" и посмотреть - там видно тип ФС для невидимых разделов флешки (под ХР - не видно).

Отображение ФС для невидимого раздела флешки под 7-кой (8, 8.1, ранние билды 10-ки&#41;

Но этот скрипт зашифрован, расшифровать его не получилось. Если кому интересно - вот сам скрипт DiskMgr.wcs, вытащил его из ехе-шки.
По поводу "первого раздела". Есть 3 варианта интерпретации. Во-первых, физический первый раздел - это раздел, который создан в начале накопителя /начиная с 64-го или 2048-го сектора, т.е., 2048(или 64)*512(байт в секторе)=1024k(32k)/. Теоретически, можно начинать и с другого сектора (например, с 4096, или 1024), но практически все менеджеры дисков делают так. Причем с 64 - это уже устарело (при таком раскладе первый раздел точно будет невыровнен), все новые менеджеры создают первый раздел с 2048-го сектора. Второй вариант - согласно порядку размещения данных о разделах в MBR. ОС до 10-ки показывают только первый раздел из записи в MBR. Поэтому ВСЕ утилиты, "обменивающие" видимый и невидимый разделы, делают одно и то же: считывают данные о 1-м и 2-м разделе в MBR и записывают их наоборот. Под 10-кой актуален и 3-й вариант: какой раздел первый для ОС до окончания сеанса работы (т.е., при "обмене" дисков инфа в MBR обновляется, но для ОС останется прежней - диски местами не поменяются).

Вот где в скрипте DiskMgr.wcs можно глянуть инфу по всем трём вариантам 'первого' раздела флешки (1024к=2046*512&#41;



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

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

    avalat
  • 222
  • Стаж: 9 лет 2 месяца
  • Сообщений: 453
  • Репутация:127

    [+] [-]
Русская справка по PECMD.
Перевод машинный, но приличный.
-----------------------------------------
Обновлён 26.03.2024


Последний раз редактировалось: avalat (2024-03-26 21:51), всего редактировалось 26 раз(а)

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


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

Текущее время: 25-Апр 08:31

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


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