venerdì 27 novembre 2009

Errore VMware: "Another task is already in progress"

A volte, in VMware ESX 3.5 and vSphere 4.0, quando si fanno alcune operazioni su una virtual machine (come per esempio la creazione di uno snapshot oppure si tenta di rinominare la VM) il sistema solleva un eccezione con il messaggio "A task is already in progress" anche se apparentemente non ci sono task in esecuzione.

La soluzione consiste nel connettersi in ssh all'host ESX fisico su cui risiede la VM e nel riavviare come utente root il servizio "mgmt-vmware".

service mgmt-vmware stop
    Stopping VMware ESX Management services:
    VMware ESX Host Agent Watchdog [ OK ]
    VMware ESX Host Agent [ OK ]


Aspettare 30 secondi e poi restartare il servizio

service mgmt-vmware start
    Starting VMware ESX Management services:
    VMware ESX Host Agent (background) [ OK ]
    Availability report startup (background) [ OK ]


Il server ESX e le macchine virtuali che girano su di esso si disconnetteranno dal Virtual Infrastructure/vSphere Client e se non si riconnettono da sole basta fare click con il tasto destro sull'host ESX e scegliere "reconnect".

Quando tutto risulta riconnesso, ritentare l'operazione che in precedenza dava errore e a questo punto tutto dovrebbe funzionare correttamente.

venerdì 6 novembre 2009

Limite dimensioni messaggio in Exchange 2007

In Microsoft Exchange 2007 il limite di default per la dimensione dei messaggi è di 10Mb. Per poter aumentare questo limite, ci sono diverse configurazioni da fare.

Dopo aver settato i limiti dalla GUI (Exchange Management Console) sulle mailbox degli utenti, passare alla shell (Exchange Management Shell) e digitare i seguenti comandi. I comandi in maiuscolo servono per elencare i parametri di configurazione, quelli con il "set" servono per impostarli.


GET-TRANSPORTCONFIG

set-transportconfig -MaxReceiveSize VALORE
set-transportconfig -MaxRecipientEnvelopeLimit VALORE
set-transportconfig -MaxSendSize VALORE


GET-RECEIVECONNECTOR LIST

set-receiveconnector -MaxMessageSize VALORE (se richiesto, impostare la "identity" con i valori elencati dal comando precedente)


GET-SENDCONNECTOR LIST

set-sendconnector -MaxMessageSize VALORE (se richiesto, impostare la "identity" con i valori elencati dal comando precedente)


VALORE può essere espresso, per esempio, come 10000 o 10MB

lunedì 28 settembre 2009

VMware vSphere Client in Windows 7

Il vSphere client di VMware attualmente non funziona se viene lanciato su un computer con sistema operativo Windows 7.

Da, infatti, gli errori seguenti quando si tenta di connettersi ad un server Esx o ad un Virtual Center:

  • Error parsing the server "nome del server" "clients.xml" file.
  • The type initializer for 'VirtualInfrastructure.Utils.HttpWebRequestProxy' threw an exception.

Per fare si che il programma funzioni, esiste un workaround.

  1. Modificare il file VpxClient.exe.config in questo modo:
    <?xml version="1.0" encoding="utf-8"?>

    <configuration>

    <system.net>

    <connectionManagement>

    <clear/>

    <add address="*" maxconnection="8" />

    </connectionManagement>

    </system.net>

    <appSettings>

    <add key = "protocolports" value = "https:443"/>

    </appSettings>

    <runtime>

    <developmentMode developerInstallation="true"/>

    </runtime>

    </configuration>
  2. Creare nella cartella C:\Program Files\Vmware\Infrastructure\Virtual Infrastructure Client\Launcher (o la cartella dove si è installato il software) una sottocartella Lib. In questa cartella copiare il file system.dll di .Net recuperato da una macchina che non abbia Windows 7 (vedi in fondo)
  3. Creare una nuova variabile di sistema chiamata DEVPATH con valore C:\Program Files\Vmware\Infrastructure\Virtual Infrastructure Client\Launcher\Lib

A questo punto si potrà utilizzare tranquillamente il software.

PS: per comodità, ho inserito in un file zip il file già modificato e il file system.dll ed è possibile scaricarlo qui.

mercoledì 24 giugno 2009

