Aracılığıyla paylaş


Sürücü Dosyalarını Eşleme

Sürücü dosyalarını değiştirmek zor olabilir. Sık sık Microsoft Windows güvenli modda başlatmanız, sürücü ikili dosyasını değiştirmeniz ve ardından yeniden başlatmanız gerekir.

Eşleme dosyaları kullanılarak alternatif bir yöntem vardır. Herhangi bir çekirdek modu sürücüsünü (görüntü sürücüleri dahil), herhangi bir Windows alt sistem sürücüsünü veya başka bir çekirdek modu modülünü değiştirmek için bu eşleme yöntemini kullanabilirsiniz. Kolaylık olması için, herhangi bir çekirdek modu modülü için bu yöntemi kullansanız bile, bu dosyalar bu konudaki sürücüler olarak adlandırılır.

WinDbg veya KD çekirdek hata ayıklayıcısı olarak eklendiğinde bu yöntemi kullanabilirsiniz. Bu yöntemi bir önyükleme sürücüsünde de kullanabilirsiniz, ancak daha zordur. Bu yöntemi önyükleme sürücüleriyle kullanma hakkında daha fazla bilgi için bkz. Önyükleme Sürücülerini Değiştirme.

Sürücü dosyalarını değiştirmek üzere sürücü değiştirme eşlemesi kullanmak için aşağıdakileri yapın:

  1. Sürücü değiştirme harita dosyası oluşturun. Bu dosya, hedef bilgisayardaki sürücüleri ve ana bilgisayardaki yedek sürücülerini listeleyen bir metin dosyasıdır. İstediğiniz sayıda sürücüyü değiştirebilirsiniz. Örneğin, ana bilgisayarınızın d:\Map_Files dizininde aşağıdaki bilgileri içeren Mymap.ini adlı bir dosya oluşturabilirsiniz.

    map
    \Systemroot\system32\drivers\videoprt.sys
    \\myserver\myshare\new_drivers\videoprt.sys
    

    Bu dosyanın söz dizimi hakkında daha fazla bilgi için bkz. Sürücü Değiştirme Eşleme Dosya Biçimi.

  2. Hedef bilgisayara bir çekirdek hata ayıklama bağlantısı kurun ve konak bilgisayarınızda çekirdek hata ayıklayıcısını (KD veya WinDbg) başlatın. (Hedef bilgisayara gerçekten zorla girmeniz gerekmez.)

  3. Aşağıdakilerden birini yaparak sürücü değiştirme eşleme dosyasını yükleyin:

    • Çekirdek hata ayıklayıcısını başlatmadan önce _NT_KD_FILES ortam değişkenini ayarlayın.

      D:\Debugging Tools for Windows> set _NT_KD_FILES=d:\Map_Files\mymap.ini
      D:\Debugging Tools for Windows> kd
      
    • Çekirdek hata ayıklayıcısını başlattıktan sonra .kdfiles (Sürücü Değiştirme Eşlemesini Ayarla) komutunu kullanın.

      D:\Debugging Tools for Windows> kd
      kd> .kdfiles d:\Map_Files\mymap.ini
      KD file associations loaded from 'd:\Map_Files\mymap.ini'
      

      Geçerli sürücü değiştirme eşleme dosyasını görüntülemek veya sürücü değiştirme eşlemesini silmek için .kdfiles komutunu da kullanabilirsiniz. Bu komutu kullanmazsanız, siz hata ayıklayıcıdan çıkana kadar eşleme devam eder.

Bu yordamı tamamladıktan sonra sürücü değiştirme haritası etkinleşir.

Hedef bilgisayar bir sürücü yüklemek üzere olduğunda, bu sürücünün eşlenip eşlenmediğini belirlemek için çekirdek hata ayıklayıcısını sorgular. Sürücü eşlendiyse, yedek dosya çekirdek bağlantısı üzerinden gönderilir ve eski sürücü dosyası üzerinden kopyalanır. Ardından yeni sürücü yüklenir.

Sürücü Değiştirme Harita Dosyası Biçimi

Her sürücü dosyası değişikliği, sürücü değiştirme eşleme dosyasında üç satırla gösterilir.

  • İlk satır "harita" sözcüğünden oluşur.

  • İkinci satır, hedef bilgisayardaki eski sürücünün yolunu ve dosya adını belirtir.

  • Üçüncü satır, yeni sürücünün tam yolunu belirtir. Bu sürücü konak bilgisayarda veya başka bir sunucuda bulunabilir.

Bu bilgi düzenini istediğiniz zaman yineleyebilirsiniz.

