Mengapa ada tiga pengaturan berbeda di bagian [Paths] pada MSDOS.SYS?
Di Windows 9x, file konfigurasi MSDOS.SYS berisi [Paths]
bagian yang isinya biasanya terlihat seperti ini:
[Paths]
WinDir=C:\WINDOWS
WinBootDir=C:\WINDOWS
HostWinBootDrv=C
Keduanya WinDir
dan WinBootDir
arahkan ke direktori instalasi Windows, yang biasanya C:\WINDOWS
, dan HostWinBootDrv
arahkan ke huruf drive yang memuatnya. Memiliki pengaturan yang berbeda menunjukkan bahwa kemungkinan ini bisa berbeda. Apakah ada situasi di mana hal ini terjadi? Mengapa ada tiga pengaturan berbeda? Apa tujuan mereka sebenarnya?
Jawaban
HostWinBootDrv
adalah yang paling mudah untuk dijelaskan: ini berkaitan dengan kompresi disk, yaitu DoubleSpace / DriveSpace. Apa yang dilakukan DriveSpace adalah membuat file dengan nama seperti DRVSPACE.nnn
( nnn
berupa angka tiga digit) yang berisi konten disk yang dikompresi. Sistem file terkompresi diberi huruf drive dari partisi yang berisi file tersebut, dan yang terakhir (disebut drive host dalam konteks ini) diberikan huruf drive lain, atau terkadang disembunyikan seluruhnya. Jika partisi tempat Windows mulai dikompresi, HostWinBootDrv
arahkan ke drive host dari partisi tersebut, yang secara default adalah H
, sedangkan pengaturan lainnya mengarah ke sistem file yang dikompresi.
Adapun WinDir
dan WinBootDir
, apa yang mereka lakukan relatif mudah ditemukan. Beberapa eksperimen mengungkapkan yang berikut:
WinDir
menunjuk ke direktori tempat Windows diinstal. Kehadiran WinDir
in MSDOS.SYS
adalah apa yang diinstruksikan IO.SYS
(sebelum Windows Me) bahwa ada instalasi Windows yang harus disiapkan untuk diluncurkan (bukan hanya boot ke prompt perintah, seperti pada disket boot darurat). Jika WinDir
disetel, kernel mode-nyata akan melakukan hal berikut:
- Letakkan dua entri dalam
PATH
variabel lingkungan: direktori yang ditunjuk olehWinDir
dan subdirektoriCOMMAND
; - Buat subdirektori di
TEMP
bawah direktori ini dan arahkan variabel lingkunganTEMP
danTMP
ke sana; - Kosongkan sebuah bendera, yang dikembalikan oleh
0x2f
layanan interupsi0x1611
di BL register bit 5, yangCOMMAND.COM
memeriksa untuk memutuskan apakah akan diluncurkanWIN.COM
setelah diprosesAUTOEXEC.BAT
; - Mulai manajer konfigurasi perangkat sebelum memproses
CONFIG.SYS
(ini dapat disembunyikan denganSystemReg=0
pengaturan di[Options]
bagian) - Carilah file tertentu kritis dalam direktori ini, termasuk
SYSTEM.DAT
(Registry),COMMAND.COM
(yang akan jatuh kembali ke direktori root jika tidak hadir) dan real-mode driver sepertiHIMEM.SYS
danIFSHLP.SYS
(yang dapat ditekan dengan menetapkanDOS=NOAUTO
diCONFIG.SYS
); - Simpan direktori itu sendiri dalam
winbootdir
variabel lingkungan (huruf kecil semua!).
Dua yang terakhir adalah apa yang dapat diganti dengan pengaturan WinBootDir
: jika pengaturan itu ada juga, file-file itu akan dicari WinBootDir
, dan tentu saja direktori itulah yang akan berakhir di winbootdir
variabel lingkungan.
Namun ada beberapa kerutan di sini, misalnya yang berkaitan dengan WIN.COM
. Ketika AUTOEXEC.BAT
file tidak ada, kosong atau sedang dilewati (seperti dalam Safe Mode), COMMAND.COM
tidak dimuat dan kernel real-mode akan langsung dijalankan WIN.COM
dari WinBootDir
. Namun, jika AUTOEXEC.BAT
ada, COMMAND.COM
akan diluncurkan untuk memprosesnya, setelah itu pada gilirannya akan menjalankan perintah WIN
, meluncurkan WIN.COM
… dengan mencarinya di PATH
, yang secara default menunjuk ke WinDir
.
Nah, besar, tetapi mengapa WinDir
dan WinBootDir
pengaturan terpisah sama sekali? Ini masih belum sepenuhnya jelas bagi saya, tetapi dari sedikit yang dapat saya kumpulkan, itu mungkin dimaksudkan untuk mendukung boot Windows melalui LAN. Dalam konfigurasi seperti itu, DOS pertama-tama akan dimuat dari sistem file normal (atau bahkan itu sendiri dari gambar disk yang diunduh melalui jaringan), memuat driver penting seperti HIMEM.SYS
dari WinBootDir
terletak di sistem file yang sama, kemudian memuat driver jaringan DOS, memetakan pembagian (berisi WinDir
) ke huruf drive, dan kemudian lanjutkan boot dari sana. Jika itu skenario yang dimaksudkan, bahkan WIN.COM
keanehan mulai masuk akal sekarang: mungkin ada salinan Windows 'utama' yang dimulai saat boot secara normal dari WinDir
, dan salinan 'darurat' minimal lainnya yang di-boot dalam Mode Aman dari WinBootDir
, saat boot jaringan gagal.
Dalam kasus apa pun, persyaratan skenario ini dapat dengan mudah mengharuskan kedua pengaturan tersebut memiliki nilai yang berbeda. Berikut adalah fragmen singkat dari dokumen yang menjelaskan konfigurasi seperti itu:
D-2. MSDOS.SYS Sample File for DM9102 : ======================================= [Paths] WinDir=g:\client1 WinBootDir=d:\winboot <== According to RAMDRIVE.SYS assign HostWinBootDrv=c Virtual Drive (D: or E:)
Ada juga makalah dan serangkaian artikel oleh Micho Durdevich ( bagian 1 , 2 , 3 , 4 , 5 dan 6 ) yang menjelaskan cara mencapai booting jaringan dengan Windows 9x.
Mereka agak kurang detail tentang bagaimana semua ini bekerja, tetapi kedua sumber tersebut menyebutkan SETMDIR
utilitas, yang didistribusikan sebagai bagian dari Windows 95. Ini menyiratkan bahwa boot jaringan mungkin adalah kasus penggunaan yang dimaksudkan oleh Microsoft.
Winbootdir menunjuk ke direktori tempat file startup DOS berada. Ini bisa berbeda dengan Windir.
Windir menunjuk ke direktori tempat registri pengguna berada. Pada jaringan, ini bisa berbeda dengan tempat windows diinstal.
Winbootdir digunakan jika tidak ada config.sys / autoexec.bat, untuk memuat driver seperti himem.sys, ifs $ hlp.sys, dan co. Ini bisa berupa gambar boot yang dikirim melalui jaringan, misalnya.
Windir seperti pada 3.0, perlu berisi win.com, tetapi win.com kemudian bertanggung jawab untuk memulai windows (dengan menjalankan win32.vxd atau semacamnya.)
== Edit ==
http://reboot.pro/topic/22047-dual-boot-msdos-710-and-630/
Posting ini menjelaskan pembuatan setup DOS minimal, menggunakan DOS dari Win98se, dan MS-DOS 6.22 yang sedikit dimodifikasi.
Contoh dari apa yang terjadi ketika winbootdir dan windir diubah. Perintah setmdir mengubah windir setelah sistem di-boot, kami tidak menggunakannya di sini.
http://reboot.pro/topic/18130-ms-dos-7-help-file/
Topik ini berisi komentar-komentar yang berfungsi untuk membuat file bantuan qbasic untuk DOS 5 hingga 7 (yaitu sebagai pengganti dari apa yang ada di CDROM).
https://www.betaarchive.com/forum/viewtopic.php?f=72&t=34798&p=401645#p401645
Di sinilah kami mendokumentasikan menjalankan beberapa versi Windows 9x sebagai opsi di config.sys. Sejauh ini kami telah mengatasi sebagian besar masalah dalam meluncurkan Win95 dari DOS98SE.
https://www.betaarchive.com/forum/viewtopic.php?f=60&t=41489
Ini adalah kemajuan saat menjalankan Windows 95 dan ME dari DOS98SE. Ini memiliki link ke file DOS yang digunakan dalam percobaan.
Semua eksperimen ini didasarkan pada sesi VPC yang melakukan apa yang dijelaskan. Misalnya, setelah Offer memposting konstruksi c: \ MSDOS7, saya menjalankan percobaan dengan beberapa NT5x di atas instalasi Win98 dan ME yang berbeda, dalam bahasa Inggris dan Jerman. Dari situlah saya mendapat ide untuk menggunakan c: \ msdos7.