Il disco è protetto da scrittura

Se anche a voi è comparso l’errore “il disco è protetto da scrittura”, questa breve guida potrebbe fare al caso vostro.

Qualche giorno fa, dopo aver lanciato la formattazione di un hard disk, mi è apparso l’errore:

Il disco è protetto da scrittura

L’unica soluzione funzionante che ho trovato per risolvere il problema è stata:

  1. Aprire il prompt dei comandi come amministratore (Start -> Tutti i programmi -> Accessori -> tasto destro su “Prompt dei comandi” -> “Esegui come amministratore”).
  2. Nel prompt digitare:
    diskpart
  3. Poi digitare:
    list volume
  4. Si vedranno tutti i volumi del sistema. Ad esempio:
    DISKPART> list volume
    Volume ## Let. Etichetta Fs   Tipo       Dim.   Stato   Info
    --------- ---  --------- ---- ---------- ------ ------- ----
    Volume 0  E                   DVD-ROM    0 b    Nessun
    Volume 1  F                   DVD-ROM    0 b    Nessun
    Volume 2  C              NTFS Partizione 119 Gb Integro Sistema
    Volume 3  G    Volume    NTFS Partizione 931 Gb Integro
    Volume 4  H    Volume    NTFS Partizione 931 Gb Integro
    Volume 5  D    Volume    NTFS Partizione 931 Gb Integro
  5. Ora digitare:
    select volume x

    dove x è il numero del volume che ha dato l’errore. Ad esempio:

    select volume 5
  6. A questo punto, dopo aver ricevuto il messaggio (il numero del volume varia a seconda della scelta fatta):
    Il volume attualmente selezionato è il volume 5.

    digitare:

    attributes disk clear readonly

    e poi:

    attributes volume clear readonly
  7. Chiudere il prompt dei comandi.
  8. Rilanciare la formattazione del disco (meglio se da “Gestione disco”).
  9. Non ha dato più l’errore.

Questi semplici passaggi mi hanno permesso di risolvere il problema dell’errore “il disco è protetto da scrittura”. Ne ho testate tante, ma solo questa ha funzionato.

Se avete voglia di approfondire, vi lascio un link molto utile riguardante il comando DISKPART, preso direttamente dal sito Microsoft: https://docs.microsoft.com/it-it/windows-server/administration/windows-commands/diskpart

Vi ringrazio anticipatamente per qualsiasi feedback che vorrete lasciarmi.

Mappare disco di rete in PowerShell

Oltre al semplice NET USE, in PowerShell è possibile usare il ComObject “WScript.Network” per gestire la mappatura di un disco di rete (map network drive).

Questo semplice script serve per mappare un disco di rete e per rimuovere la mappatura:

Write-Host "] Mapping Network Drive . . ."