Shrink del file di log di SQL Server su tutti i database

Chi usa SQL Server sa che un problema che spesso si presenta è la crescita enorme e spropositata dei transaction log (file .ldf).

Il metodo più veloce per ridurre il transaction log (ma anche il più drastico, in quanto di fatto lo tronca) è quello di effettuarne lo shrink.

Ma se su un server ci sono N database, un povero DBA dovrebbe ripetere l'istruzione per N volte. Per questo motivo ho creato questo script che permette di farlo in automatico per tutti i database presenti sul server.


EXECUTE sp_msforeachdb
'USE ?;
DUMP TRANSACTION ? WITH NO_LOG;
DECLARE @LogLogicalName nvarchar(100);
SELECT @LogLogicalName = file_name(2);
DBCC SHRINKFILE(@LogLogicalName, 100);'


sp_msforeachdb: è una stored procedure microsoft non documentata che permette di eseguire codice T-SQL su tutti i database presenti su un server.

?: è il nome del database restituito dalla stored procedure.

file_name(2): è una funzione che restituisce il nome logico del file di log del database.


mercoledì 3 giugno 2009

Disabilitare un bottone dopo il click (Asp.Net)

Per disabilitare un bottone dopo il click, in modo che un utente "distratto" (per così dire) non ri-clicchi prima che si sia completata l'operazione, bisogna utilizzare javascript.
Il problema è che, utilizzando la funzione javascript per disabilitarlo, viene tolta al bottone la funzionalità di postback, e quindi di fatto la generazione dell'evento.

Per bypassare questo problema, si utilizza il codice seguente, da inserire nell'evento Page Load:

Me.btn.Attributes("onclick") = "this.disabled = true; " & Page.GetPostBackEventReference(btnSub).ToString

In cui btn è l'id del bottone e btnSub è la routine che normalmente è associata all'evento btn.Click

giovedì 14 maggio 2009

Windows Server 2008 e condivisione cartelle

Lavorando su cartelle condivise residenti su server con sistema operativo Windows Server 2008, ci si può imbattere nel seguente messaggio di errore sui client, all’apertura della cartella:

Il sistema ha rilevato un possibile tentativo di compromissione della protezione. Accertarsi di poter contattare il server di autenticazione.

Questo problema si verifica a causa del comportamento predefinito del criterio Consenti algoritmi di crittografia compatibili con Windows NT 4.0 nei controller di dominio basati su Windows Server 2008. Questo criterio viene configurato per evitare che i sistemi operativi Windows e i client di terze parti utilizzino algoritmi di crittografia vulnerabili per stabilire canali sicuri NETLOGON per i controller di dominio basati su Windows Server 2008.

 

Se è impossibile installare gli aggiornamenti software perché si verifica un'interruzione del servizio, attenersi alla seguente procedura:

1.       Accedere a un controller di dominio basato su Windows Server 2008.

2.       Fare clic sul pulsante Start, scegliere Esegui, digitare gpmc.msc, quindi scegliere OK.

3.       Nella console Gestione criteri di gruppo, espandere Foresta: Nomedominio, Nomedominio e Controller di dominio, fare clic con il pulsante destro del mouse su Criteri predefiniti controller di dominio e scegliere Modifica.

4.       Nella console Editor Gestione Criteri di gruppo espandere Configurazione computer, Criteri, Modelli amministrativi e Sistema, fare clic su Accesso rete, quindi doppio clic su Consenti algoritmi di crittografia compatibili con Windows NT 4.0.

5.       Nella finestra di dialogo Proprietà fare clic sull'opzione Abilitato, quindi scegliere OK.

Note

o        Per impostazione predefinita l'impostazione Non configurato è impostata per il criterio Consenti algoritmi di crittografia compatibili con Windows NT 4.0 nei seguenti oggetti Criteri di gruppo:

§         Criterio dominio predefinito

§         Criterio controller di dominio predefinito

§         Criteri del computer locale

Per impostazione predefinita, il comportamento per il criterio Consenti algoritmi di crittografia compatibili con Windows NT 4.0 nei controller di dominio basati su Windows Server 2008 è di impedire, a livello di programmazione, alle connessioni di utilizzare gli algoritmi di crittografia impiegati in Windows NT 4.0. Di conseguenza, gli strumenti che enumerano impostazioni dei criteri efficaci in un computer membro o in un controller di dominio non rileveranno il criterio Consenti algoritmi di crittografia compatibili con Windows NT 4.0 a meno che tale criterio non venga abilitato o disabilitato in modo esplicito.

