Kilitli birimdeki CHKDSK / F yeniden başlatıldığında nasıl “zamanlanır”?


14

chkdsk /FYıllar boyunca birçok kez çalıştım ... ve bugün bunu 2008 R2 sunucularımdan birinde çalıştırmak zorunda kaldım ve normal mesajı alıyorum:

Birim başka bir işlem tarafından kullanıldığından Chkdsk çalıştırılamıyor. Bu birimi sistemin bir sonraki yeniden başlatılmasında denetlenecek şekilde zamanlamak ister misiniz? (E / H) y

Bu ses seviyesi, sistemin bir sonraki açılışında kontrol edilecektir.

Buradaki Technet belgesine baktım: http://technet.microsoft.com/en-us/library/cc730714.aspx yanı sıra normal Google arama ve arama: Technet ve site: microsoft.com google, ama olabilir aradığımı bulamıyorum ...

Soru:

Windows bunu yeniden başlatma sırasında NASIL / nerede planlıyor? Görev Zamanlayıcı'da veya RunOnce veya benzeri bir sürümde değil, Windows birimi kilitlemeden önce çalışması gerekiyorsa mantıklıdır ... bu nedenle, Windows bu "zamanlanmış görevi" tam olarak nerede ayarlayacak ve sunucunun hafta sonra bir bakım penceresi yeniden başlatılırken?

Yanıtlar:


19

Harika bir soru. Cevap, VolumeDirtybitin, önyükleme sırasında (varsaymak zorunda olduğum) kontrol edilen birime ayarlanmış olmasıdır. Muhtemelen bir flash sürücü takıldığında ve taranmadan Tara veya Devam Et yazan açılır pencereyi aldığında kontrol edilen şekle benzer .

Bir kez volumedirtypowershell komut dosyası aracılığıyla bit ayarlayarak, sıfır bakım yakın otomatik bir sunucu için bir chkdsk zamanlama bir yol bulmaya çalıştıdirtybitset = $true ) ile , ama işe yaramaz. Benim bağlantıdan göründüğü gibi sadece bunu yapan ve dirtybit ile birlikte çalışan bir ScheduleAutoChk var yeniden olabilir.

Burada daha fazla araştırma şunları belirtmektedir:

Windows her yeniden başlatıldığında, birim kirli bitinin ayarlanıp ayarlanmadığını kontrol etmek için tüm birimleri taramak için Çekirdek tarafından Autochk.exe çağrılır. Kirli bit ayarlanmışsa.

Hakkında daha fazla bilgiyi autochk.exe, Microsoft Technet sitesinde ve Wikipedia'da neler olduğunu açıklamaya yardımcı olmak için burada bulabilirsiniz :

Tüm Önyükleme ve Sistem sürücüleri yüklendikten sonra, çekirdek (sistem iş parçacığı) Session Manager Alt Sistemini (smss.exe) başlatır.

Herhangi bir dosya açılmadan önce, Autochk smss.exe tarafından başlatılır. Autochk tüm sürücüleri bağlar ve temiz bir şekilde sökülüp sökülmediklerini görmek için bunları teker teker kontrol eder. Autochk bir veya daha fazla birimin kirli olduğunu belirlerse, otomatik olarak chkdsk çalışacaktır

Özellikle aşağıdaki kayıt defterine bakarsanız görünür:

HKLM \ Sistem \ CurrentControlSet \ Control \ Oturum Yöneticisi

Bunun gibi bir şeye BootExecutedeğiştiği bir değer var.autocheck autochk *autocheck autochk /p \\??\C: autocheck autochk *


1
aha ... Tamam, daha fazla ayrıntı buldum Cevabınıza ekleyeceğim ...
TheCleaner

1
Başvuru için: chkntfs /c %SystemDrive%doğrudan kayıt defteri ile uğraşmadan yeniden başlatmayı denetlemek için önyükleme birimini zamanlamak için kullanabilirsiniz . (Tabii ki, bunu yapmak için yönetici haklarına sahip
olmalısınız

@cHao - ne olursa olsun doğrudan kayıt defteri ile uğraşmak zorunda değilsiniz. `chkdsk / f% SystemDrive% aynı şeyi yapar. Belki yorumunu takip etmiyorum.
TheCleaner

@TheCleaner: Bununla birlikte chkntfs /c, "Programlamak ister misiniz ...?" Komut istemi. Örneğin, sürücüyü zamanlanmış bir görevin bir parçası olarak onaylamak istiyorsanız bu önemli bir fark olabilir.
cHao

2
@ MDMoore313: /ckontrolü planlama seçeneğidir. Bu olmadan, chkntfssize bir çek planlanmış olup olmadığını söyleyecektir.
cHao
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.