# Credentials
$serverName = 'TESTPC01'
$userName = 'TESTPC01\Administrator'
$serverPwdSec = Read-Host -assecurestring "] Server password" # Ask for the user password
$serverPwd = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto([System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($serverPwdSec))

$network = New-Object -ComObject WScript.Network

try {
    # Previous method: NET USE T: \\$serverName\folderTest /USER:$userName $serverPwd
    $network.MapNetworkDrive("T:", "\\$serverName\folderTest", $false, "$userName", "$serverPwd")
    # $network.MapNetworkDrive("T:", "\\$serverName\folderTest") # Without credential
    Write-Host "] Network Drive mapped!`n" -BackgroundColor Green -ForegroundColor Black;
} catch {
    Write-Host "[An error occurred in drive mapping!]" -BackgroundColor Red -ForegroundColor Black;
    Write-Host "[Error message:" $_.Exception.Message "`n" -BackgroundColor Red -ForegroundColor Black;
}
Write-Host "] Remove Network Drive . . ."

try {
    $network.RemoveNetworkDrive("T:")
    # Previous method: NET USE T: /delete
} catch {
    Write-Host "[An error occurred in drive unmapping!]`n" -BackgroundColor Red -ForegroundColor Black;
}

Convertire una macchina fisica in virtuale

Chiunque volesse convertire una macchina fisica (sia un sistema locale che remoto) in virtuale può provare a utilizzare VMware vCenter Converter, disponibile gratuitamente (occorre solo registrarsi):

VMware vCenter Converter

Sistema e software che ho usato per questo test:

  • Windows 7
  • VMware vCenter Converter 4.3
  • VMware Server 2.0.2 (potete usare anche VMware Player per aprire la macchina virtuale)

Sistema da convertire:

  • Windows XP (potete applicare questa procedura anche ad altri sistemi operativi).

N.B.: il test è stato svolto in un PC contenente 3 partizioni: Windows XP, Windows Vista e Windows 7; il programma è stato installato su Windows 7 ma si può mettere tranquillamente sullo stesso Windows XP da convertire, quindi seguite tranquillamente i passi che descriverò di seguito. E’ indispensabile utilizzare una cartella di destinazione che non risieda sulla stessa partizione del sistema che volete convertire, quindi usare un’altra partizione, un disco esterno, un disco remoto,…

Passi svolti:

  1. Operazione preliminare: se si dovrà convertire una macchina fisica Windows XP, inserire il CD di Windows XP. Aprire (con 7-Zip, WinZip o WinRar) il file “G:\SUPPORT\TOOLS\DEPLOY.CAB” (al posto di G:, mettere la lettera relativa al cd-rom). Estrarre il contenuto di quel file nella cartella “C:\ProgramData\VMware\VMware vCenter Converter Standalone\sysprep\xp”. Questo path è valido su Windows 7; se state installando da Windows XP, il percorso sarà: C:\Documents and Settings\All Users\Dati applicazioni\VMware\VMware vCenter Converter Standalone\sysprep\xp”).
  2. Installare VMware Converter. L’installazione è molto semplice… quando chiesto, scegliere “Local installation” se si vuole convertire un sistema locale, altrimenti selezionare “Client-Server installation (advanced)”. I passi che seguono, descriveranno il primo caso.
  3. Aprire VMware Converter (o premere direttamente “launch” al termine dell’installazione). !! Attenzione !! Se state utilizzando Windows 7 (o Windows Vista), dovete eseguire VMware Converter con i diritti di amministrazione (quindi: tasto destro sull’icona di VMware Converter e click su “Esegui come amministratore”). Se state usando Windows XP, se non erro, occorre essere amministratori.
  4. Premere il tasto “Convert Machine” in alto a sinistra.
  5. In “Select source type”, selezionare “Powered-on machine”, specificare “This local machine” e premere “Next >”.
  6. In “Select destination type”, selezionare “VMware Workstation or other VMware virtual machine”; in “Select VMware product” selezionare “VMware Server 2.x” (selezionare “VMware Player” se volete utilizzarlo al posto della versione server). Dare poi un nome alla macchina virtuale che andrete a creare e selezionate una cartella di destinazione. Premere “Next >”.
  7. Ora si aprirà la finestra delle opzioni.
  8. Cliccare su “Data to copy” per andare a selezionare la/le partizione/i da convertire. Il warning che viene visualizzato (che avverte che la destinazione non ha abbastanza spazio per contenere la macchina virtuale) scomparirà non appena si andranno a togliere le partizioni che non servono. Togliere tutte le partizioni/dischi che non si vogliono copiare.
    N.B.:
    purtroppo, nel mio caso, essendo un sistema multi-boot, il programma mi costringe a mantenere anche la partizione di boot, ovvero Windows 7 (C:). Per questo motivo, per ridurre al massimo lo spazio occupato da quest’ultima, invece di “Maintain size” ho selezionato “Min size”. Se voi avete solo la partizione di Windows XP, selezionate solo quella (o solo i dischi/le partizioni che vi interessa convertire).
  9. Dalla colonna “Current settings”, cliccare su “Devices” e impostare la memoria ad un valore desiderato. Io ho seguito il suggerimento che mi veniva indicato dalla freccia verde e ho impostato la RAM a 1024 MB. Se avete a disposizione poca RAM, impostate questo valore al minimo (indicato dalla freccia gialla) o sui 512 MB. Da questa schermata è possibile anche impostare il numero di processori da dedicare alla macchina virtuale e il tipo di controller. Io ho lasciato i valori di default.
  10. Dalla colonna “Current settings”, cliccare su “Networks”. Io ho ridotto il numero di “Network adapters” da 6 a 1. Se ve ne servono di più o se non sapete cosa fare, lasciate il valore preimpostato; al massimo si possono sempre togliere dopo se non li usate.
  11. A questo punto, dalla colonna “Current settings”, cliccare su “Services”. Potete mettere mano ai servizi che volete avviare o fermare o lasciare in manuale… In questa guida di base, non aggiungo dettagli a riguardo. Se siete utenti non esperti, lasciate tutto com’è.
  12. Passare ad “Advanced options”. Io ho voluto aggiungere l’opzione riguardante l’installazione dei VMware Tools sulla macchina virtuale che verrà creata, ma potete anche lasciare stare e lasciare tutto com’è.
  13. Anche nel menu “Throttling” lasciare tutto com’è.
  14. Premere “Next >” e vedrete un riassunto.
  15. Premere “Finish” per avviare la conversione.
  16. La conversione di circa 73 GB di macchina fisica, è durata 44 minuti (sto usando un Core 2 Duo 2.4 GHz e dischi SataII 10000 rpm). Alla fine del processo, potrete ora aprire la macchina virtuale con VMware Server (o VMware Player).

