Windows Server 2008(非R2)裡面的 Hyper-V虛擬機器
安裝完 Windows Update以後,「關機並安裝更新」之後就死掉了。無法重新啟動
之前,「重新啟動並安裝更新」則正常
出現的錯誤訊息 -- 無法啟動Hyper-V虛擬機器 ......憑證錯誤
找到蘇老的文章:http://www.askasu.idv.tw/index.php/2013/06/18/2793/
因為之前已經有多次 Hyper-V無法啟動的經驗,
我立即刪除「設定檔」,注意喔!不是刪除 Hyper-V的硬碟檔喔
重新建立一個新的 Hyper-V的設定,連上原本的 Hyper-V硬碟檔
成功!
如同上面蘇老的經驗談,把舊憑證刪除,也能搞定
我重新建立「設定檔」可能也做了相同的事,所以成功了。
安裝 Windows Update 或是 重新啟動機器,其實都有「風險」
沒有人料定你關機或是 Reboot以後,會不會一睡不醒了?
雖然不是每一次都這樣,但每一兩年遇見一次,心裡也是毛毛的
回過過去關於 Hyper-V的問題,我做的紀錄,共有這幾篇文章。
這次又多了一次經驗談 Orz
https://dotblogs.com.tw/mis2000lab/tags/1?qq=Hyper-V
希望以後不要遇見了,
我對於 Hyper-V的設定與管理,真的沒興趣。我不想遇見、也不想學啊
這是備份網站。主網站位於http://www.dotblogs.com.tw/mis2000lab/
MIS2000 Lab's ASP.NET & Linux (Trad. Chinese 正體中文;Big5)。這個網站,是我們(MIS2000 Lab.資訊工作室)多年教學的實際心得與上課範例,有ASP.NET程式設計,也有Linux的相關文件。
編輯。
您也可以直接參觀主網站
MIS2000 Lab. is MVP 2008-2017/7/1 for ASP/ASP.NET.
2018年10月8日 星期一
如何刪除Win2008 Hyper-V的快照(Snapshots)所佔的龐大硬碟空間?
Win2008 Hyper-V的快照(Snapshots)
以前學習Linux的時候
,曾使用過虛擬機器,那時最有名的軟體就是VMWare
http://www.vmware.com/tw/
後來微軟公司買下一家虛擬軟體的公司,推出自己的產品(好像名為 Virtural PC)
http://www.microsoft.com/hk/windows/chinese/virtual-pc/
然後在Windows 2008 Server上市時,就有 Hyper-V功能了。
目前的Windows 2008「R2」是更棒的選擇(不過 R2似乎只有 x64版本)
前些天換購了 Seagate 2.5" 固態混合硬碟 (請看-- [NB新玩具] 固態混合 硬碟)
空間變大了,RAM也夠多。就想來玩玩虛擬機器。
Q : 沒想到才幾天光陰,硬碟空間日益縮小???.................我一直找不出原因
後來才發現 Hyper-V有一個「快照」的功能
http://technet.microsoft.com/zh-tw/library/dd851843.aspx
有點類似即時硬碟備份(類似ghost 或是 硬碟的差異備份)
,當然很佔硬碟空間
上述的微軟說明文章,有很好的建議:
===================================
您應先考量下列項目,再開始使用快照:
*建立快照時虛擬機器的效能降低。您不應該在生產環境中提供服務的虛擬機器上使用這些快照。
*不建議您在設定使用固定虛擬硬碟的虛擬機器上使用快照,因為他們會降低使用固定虛擬硬碟所得來的效能助益。
*快照需要足夠的儲存空間。快照會以.avhd檔案的形式儲存在虛擬硬碟中的同一個位置。建立多個快照會迅速消耗大量的儲存空間。使用[Hyper-V管理員]刪除快照時,會從快照樹狀目錄中移除該快照,但關閉虛擬機器之後才會刪除.avhd檔案。
*請勿直接從儲存位置刪除 .avhd檔案。
*不建議您在設定使用固定虛擬硬碟的虛擬機器上使用快照,因為他們會降低使用固定虛擬硬碟所得來的效能助益。
*快照需要足夠的儲存空間。快照會以.avhd檔案的形式儲存在虛擬硬碟中的同一個位置。建立多個快照會迅速消耗大量的儲存空間。使用[Hyper-V管理員]刪除快照時,會從快照樹狀目錄中移除該快照,但關閉虛擬機器之後才會刪除.avhd檔案。
*請勿直接從儲存位置刪除 .avhd檔案。
重點來了------
必須在Windows 2008「伺服器管理員」裡面,將 Hyper-V裡面的虛擬機器,依照正常程序 關 機 。
然後才能刪除快照。
註解:「關閉」就跟電源中斷一樣,機器會立刻關掉。
我們選「關機」才可以依照正常程序作關機。
[設定] 裡面,可以透過 Integrated Server關閉快照功能。
這些步驟,會出現 操作----「合併中....XX%」的程序,滿花時間的。
必須等到合併完成後,才能重新啟動 Hyper-V裡面的虛擬機器
不然的話,快照檔案( .avhd檔) 永遠刪除不掉喔。
他會一直重生.... 一直佔據大量硬碟空間.....
ASP.NET MVC,檔案上傳搭配資料庫(FileUpload 檔案二進位存入資料表)
這個範例源自微軟ASP.NET MVC認證考試的教材 -- https://github.com/MicrosoftLearning/20486-DevelopingASPNETMVCWebApplications
FileUpload檔案上傳時,如果要把圖片(二進位內容)存入資料表
資料表的欄位「資料型態」請設定為 Image (舊版本在用的)或 VarBinary(MAX)
(1) 轉成類別檔以後,會變成
public byte[] PhotoFile { get; set; }
(2) 上傳以後,存入(寫入、新增)資料表的寫法:
[HttpPost]
public ActionResult Create(Photo photo, HttpPostedFileBase image)
{ // ****************************
if (ModelState.IsValid)
{ //*** 檔案上傳 ****************************************(start)
if (image != null) {
photo.PhotoFile = new byte[image.ContentLength];
image.InputStream.Read(photo.PhotoFile, 0, image.ContentLength);
}
//*** 檔案上傳 ****************************************(end)
_db.Photos.Add(photo); // 新增一筆記錄
_db.SaveChanges(); // 正式寫入資料庫!
return RedirectToAction("Index");
}
return View(photo);
}
(3) 從資料表裡面「讀取」這些二進位的檔案,並還原成圖片
public ActionResult Index()
{
return View("Index", _db.Photos.ToList());
}
//*** 把資料表裡面的「二進位」內容,還原成圖片檔 ****************************
public FileContentResult GetImage(int PhotoID)
{
Photo requestedPhoto = _db.Photos.FirstOrDefault(p => p.PhotoID == PhotoID);
if (requestedPhoto != null) {
return File(requestedPhoto.PhotoFile, "image/jpeg");
}
else {
return null;
}
}
(4) 容易犯錯的地方在於「檢視畫面(View)」,
我們採用 List範本,列出所有照片
@foreach (var item in Model) {
@if (item.PhotoFile != null) {
@
Url.Action("GetImage 動作", "控制器名稱", new { item.PhotoID })" />
}
}
ASP.NET MVC 第一天 5.5小時 完整教學影片,免費觀賞
請看 http://mis2000lab.pixnet.net/blog/post/35141956
FileUpload檔案上傳時,如果要把圖片(二進位內容)存入資料表
資料表的欄位「資料型態」請設定為 Image (舊版本在用的)或 VarBinary(MAX)
(1) 轉成類別檔以後,會變成
public byte[] PhotoFile { get; set; }
(2) 上傳以後,存入(寫入、新增)資料表的寫法:
[HttpPost]
public ActionResult Create(Photo photo, HttpPostedFileBase image)
{ // ****************************
if (ModelState.IsValid)
{ //*** 檔案上傳 ****************************************(start)
if (image != null) {
photo.PhotoFile = new byte[image.ContentLength];
image.InputStream.Read(photo.PhotoFile, 0, image.ContentLength);
}
//*** 檔案上傳 ****************************************(end)
_db.Photos.Add(photo); // 新增一筆記錄
_db.SaveChanges(); // 正式寫入資料庫!
return RedirectToAction("Index");
}
return View(photo);
}
(3) 從資料表裡面「讀取」這些二進位的檔案,並還原成圖片
public ActionResult Index()
{
return View("Index", _db.Photos.ToList());
}
//*** 把資料表裡面的「二進位」內容,還原成圖片檔 ****************************
public FileContentResult GetImage(int PhotoID)
{
Photo requestedPhoto = _db.Photos.FirstOrDefault(p => p.PhotoID == PhotoID);
if (requestedPhoto != null) {
return File(requestedPhoto.PhotoFile, "image/jpeg");
}
else {
return null;
}
}
(4) 容易犯錯的地方在於「檢視畫面(View)」,
我們採用 List範本,列出所有照片
@foreach (var item in Model) {
@if (item.PhotoFile != null) {
@
Url.Action("GetImage 動作", "控制器名稱", new { item.PhotoID })" />
}
}
ASP.NET MVC 第一天 5.5小時 完整教學影片,免費觀賞
請看 http://mis2000lab.pixnet.net/blog/post/35141956
第一天,5.5小時的影片(完整內容),免費讓您評估
不用客氣。
註冊完 https://vimeo.com/ 的會員(免費帳號),就寫信跟我登記吧!
請把下圖的資訊,告訴我!
一律透過 E-Mail報名。謝謝您 mis2000lab (at) yahoo.com.tw 或是 school (at) mis2000lab.net
標籤:
二進位,
資料庫,
檔案上傳,
檔案上傳與資料庫,
檔案存入資料庫,
ASP.NET,
ASP.NET MVC,
byte[],
fileupload,
MVC,
SQL Server,
VarBinary
訂閱:
文章 (Atom)