ESXi VM 使用實體硬碟

ESXi VM 使用實體硬碟

前言

不管是實體進行虛擬化之後或是虛擬化之前,原有硬碟資料使用上除了可以將檔案備份至虛擬硬碟環境中使用,還可以直接將實體硬碟給虛擬機器使用,使用上也是利用vmkfstools並配合命令z來完成它。

使用實體硬碟時必需要建立與實體硬碟溝通的方式,所以使用工具建立一個.vmdk中介檔,它與虛擬硬碟提供的.vmdk是一樣,但它只是個中介檔,命令如下:

vmkfstools –z [硬碟掛載路徑] [產生連結的vmdk檔案]

(繼續閱讀…)

 ESXi上增加虛擬硬碟容量

ESXi上增加虛擬硬碟容量

虛擬環境建立時所設定的虛擬硬碟如果容量不足時,想要增加虛擬硬碟容量時該怎麼做?是需要重新再建立一個容的量大的再像在PC上用備份的方式將資料備份過去嗎?其實在虛擬的環境是很方便的,直接將原先的虛擬硬碟做 擴展 的動作就完成虛擬硬碟容量的增加。

ESXi提供vmkfstools工具再配合命令X就能完成這個動作,命令用法如下:

vmkfstools –X [容量] [路徑]

(繼續閱讀…)

 Debian 64位元下執行32位元應用

debian 64位元下執行32位元應用

在Linux 64位元下要執行32位元程式只要安裝32位元相關的函數庫就可以正常執行,所以要先將原本只有64位元模式再加上32位元模式,這個對於Debian來說叫arch,一個系統中可以存在多個arch,這種的叫multiarch,所以利用dpkg將要加入的arch加入,這次需要加的是32位元模式,在命令上面要加入i386

dpkg –add-architecture i386 # enable multi-arch

(繼續閱讀…)

 目錄管理(Create/Copy/Move/Remove/Attribute)

目錄管理(Create/Copy/Move/Remove/Attribute)

NSFileManager 照名稱當然也是提供最基本目錄管理:拷貝、移動、刪除功能,以上這些與檔案管理其實是類似的,目錄管理增加了一項建立目錄的功能,當然也會依照路徑表示方式,使用2種方式介紹。

傳統路徑表示

傳統路徑所代表的就是一般路徑表示,Mac是使用Unix的路徑表示方式。

建立目錄 Create

建立目錄時,必需要注意withIntermediateDirectories這個傳入的值,當YES,不管您指定的目錄名稱中間的目錄是否存在,它都會自動不存在的目錄並將所有目錄建立完成,例如,當我要建立目錄名稱為dir1,並且指定的路徑是/tmp/dira/dir1,中間的dira目錄並不存在,但指定withIntermediateDirectories: YES就會先建立dira再建立dir1,反之只要建立目錄過程碰到 路徑本身不存在或您指定的目錄已經存在 時就會停止建立並返回建立失敗值為NO

//-----------start-----------
NSFileManager *filemanager;

filemanager = [NSFileManager defaultManager];

if ([filemanager createDirectoryAtPath: @"/tmp/dir1" withIntermediateDirectories: YES attributes: nil error: NULL]  == YES)
        NSLog (@"建立成功!");
else
        NSLog (@"建立失敗!");

//------------end------------

(繼續閱讀…)

 檔案管理(Copy/Move/Remove)

檔案管理(Copy/Move/Remove)

NSFileManager 照名稱當然也是提供最基本檔案管理:拷貝、移動、刪除功能,接下來依照路徑表示方式,使用2種方式介紹。

傳統路徑表示

傳統路徑所代表的就是一般路徑表示,Mac是使用Unix的路徑表示方式。

拷貝檔案 Copy

//-----------start-----------
NSFileManager *filemanager;

filemanager = [NSFileManager defaultManager];

if ([filemanager copyItemAtPath: @"/tmp/file.txt" toPath: @"/tmp/newfile.txt" error: NULL]  == YES)
        NSLog (@"拷貝成功!");
else
        NSLog (@"拷貝失敗!");

//------------end------------

(繼續閱讀…)

 mutable VS immutable

mutable VS immutable

可變 與 不可變 類別

Objective-C在Fundation Framework中提供了 可變類別(mutable)不可變類別(immutable),依字面來說,不可變類別即是物件宣告時就給予初始值內容,其內容無法去修改,如果用方法所產生與原先不同的內容時,其方法都會將物件重新建立後再取代原先物件。

不可變類別

舉個例子來說,Java在字串中也有 StringStringBuilder 這兩種方式,以 StringBuilder 就是指可變類別(mutable),下面以NSString例子來看一下不可變類別:

//-----------start-----------
    NSString *str = @"danny";
    NSLog(@"%@",str);
    str = [str stringByAppendingString:@" is danny"];
    NSLog(@"%@",str);
//------------end------------

程式中看的出來第一次初始值為danny,之後再將它加入is danny,但在不可變的底層來說:

  • 第一次建立 danny 指向str
  • 第二次建立 danny is danny 指向str並刪除第一次建立的danny

    (繼續閱讀…)