o        I controller di dominio basati su Windows 2000 e quelli basati su Windows Server 2003 non dispongono del criterio Consenti algoritmi di crittografia compatibili con Windows NT 4.0. Di conseguenza i controller di dominio basati sulle versioni precedenti a Windows Server 2008 accettano richieste di canali sicuri dai computer client anche se tali computer utilizzano i vecchi algoritmi di crittografia impiegati in Windows NT 4.0. Se le richieste di canali sicuri vengono elaborate in modo intermittente dai controller di dominio basati su Windows Server 2008, si verificheranno risultati incoerenti.

6.       Installare aggiornamenti software di terze parti che correggano il problema o rimuovere i computer client che utilizzano algoritmi di crittografia incompatibili.

7.       Ripetere i passaggi da 1 a 4.

8.       Nella finestra di dialogo Proprietà fare clic sull'opzione Disabilitato, quindi scegliere OK.

Importante Per motivi di protezione, è necessario impostare di nuovo l'opzione per questo criterio su Disabilitato.

sabato 9 maggio 2009

jQuery e Intellisense con Visual Studio 2008 (VS 2008)

Per abilitare l'intellisense per jQuery in Visual Studio, è necessario seguire questi 3 step:


Step 1: Installare il Service Pack 1 di VS 2008

L'SP1 di VS 2008 aggiunge il supporto al "richer intellisense" per JavaScript ed anche l'autocompletamento per un ampio range di librerie JavaScript.

È possibile scaricare l'SP1 per Visual Studio 2008 QUI.


Step 2: Installare la patch KB958502 di VS 2008

Questa patch, rilasciata da Microsoft qualche settimana fa, fa si che VS verifichi la presenza di un file "-vsdoc.js" quando viene aggiunta una reference ad una libreria JavaScript. Se lo trova, lo utilizza per la gestione dell'Intellisense per quella libreria.

Il file "-vsdoc.js" può contenere anche commenti XML che forniscono la documentazione per i metodi JavaScript. La patch può essere scaricata gratuitamente da QUI.


Step 3: scaricare il file jQuery-vsdoc.js

Microsoft ha lavorato assieme al team di jQuery per creare assieme un file "-vsdoc.js" che contiene tutta la documentazione ed il supporto intellisense necessari. È possibile scaricare sia le librerie di jQuery che il file "-vsdoc.js" dalla pagina ufficiale di download di jQuery. (Il file vsdoc si trova sotto il link "Documentazione")

Salvare poi il file -vsdoc.js nella stessa cartella della libreria jQuery all'interno del progetto. È importante notare che i due file devono avere lo stesso prefisso, altrimenti non verrà riconosciuto da VS. Ad esempio se la libreria si chiama jquery.1.2.6.js il file vsdoc dovrà chiamarsi jquery.1.2.6-vsdoc.js


Ora è possibile referenziare la dll all'interno della pagina con un normale tag html <script/>:

<script src="../Folder/jquery.1.2.6.js" type="text/javascript"></script>

In questo modo VS andrà a cercare il file vsdoc appropriato e lo userà per fornire il supporto intellisense.

giovedì 23 aprile 2009

Disintallare System Center Essential (SCE) 2007

Se si sta pianificando di disinstallare SCE per un qualsiasi motivo, è importante sapere che non tutte le informazioni che il programma genera durante la sua installazione ed utilizzo vengono rimosse con la procedura di disinstallazione. Questo è importante soprattutto perché se non si rimuovono tutti i componenti che SCE installa (soprattutto sul dominio) non sarà possibile reinstallare il software.

Di seguito la procedura completa. Ovviamente dovete sostituire a NomeDominio il nome del vostro dominio...


Eliminare il gruppo SCE Managed Computers da Active Directory

Start > Esegui > dsa.msc
Tasto destro su NomeDominio e click su Trova
Digitare SCE Managed Computers nel campo Nome e click su Trova
Tasto destro su SCE Managed Computers nella lista di risultati e poi Elimina
Chiudere Computer e Utenti di Active Directory


