作者 主題: 發現df與fdisk -l輸出的結果不一致  (閱讀 3458 次)

0 會員 與 1 訪客 正在閱讀本文。

reegx

  • 可愛的小學生
  • *
  • 文章數: 5
    • 檢視個人資料
發現df與fdisk -l輸出的結果不一致
« 於: 2010-09-21 10:09 »
問題是這樣出現:
最初安裝Linux時,硬盤(IDE)只是分了2個區:sda1,大約4G,掛載到"/".sda2,大約1G,作為交換分區.現在想換一個硬盤(也是IDE的),而不想重新再裝一遍.所以先將新硬盤掛到主機上,作為第2個硬盤(sdb).用fdisk對它行分區:sdb1,大約7G,格式化為ext4格式 (mkfs.ext4命令).sdb2,大約1G,格式化為交換分區(mkswap命令).

然後執行dd if=/dev/sda1 of=/dev/sdb1

運行完畢後,執行grub指令:
[root@test-bak ~]# grub
Probing devices to guess BIOS drives. This may take a long time.


GNU GRUB version 0.97 (640K lower / 3072K upper memory)

[ Minimal BASH-like line editing is supported. For the first word, TAB
lists possible command completions. Anywhere else TAB lists the possible
completions of a device/filename.]
grub> root (hd1,0)
root (hd1,0)
Filesystem type is ext2fs, partition type 0x83
grub> setup (hd1)
setup (hd1)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/e2fs_stage1_5" exists... yes
Running "embed /boot/grub/e2fs_stage1_5 (hd1)"... 26 sectors are embedded.
succeeded
Running "install /boot/grub/stage1 (hd1) (hd1)1+26 p (hd1,0)/boot/grub/stage2 /boot/grub/grub.conf"... succeeded
Done.
grub>
將grub安裝到新硬盤的mbr區.

關閉電腦,將舊的硬盤拆下來,只留新的硬盤並在主板上設成從它啟動.開機後能正常啟動並進入系統並登錄,但是這個時候執行df與fdisk -l輸出的結果就不一樣了:
[root@test-bak ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 4128448 604028 3314708 16% /
tmpfs 254888 0 254888 0% /dev/shm
[root@test-bak ~]# fdisk -l

Disk /dev/sda: 20.5 GB, 20547841536 bytes
255 heads, 63 sectors/track, 2498 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Device Boot Start End Blocks Id System
/dev/sda1 1 1045 8393931 83 Linux
/dev/sda2 1046 1212 1341427+ 82 Linux swap / Solaris

fdisk -l說新硬盤的第一分區有7G的容量,而df卻顯示第一分區還是與舊的硬盤一樣只到4G的容量.
請問一下為何會出現這樣的情況?我能使用的空間到底是多少?不一致是否會對系統有不利的影響?

gwstudy

  • 活潑的大學生
  • ***
  • 文章數: 205
    • 檢視個人資料
回覆: 發現df與fdisk -l輸出的結果不一致
« 回覆 #1 於: 2010-09-21 12:42 »
你用 dd 把 partition copy 過去,連檔案系統都 copy 過去了。
檔案系統包含了大小(也就原來的 4G),所用 df 看只看到 4G。
但 fdisk 是看 partition,所以看到 7G。
你應該用 cp -a 不要用 dd,但最好在沒 mount sda1 時做。

reegx

  • 可愛的小學生
  • *
  • 文章數: 5
    • 檢視個人資料
回覆: 發現df與fdisk -l輸出的結果&
« 回覆 #2 於: 2010-09-21 13:49 »
用過cp -a,但是最後不能啟動系統.能不能說得詳細一些?比如哪些東西是要註意的?

hikohan

  • 俺是博士!
  • *****
  • 文章數: 1288
    • 檢視個人資料
回覆: 發現df與fdisk -l輸出的結果不一致
« 回覆 #3 於: 2010-09-21 14:25 »
老瓜一條

http://phorum.study-area.org/index.php/topic,42870.0.html

建議用rescue CD開機,磁區格式要對應上fstab,例如ext4 -> ext4

tar pipe 複製完畢後,要調整原來磁區的 bool loader 與 新 rootfs 的fstab 正確性,如果是根據 UUID 指定 root,就要用
blkid先抄一下新磁區。

--

推荐 dd_rescue 不錯用,支援導出資料即時gzip壓縮。
lifeIsFunWithPHP.