2009-04-18 81 views
2

我想以編程方式掛載使用Fedora LiveUSB創建者創建的磁盤映像,並遇到一些問題。裝載LVM覆蓋/快照?

從我所知道的情況來看,在主機系統之外安裝LVM快照非常困難。我擁有「原始」形象和持久性快照,所以我認爲它應該在技術上可行。

任何想法?

+0

可能它會幫助添加更多的細節到你的問題。 – hlovdal 2009-04-18 21:31:42

+0

@ hlovdal, 我不確定還有什麼要添加的。我只是試圖在另一個系統上創建一個LVM快照。 – lfaraone 2009-04-19 15:34:17

回答

2

LVM的卷概念不能跨系統移植,這意味着您可以將一些md驅動器捆綁在一起,它們仍然可以工作。每個LVM vg都有一個唯一的標識符,您需要讓系統的LVM接受它。換句話說,直到您「告訴」它的存在,LVM才能「看到」卷組。一旦你這樣做,它應該從那裏順利航行。

快照由錄製的扇區變量組成。您是正確的,您應該能夠通過同時顯示原始文件和快照來顯示快照。快照本身不起作用。

我假設你在一起查看腳本,因爲你只需要lvm工具集就可以實現這一點。

有點離別的禮物,以幫助你的方式。將其保存爲/ usr/sbin/lvms,將所有者設置爲root/root,chmod 755,然後用它來保存指尖。


#!/bin/sh 
#lvms command - consolidates all LVM views into a single command 
pvscan 1>/dev/null 2>/dev/null 
vgscan 1>/dev/null 2>/dev/null 
lvscan 1>/dev/null 2>/dev/null 
echo "Available Physical Volumes - - - - - - -" 
pvs 
echo 
echo "Active Volume Groups - - - - - - - - - -" 
vgs 
echo 
echo "Active Logical Volumes - - - - - - - - -" 
lvs 
1

在一個Fedora LiveCD的或的LiveUSB操作系統映像可以暴露嵌入根文件系統之後被安裝。 Fedora的livecd-tools軟件包提供了一個實用程序liveimage-mount,它使用Python來完成這項工作。

Fedora LiveOS image(Live CD/USB操作系統)技術使用設備映射程序快照目標在啓動時創建可供讀寫安裝的根文件系統的壓縮只讀副本,其中文件系統寫入進入一個臨時或永久的寫入時複製疊加層。一切都通過dmsetup命令完成。不涉及LVM(儘管它也使用Device-mapper技術)。

LiveOS安裝的設備將在其基礎文件系統中有一個/ LiveOS /目錄。 /LiveOS/squashfs.img文件包含一個壓縮的(和只讀的)ext4文件系統,它本身包含一個/ LiveOS /目錄,並在其中包含一個名爲ext3fs.img的分佈式根文件系統。因此,squashfs.img文件包含一個目錄和文件/LiveOS/ext3fs.img,它本身包含根文件系統(使用/ bin,/ boot,/ dev,/ etc,/ home,...)。

如果安裝在設備上的持久覆蓋文件,它將被保存爲
               /LiveOS/overlay- <LABEL> - <UUID>
其中label和UUID是該設備分區標籤和所報告的下面的命令UUID,
                lsblk -o LABEL,UUID

一個可以通過編程

  1. 環安裝squashfs.img文件,然後
  2. 設置一個環裝置用於安裝1.
  3. 如果發現ext3fs.img文件有沒有永久覆蓋,您可以簡單地從步驟2(只讀,基本映像)安裝
    ext3fs.img文件或循環設備。
  4. 如果存在持久覆蓋文件,請爲其設置循環設備。
  5. 確定在512字節扇區單位的根文件系統的大小,

    blockdev --getsz <basefs_loop>

  6. 然後設置一個設備映射快照目標與這種一般的命令,

    dmsetup create <target_name> --table "0 <size> snapshot <basefs_loop> <overlay_loop> P 8"

  7. 最後,在所需的安裝點上安裝設備映射程序目標,

    mount /dev/mapper/<target_name> <mount point>