Eliminare le Group Policies

Start > Esegui > gpmc.msc
Espandere NomeDominio
Espandere Group Policy Objects
Tasto destro su SCE Managed Computers Group Policy (…) e poi Elimina
Tasto destro su System Center Essentials All Computers Policy e poi Elimina
Chiudere Group Policy Management Console


Eliminare Service Connection Point (SCE)

La seguente procedura richiede ADSI Edit.

Start > Esegui > adsiedit.msc
Tasto destro su Domain (NomeDominio) sulla sinista e click su Nuovo > Query
Scrivere SCESCP nel box Name
Click sul bottone Browse, selezionare NomeDominio, e click su OK
Incollare la stringa (&(objectCategory=serviceConnectionPoint)(cn=SCESCP)) nel box Query String e click su OK
Espandendo Domain (NomeDominio) sarà comparsa la voce SCESCP. Click su quella voce.
Tasto destro su CN=SCESCP nel pannello di destra e click su Delete
Lasciare ADSI Edit aperto per il prossimo step


Eliminare Service Connection Point (SDKServiceSCP)

Tasto destro su Domain (NomeDominio) sulla sinista e click su Nuovo > Query
Scrivere SDKSCP nel box Name
Click sul bottone Browse, selezionare NomeDominio, e click su OK
Incollare la stringa (&(objectCategory=serviceConnectionPoint)(cn=SDKServiceSCP)) nel box Query String e click su OK
Espandendo Domain (NomeDominio) sarà comparsa la voce SDKSCP. Click su quella voce.
Tasto destro su CN=SDKServiceSCP nel pannello di destra e click su Delete

giovedì 16 aprile 2009

Asp.Net Menu e Internet Explorer 8 (IE8)

Se usate nelle vostre WebApplication il controllo Asp.Net Menu, vi sarete accorti che con Internet Explorer 8 non vengono visualizzati correttamente i sottomenu (vengono visualizzati completamente bianchi).

Microsoft ha fatto uscire delle patch da applicare all'IIS dei webserver per correggere il problema, ma a mio avviso non è la soluzione migliore. Basta infatti agire sui css per far funzionare correttamente il menu.

La classe da creare è banale:

.IE8Fix
{
z-index: 100;
}

e poi basta applicare questa classe all'elemento DynamicMenuStyle:

<asp:Menu ID="MioMenu1" runat="server" ... >
...
<DynamicMenuStyle CssClass="IE8Fix" />
...
<asp:Menu>


martedì 7 aprile 2009

SQL Server 2008 Row Constructors

Con SQL Server 2008 è stato introdotto il concetto di “Row Constructor” che aiuta senza dubbio a scrivere codice più compatto e in meno tempo.
Tramite l’utilizzo di Row Constructors è possibile inserire più righe in una tabella utilizzando un’unica istruzione INSERT:

INSERT INTO dbo.Customers(custid, companyname, phone, address)
VALUES
(1, 'cust 1', '(111) 111-1111', 'address 1')
,(2, 'cust 2', '(222) 222-2222', 'address 2')
,(3, 'cust 3', '(333) 333-3333', 'address 3')
,(4, 'cust 4', '(444) 444-4444', 'address 4')
,(5, 'cust 5', '(555) 555-5555', 'address 5');



In aggiunta a questa possibilità, ora la clausola VALUES è generale anche con altri comandi; in particolare è utilizzabile laddove sia necessario poter accedere ad una serie di valori, come se questi fossero in una tabella, ma senza avere una tabella reale. In parole più semplici è possibile riscrivere una serie di SELECT unite da un operatore UNION come un unico comando SELECT…VALUES:

SELECT *
FROM
(VALUES
(1, 'cust 1', '(111) 111-1111', 'address 1')
,(2, 'cust 2', '(222) 222-2222', 'address 2')
,(3, 'cust 3', '(333) 333-3333', 'address 3')
,(4, 'cust 4', '(444) 444-4444', 'address 4')
,(5, 'cust 5', '(555) 555-5555', 'address 5')
) AS C(custid, companyname, phone, address);

giovedì 5 marzo 2009

Redirect trasparente in HTML