!! ATTENZIONE !! FATE UNA COPIA DI BACKUP DELLA MACCHINA FISICA ED ASSICURATEVI CHE TUTTO FUNZIONI NELLA NUOVA MACCHINA VIRTUALE PRIMA DI EFFETTUARE CANCELLAZIONI!! NON MI ASSUMO NESSUNA RESPONSABILITA’ IN CASO  DI PERDITE DI DATI/SISTEMI O ALTRI TIPI DI DANNI.

Note post-installazione

  • Appena avviata la macchina virtuale Windows XP, poiché rileva un cambiamento corposo di hardware, vi comparirà il messaggio per l’attivazione della copia di Windows. Attivatela entro 3 giorni.
  • Il primo avvio di Windows XP (e anche di Windows 7) sarà un po’ lungo perché il sistema effettua la rilevazione e l’installazione del nuovo hardware (virtuale). Sarà richiesto un riavvio.
  • Se il sistema su cui state eseguendo la macchina virtuale ha lo stesso nome e IP della macchina virtuale, dovrete cambiarli (altrimenti rileverà un nome duplicato nella rete e anche un IP duplicato).

N.B.: Come già accennato sopra, io ho fatto le mie prove in un sistema multi-boot su cui sono installati Windows XP, Vista e 7. Il boot era gestito dal programma EasyBCD installato su Windows 7 e il mio obiettivo era quello di convertire solo la partizione Windows XP.

Problema riscontrato: ho provato a installare il programma VMware Converter sui tre i sistemi operativi (uno alla volta) e in tutti i casi ho notato che nelle opzioni di conversione mi obbligava a mantenere, oltre alla partizione Windows XP selezionata da me, anche la partizione preposta alla gestione del boot: Windows 7. Il risultato è stato un nuovo sistema virtuale contenente tutti e due i sistemi operativi e il conseguente utilizzo di molto più spazio.

Per togliere la partizione di Windows 7 che non mi serviva, ho semplicemente cancellato la partizione (da Gestione disco: Start -> Esegui: compmgmt.msc), ho espanso la partizione di Windows XP in modo che occupasse tutto lo spazio libero e ho ripristinato il bootloader di Windows XP. Però questa soluzione non comporta l’utilizzo di meno spazio sul disco fisso (beh, si, potrei diminuire lo spazio occupato dalla macchina virtuale), quindi sto cercando altre soluzioni… Chinque avesse qualche novità, non esiti a scrivermi un commento.

Una possibile alternativa per la conversione di partizioni: Disk2vhd

Ho voluto provare un altro software (che fa parte della Sysinternals Suite di Microsoft), Disk2vhd, per provare a risolvere il problema sopra descritto e, quindi, per convertire la singola partizione. Ho notato che questo programma permette di selezionare solo la partizione di Windows XP e di creare un file .vhd.

Problema riscontrato: ho visto che VMware Converter non è in grado di convertire i file *.vhd in qualcosa da lui riconoscibile.

Possibili soluzioni:

  • cercare un convertitore “vhd to vmdk” (non ho ancora avuto tempo di provare qualche software)
  • usare il programma gratuito VirtualBox che è in grado di gestire i file .vhd.
  • su Windows 7 ho visto che è stata aggiunta un’interessante funzionalità che permette sia di aprire i file .vhd, sia di effettuare il boot con essi (quest’ultima non l’ho mai provata). Per aprirli, basta:
  1. Tasto destro su “Computer” -> Gestione (oppure: Logo di Windows -> Cerca: compmgmt.msc).
  2. Nella finestra che si apre (Gestione Computer), andare su “Gestione disco”. Poi tasto destro sempre su “Gestione disco” -> Collega file VHD
  3. In questa finestra scegliere il file .vhd creato con Disk2vhd premendo “Sfoglia…”
  4. Premere OK.
  5. Ora, su Gestione disco vedrete l’elenco dei dischi e anche quello nuovo. Se lo vedete Offline, occorrerà semplicemente metterlo Online: tasto destro sul nuovo disco (di colore azzurro) -> Online.N.B.: non appena ho collegato il file, mi sono comparse due finestre di avvertimento che mi suggerivano di formattare le unità I: e H:Infatti, come si può vedere dalla figura, non mi viene rilevato una sola partizione (quella di Windows XP), ma le tre originali. Le due che mi chiede di formattare non sono inizializzate. Se le formatto, mi crea due nuove unità che posso utilizzare. Se le uso, la dimensione del file .vhd crescerà. Ho provato anche a eliminarle e ad espandere poi il disco “J:” e ha funzionato senza problemi. In questo caso, il lato positivo è che la dimensione del file .vhd aumenta soltanto se viene riempito.
  6. A questo punto potrete accedere normalmente alla nuova unità “virtuale”.

N.B.: Ho trovato un programma per Windows 7 che aggiunge due voci (Attach e Detach) nel menu contestuale in modo da “montare” e “smontare” velocemente i file .vhd.

Per ulteriori informazioni vi rimando al sito ufficiale:

VHD Attach