Yollar ve dosya adları büyük/küçük harfe duyarlı değildir ve gerçek sürücü dosya adları farklı olabilir. Üçüncü satırda belirttiğiniz dosya, hedef bilgisayar bu sürücüyü yüklemek üzereyken ikinci satırda belirttiğiniz dosyanın üzerine kopyalanır.

Kdfiles, Service Control Manager (SCM) veritabanında depolanan dosya adıyla eşleşmeyi dener. SCM veritabanındaki ad, MmLoadSystemImage'a geçirilen adla aynıdır.

Hata ayıklama araçlarının Windows 10 ve sonraki sürümlerinde, sürücü eşlemesi sürücü adıyla dinamik olarak eşleşecek ve uygun yolu belirleyecek şekilde çalışır. Tam yolun belirtilmesi gerekmez ve dosya uzantısı isteğe bağlıdır. Bu girdilerden herhangi birini NT dosya sistemi sürücüsüyle eşleştirmek için kullanabilirsiniz.

  • ntfs
  • NTFS
  • ntfs.sys
  • windows\system32\drivers\ntfs.sys

Nt çekirdek sürücüsüyle eşleştirmek için bu girdilerden herhangi birini kullanabilirsiniz.

  • ntoskrnl
  • NTOSKRNL
  • ntoskrnl.sys
  • windows\system32\drivers\ntoskrnl.sys

Harita dosyası boş satırlar içerebilir ve sayı işaretiyle (# ) başlayan açıklama satırları içerebilir. Ancak, dosyada "harita" göründükten sonra, sonraki iki satır eski sürücü ve yeni sürücü olmalıdır. Boş satırlar ve açıklama satırları üç satırlı harita bloklarını ayıramaz.

Aşağıdaki örnekte bir sürücü değiştirme haritalama dosyası gösterilmektedir.

# Use the # for comments like this one
map
\Systemroot\system32\drivers\videoprt.sys
e:\MyNewDriver\binaries\videoprt.sys
map
\Systemroot\system32\mydriver.sys
\\myserver\myshare\new_drivers\mydriver0031.sys

# This is replacing a beep driver
map
\??\c:\windows\system32\beep.sys
\\myserver\myshare\new_drivers\new_beep.sys

Sürücü değiştirme eşleme dosyası bir metin dosyası olmalıdır, ancak herhangi bir dosya adı ve dosya adı uzantısı (.ini, .txt, .map vb.) kullanabilirsiniz.

Ek Notlar

Sürücü değişimi gerçekleştiğinde, çekirdek hata ayıklayıcısında bir ileti görüntülenir.

CTRL+D (KD'de) veya CTRL+ALT+D (WinDbg'de) kullanıyorsanız, değiştirme isteği hakkında ayrıntılı bilgiler görürsünüz. Bu bilgiler, listelediğiniz adın SCM veritabanındaki adla eşleşip eşleşmediğinden emin değilseniz yararlı olabilir.

Çekirdek, hal veya önyükleme sürücülerini değiştirmek için yararlı olan erken önyükleme bilgilerini görüntülemek için bcdedit bootdebug seçeneğini etkinleştirebilirsiniz.

bcdedit -bootdebug on

Daha fazla bilgi için bkz. BCDEdit Seçenekleri Kılavuzu.

Çekirdek hata ayıklayıcısı çıkarsa, başka sürücü değişikliği gerçekleşmez. Ancak, sürücü dosyalarının üzerine yazıldığından, önceden değiştirilmiş olan sürücüler eski ikili dosyalarına geri dönmez.

Bu sürücü değiştirme özelliği, Windows Dosya Koruması'nı (WFP) otomatik olarak atlar.

Hedef bilgisayarı yeniden başlatmanız gerekmez. Sürücü değişimi, hedef bilgisayarın yeniden başlatılıp başlatılmadığına bakılmaksızın bir sürücüyü yüklediği her zaman gerçekleşir. Elbette, çoğu sürücü önyükleme işlemi sırasında yüklenir, bu nedenle uygulamada harita dosyası yüklendikten sonra hedef bilgisayarı yeniden başlatmanız gerekir.

_NT_KD_FILES değişkeni tanımlanırsa, çekirdek hata ayıklayıcısı başlatıldığında belirtilen sürücü değiştirme eşleme dosyası okunur. .kdfiles komutunu verirseniz, belirtilen dosya hemen okunur. Bu noktada, hata ayıklayıcı dosyanın temel harita/çizgi/satır biçimine sahip olduğunu doğrular. Ancak, değiştirme gerçekleşene kadar gerçek yollar ve dosya adları doğrulanmaz.

Harita dosyası okunduktan sonra hata ayıklayıcı içeriğini depolar. Bu noktadan sonra bu dosyayı değiştirirseniz değişikliklerin hiçbir etkisi olmaz ( .kdfiles komutunu yeniden göndermediğiniz sürece).