A volte può capitare di dover creare un redirect per un'applicazione web o un sito web. Con i metodi normali, però, l'indirizzo indicato nella barra del browser cambia e l'utente si rende conto di esser stato redirezionato su un'altro sito, dominio o indirizzo.

C'è un modo molto semplice, però, per raggiungere questo risultato senza darne la percezione all'utente. Il metodo sfrutta i frame, ma sulla pagina non c'è alcuna traccia del loro utilizzo e nella barra sul browser l'indirizzo non cambia. Basta fare così:

<html>
    <head>
    </head>
    <frameset>
        <frame name="main" src="http://www.nuovodominio.it">
    </frameset>
    <body>
    </body>
</html>

PS: ci sono anche altri modi per fare ciò, ma tutti utilizzano javascript. Questo è l'unico modo che non prevede l'utilizzo di script o codici particolari.

mercoledì 25 febbraio 2009

Finestre modali (window.showModalDialog) e problema di cache

Quando si utilizzano le finestre modali (ovvero finestre con il focus esculivo) in Asp.Net ed in tali finestre si utilizzano dati prelevati da un DataBase, si verifica un piccolo "problema": i dati vengono caricati da db solo alla prima apertura della pagina. Se chiudiamo la finestra e la riapriamo i dati non verranno ricaricati ma saranno presi dalla cache.

Per ovviare a questo problema, bisogna inserire nel page load della pagina che verrà utilizzata come finestra modale le seguenti righe di codice:


Response.Cache.SetCacheability(HttpCacheability.NoCache)
Response.Cache.SetExpires(DateTime.Now - New TimeSpan(1, 0, 0))
Response.Cache.SetLastModified(DateTime.Now)
Response.Cache.SetAllowResponseInBrowserHistory(False)




Ricordo che, per richiamare la finestra in modo che sia modale, si deve utilizzare questa un metodo javascript:

hlkNuovaFinestra.Attributes.Add("onclick", "javascript: window.showModalDialog('PaginaDaAprire.aspx', null, 'status:no; dialogWidth:500px; dialogHeight:400px; dialogHide:true; help:no; scroll:no;')"

In questo esempio, viene aperta una finestra modale di 400x500 pixel, senza barra di stato e senza bottoni e scroll semplicemente cliccando sull'HyperLink denominato hlkNuovaFinestra.

mercoledì 18 febbraio 2009

Recuperare un'immagine da Database con VB.Net

    Dim conta As Integer = 1
    Dim Album As New Collection
    Dim Query As String
    Dim Archivio As SqlConnection

Private Sub Form2_Load(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles MyBase.Load
    Archivio = New SqlConnection
    Archivio.ConnectionString = "stringa di connessione"
    Query = "SELECT Foto FROM ALBUM"
    Dim cmd As New SqlCommand(Query, Archivio)
    Archivio.Open()
    Dim I As Integer = 0
    Dim reader As SqlDataReader = cmd.ExecuteReader()
    Dim Temp As Byte ()
    While reader.Read
        Temp = reader(0)
        Album.Add(Temp)
    End While
    If Album.Count > 0 Then
        Temp = CType (Album.Item(conta), Byte())
        Dim Img As MemoryStream = New MemoryStream(Temp)
        PictureBox1.Image = Image.FromStream(Img)
    End If
End Sub

Private Sub btnIndietro_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIndietro.Click
    Dim Temp As Byte ()
    If conta > 1 Then
        conta = conta - 1
        Temp = CType (Album.Item(conta), Byte())
        Dim Img As MemoryStream = New MemoryStream(Temp)
        PictureBox1.Image = Image.FromStream(Img)
    End If
End Sub

Private Sub btnAvanti_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAvanti.Click
    Dim Temp As Byte ()
    If conta Album.Count Then
        conta = conta + 1
        Temp = CType (Album.Item(conta), Byte())
        Dim Img As MemoryStream = New MemoryStream(Temp)
        PictureBox1.Image = Image.FromStream(Img)
    End If
End Sub

Caricare un'immagine in Database con VB.Net

    Dim Archivio As SqlConnection
    Archivio = New SqlConnection
    Archivio.ConnectionString = "stringa di connessione"
    

Private Sub btnFile_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFile.Click
    OpenFileDialog1.Filter = "BMP - Bitmap Windows | *.bmp | " _
    & "GIF - CompuServe Graphics Interchange | *.gif | JPG - " _
    & "Compatibile JFIF | *.jpg"
    OpenFileDialog1.Title = "Seleziona l'immagine da caricare ..."
    OpenFileDialog1.ShowDialog()
    If OpenFileDialog1.FileName <> "" Then
         TextBox1.Text = OpenFileDialog1.FileName.ToString
         PictureBox1.Image = Image.FromFile(OpenFileDialog1.FileName.ToString)
    End If
End Sub

Private Function ImageToStream()As Byte ()
    Dim Image As New Bitmap(TextBox1.Text)
    Dim stream As MemoryStream = New MemoryStream()
    Image.Save(stream, _
    System.Drawing.Imaging.ImageFormat.Bmp)
    Return stream.ToArray()
End Function

Private Sub Carica()
    If File.Exists(TextBox1.Text) Then
         Dim Query As String
        Query = "INSERT INTO Album (Foto) VALUES (@Img)"
        Dim comando As New SqlCommand(Query, Archivio)
        Archivio.Open()
        Dim param As SqlParameter = New SqlParameter("@Img", SqlDbType.Binary)
        param.Value = ImageToStream()
        comando.Parameters.Add(param)
        comando.ExecuteNonQuery()
        comando = Nothing
        Archivio.Close()
        PictureBox1.Image = Nothing
        TextBox1.Text = ""
    Else
        MessageBox.Show("File inesistente!!" , ""Test DB Image", _
            MessageBoxButtons.OK, MessageBoxIcon.Exclamation, _
            MessageBoxDefaultButton.Button1, _
            MessageBoxOptions.DefaultDesktopOnly)
    End If
End Sub

lunedì 19 gennaio 2009

Leggere un singolo valore da una query in VB.Net

In certe occasioni è necessario leggere un singolo valore da una tabella o comunque ottenere un singolo valore calcolato da una query. Qui c'è il codice:

Imports System.Data.Oledb


Dim ConnString As String = "stringa di connessione"
' apertura connessione
Dim Conn As New Data.OleDb.OleDbConnection(ConnString)
Cn.Open()

' preparazione ed esecuzione della richiesta
Dim SQL As String = "SELECT Dato FROM Tabella WHERE ID = 'aaaa';"
Dim comando As New Data.OleDb.OleDbCommand(Sql, Conn)
Dim ID As Integer = comando.ExecuteScalar()

' chiusura connessione
Cn.Close()

domenica 18 gennaio 2009

Conversione di un immagine in un array di byte

Convertire un'immagine in array di byte, in VB.NET, è molto semplice; si sfrutta, al riguardo, l'oggetto MemoryStream:

Private Function ConvertImageToByteArray(ByVal inputImage As Image) As Byte()
    Dim ms As New System.IO.MemoryStream
    inputImage.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp)
    Return ms.ToArray
End Function


Il risultato contrario si ottiene sfruttando la classe ImageConverter:

Private Function ConvertByteArrayToBitmap(ByVal array As Byte()) As Bitmap
    Dim ic As New ImageConverter
    Dim img As Image = CType(ic.ConvertFrom(array), Image)
    Dim bmp As New Bitmap(img)
    Return bmp
End Function

venerdì 16 gennaio 2009

Validazione di indirizzo email con VB.Net e Regular Expression

Imports System.Text.RegularExpressions


Dim ValidateMail As String = "^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-z]{2,4}|[0-9]{1,3})(\]?)$"

Dim EmailAddress As String = "$mionome@dominio.com$"

If Regex.IsMatch(EmailAddress, ValidateMail) Then
...
Else
...
End If

giovedì 15 gennaio 2009

Mount di un'unità cd in un sistema SCO/Unix

Dopo aver creato una cartella per il mount con il comando mkdir   /mnt/cdrom è necessario trovare il "nome" fisico dell'unità cdrom. Per farlo bisogna posizionarsi all'interno della cartella del device con

cd   /dev/cdrom

e dare un

ls

per verificare il nome. In questo esempio, supponiamo che il nome sia c0b0t6l0

Di conseguenza, il comando per effettuare il mount è:

mount   -r   -F   cdfs   /dev/cdrom/c0b0t6l0   /mnt/cdrom