導航:首頁 > 操作系統 > linuxxfs文件恢復

linuxxfs文件恢復

發布時間:2023-08-27 18:04:11

linux 磁碟 操作

1、查看實例上的數據盤信息。

運行以下命令

運行結果如下所示。

依次運行以下命令,創建一個分區。

運行以下命令分區數據盤。

輸入 p 查看數據盤的分區情況。

本示例中,數據盤沒有分區。

輸入 n 創建一個新分區。

輸入 p 選擇分區類型為主分區。

說明  創建一個單分區數據盤可以只創建主分區。如果要創建四個以上分區,您應該至少選擇一次e(extended),創建至少一個擴展分區。

輸入分區編號,按 回車鍵 。

本示例中,僅創建一個分區,直接按 回車鍵 ,採用默認值 1 。

輸入第一個可用的扇區編號,按 回車鍵 。

本示例中,直接按回車鍵,採用 默認值2048 。

輸入最後一個扇區編號,按 回車鍵 。註:也可用   +size{K,M,G}  確定分區大小

本示例中,僅創建一個分區,直接按 回車鍵 ,採用 默認值 。

輸入 p 查看該數據盤的規劃分區情況。

輸入 w 開始分區,並在完成分區後退出。

運行結果如下所示。

查看新分區信息。

運行以下命令:

運行結果如下所示,如果出現 /dev/vdb1 的相關信息,表示新分區已創建完成。

步驟二:為分區創建文件系統

在新分區上創建一個文件系統。根據您的需求運行以下任一命令,創建文件系統。

創建一個 ext4 文件系統,運行以下命令。

創建一個xfs文件系統,運行以下命令。

本示例中,創建一個ext4文件系統。

步驟三:配置/etc/fstab文件並掛載分區

在/etc/fstab中寫入新分區信息,啟動開機自動掛載分區。

注意  由於釋放雲盤等操作可能會導致其他雲盤的設備名變動,建議您在/etc/fstab中使用全局唯一標識符UUID來引用新分區。

備份etc/fstab文件。

運行以下命令:

在/etc/fstab里寫入新分區信息。

root用戶可以運行以下命令直接修改/etc/fstab文件。

說明

Ubuntu 12.04系統不支持barrier,您需要運行

命令。

如果要把數據盤單獨掛載到某個文件夾,例如單獨用來存放網頁,則將命令中/mnt替換成所需的掛載點路徑。

普通用戶可以手動修改/etc/fstab文件。

運行以下命令查看新分區的UUID。

運行結果如下所示。

運行以下命令編輯/etc/fstab文件。

輸入i進入編輯模式。

在/etc/fstab文件中寫入新分區信息,UUID值請修改為前面步驟中的查詢結果。

按Esc鍵,輸入:wq,按回車鍵保存並退出。

查看/etc/fstab中的新分區信息。

運行以下命令:

運行結果如下所示。

掛載分區。

運行以下命令:

檢查掛載結果。

運行以下命令:

運行結果如下所示,如果出現新建文件系統的信息,表示文件系統掛載成功。

Ⅱ Linux文件系統的演變

說起文件系統的演變與發展,不得不從最早期的 Minix 操作系統開始說起。

Minix(MINI-UNIX) 是早期的一個迷你版本的 「類UNIX操作系統」 ,由荷蘭阿姆斯特丹自由大學計算機科學系的塔能鮑姆教授自行開發的可以與UNIX操作系統兼容的一個操作系統,因其小型,該操作系統被命名為 MINIX 。

MINIX 系統在設計之初,採用程序模塊化的思想,將一眾程序放在用戶空間運行,而不是在操作系統的內核中運行。如 「文件系統」 「存儲器管理」 等程序均是如此。

受 MINIX 操作系統的影響,早期的Linux操作系統也曾採用由塔能鮑姆教授開發的MINIX的文件系統。

然而,不只因為早期的 MINIX 操作系統並為真正意義上的開源軟體(在保護著作的前提下進行收費),而且基於 MINIX 的內部使用16位的偏移量,使文件系統能夠支持的最大空間只有64MB,支持的最大文件名為14字元,導致後來 Linux 操作系統轉而開發出了 ext(Extended File System) 第一代可擴展文件系統。

ext(Extended File System) 為Linux系統最早的擴展文件系統,採用 「UNIX文件系統」 的元數據結構,克服了 「MINIX」 操作系統性能不佳的問題。

ext 文件系統採用 虛擬文件系統(VFS) ,最大可支持2GB的文件系統。與 MINIX 文件系統不同的是, ext 可以使用最高2GB的存儲空間並同時處理255個字元的文件名。

但,在 ext 文件系統中,文件創建時生成的 inode 信息是不變的,這導致文件發生修改後 inode 中儲存的文件時間戳並不會發生變化;而且 ext 並不會為文件妥善分配空間,磁碟上的多個文件四散分布,嚴重製約了文件系統的性能。

ext 文件系統推出後不久,其開發者便意識到 ext 文件系統中存在很大缺陷( inode不變性 和 文件空間碎片化 ),並在一年後推出了 ext2 (Second Extened File System) 第二代擴展文件系統,用來代替 ext 文件系統。

ext2 吸取了 「UNIX文件系統」 的眾多優點,並且因其良好的可擴展性( 為系統在磁碟上存儲的數據結構預留了很多空間提供給開發者使用 ),在20世紀90年代眾多文件系統中脫穎而出。

眾多新的特性, POSIX(可移植操作系統介面) 、 訪問控製表 等都是在這一代擴展文件系統上實現的。直至今天, POSIX 仍被眾多操作系統所沿用。

不僅如此, ext2 還在 ext 的基礎上進行了完善,能夠最大支持的單個文件達到 2TB。

ext2 文件系統與20世紀90年代的眾多文件系統一樣,將數據寫入到磁碟的過程中如果發生系統奔潰或斷電,極容易導致文件損壞或丟失。

正是因為類似 ext2 等同時期的一眾文件系統,在遭遇系統奔潰或斷電時會出現文件損壞或丟失。盡管 ext2 文件系統擁有開機後對文件系統中文件的一致性校驗,但校驗的過程極為耗時,且校驗的過程中,操作系統上的任何卷組都是不可訪問的。

然而 ext2 遺留的問題在 ext3(Third Extended File System) 中得到了解決。

ext3 文件系統採用日誌記錄的方式,記錄下了操作系統運行中的所有事件,這意味著即便遇到操作系統非正常關機後也無須對文件系統進行校驗,從而防止了文件系統中數據丟失的可能。

盡管 ext3 使用日誌系統進行記錄文件系統的變化,但這並沒有影響 ext3 文件系統處理數據的速度。基於日誌系統在磁碟上的優化,在 ext3 中數據的傳輸效率是高於 ext2 的,並且可以通過重新設置日誌的級別來提升文件系統的性能。

其次, ext3 在設計之初就吸收了 ext2 的很多思想,這使得 ext2 文件系統遷移到 ext3 變得極為便利。事實上, ext3 可以在從 ext2 遷移 ext3 的過程中,無須進行文件系統資料的備份,且無須擔心升級後的數據恢復問題。

也正是因為 ext3 設計之初沿用了眾多 ext2 的功能,這使得 ext3 缺乏變通。例如, 「inode的動態分配」 「可變塊大小」 等問題並沒有得到解決。不僅如此, ext3 文件系統在被掛載為寫入時,無法對文件系統進行完整性校驗。

第四代擴展文件系統( Fourth Extended File System, ext4 ) 是繼 ext3 文件系統的後續版本,不僅支持 ext3 的日誌文件體系 ,同樣支持 大文件系統 ,不僅提高了文件系統對於存儲碎片化的抵抗,而且改進了 inode固一化 的問題。

同時, ext4 文件系統在開發之初就考慮到很多問題,對眾多問題的優化和改進也使得 ext4 擁有了眾多新的特性。例如, 大文件系統 、 使用Extent文件存儲的方式 、 預分配空間 、 延遲文件獲取空間的時間 、 突破原有子目錄限制 、 增加日誌校驗和 、 在線整理磁碟 、 文件系統快速檢查 、 向下兼容其他ext文件系統`。

時至今天, ext4 文件系統已經成為Linux發行版默認使用的文件系統。

與 ext2 文件系統同一時期出現的,還有 xfs 文件系統。 xfs 文件系統是高性能的文件系統,最早在 IRIX 操作系統上開發,後期被移植到 Linux 操作系統上。現在所有的 Linux發行版 都支持 xfs 的使用。

相比 32位 Linux 的操作系統來說,64位 xfs 的文件系統能夠支持的單個文件系統要遠遠超出 32位 操作系統。

xfs 對文件系統元數據提供了日誌支持,當文件系統發生變化後,總是會保證源數據在數據塊寫入磁碟之前被寫入日誌中,磁碟中有一處緩沖區專門用來存放日誌,從而不會影響正常的文件系統。

xfs 同樣支持 「條帶化分配」 。在條帶化RAID陣列上創建 xfs 文件系統時,可以指定 條帶化數據單元。通過配置條帶化單元,使 數據分配、inode分配、日誌等與RAID條帶單元對齊,來提高文件系統的性能。

與 ext4 文件系統不同的是, xfs 文件系統還支持在線恢復。 xfs 文件系統提供了 xfsmp 和 xfsrestore 工具協助備份 xfs 文件系統中的數據。

以下為各文件系統的出現時間及特性:

參考自: https://zh.wikipedia.org/wiki/Ext4

Ⅲ Linux根目錄分區大小調整教程

1、備份 home

查看未調整前的根目錄容量,可以看到默認是分配 50G,但大都數的軟體安裝都默認在根目錄

所以這里將home的容量分給根目錄。

[root@localhost ~]# df -h

文件系統 容量 已用 可用 已用% 掛載點

/dev/mapper/centos-root 50G 18G 33G 36% /

devtmpfs 16G 0 16G 0% /dev

tmpfs 16G 200K 16G 1% /dev/shm

tmpfs 16G 106M 16G 1% /run

tmpfs 16G 0 16G 0% /sys/fs/cgroup

/dev/mapper/centos-home 434G 33M 433G 1% /home

/dev/sda1 1014M 179M 836M 18% /boot

tmpfs 3.2G 52K 3.2G 1% /run/user/0

tmpfs 3.2G 4.0K 3.2G 1% /run/user/42

/dev/sr0 4.3G 4.3G 0 100% /media

備份home

tar cvf /tmp/home.tar /home

2、拆分

卸載home分區,釋放容量

unmount /dev/mapper/home

移除home卷

lvremove /dev/mapper/centos-home

給根目錄增加容量

lvextend -L +420gG /dev/mapper/centos-root

3、復原home目錄

創建home分區

lvcreate -L 14G -n /dev/mapper/centos-home

新增home卷,並格式化為xfs格式

mkfs.xfs /dev/mapper/centos-home

掛載

mount /dev/centos-home

還原文件

tar -xvf /tmp/home.tar -C /

查看調整後的容量,可以看到根目錄容量已經增加了!

[root@localhost ~]# df -h

文件系統 容量 已用 可用 已用% 掛載點

/dev/mapper/centos-root 470G 18G 453G 4% /

devtmpfs 16G 0 16G 0% /dev

tmpfs 16G 200K 16G 1% /dev/shm

tmpfs 16G 106M 16G 1% /run

tmpfs 16G 0 16G 0% /sys/fs/cgroup

/dev/sda1 1014M 179M 836M 18% /boot

tmpfs 3.2G 52K 3.2G 1% /run/user/0

tmpfs 3.2G 4.0K 3.2G 1% /run/user/42

/dev/sr0 4.3G 4.3G 0 100% /media

Ⅳ linux磁碟重新掛載

VMware虛擬機中,Linux系統下掛載、卸載新硬碟的方法
裝載:
1、啟動vm,選擇vm->Settings,按向導添加一塊SCSI磁碟。進入Linux系統。
2、 fdisk -l 會看到有一塊新的設置,如果你先前有一塊硬碟(sda1, sda3...),新加的這塊應該是(/dev/sdb)。 (如果添加的第二塊硬碟是IDE硬碟,應該看到hdb,如果是SCSI硬碟,看到的就是應該sdb)
[root@localhost ~]# fdisk -l

Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda3 14 1044 8281507+ 83 Linux

Disk /dev/sdb: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdb doesn't contain a valid partition table

3、分區:
[root@localhost ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.

The number of cylinders for this disk is set to 1044.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): m ##在這里按m ,就會輸出幫助;
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition ##這是刪除一個分區的動作;
l list known partition types ##:l是列出分區類型,以供我們設置相應分區的類型;
m print this menu
n add a new partition ##添加一個分區;
o create a new empty DOS partition table
p print the partition table ##p列出分區表;
q quit without saving changes ##不保存退出;
s create a new empty Sun disklabel
t change a partition's system id ##t 改變分區類型;
u change display/entry units
v verify the partition table
w write table to disk and exit ##把分區表寫入硬碟並退出;
x extra functionality (experts only) ##擴展應用,專家功能;

Command (m for help): n
Command action
e extended ##擴展分區
p primary partition (1-4) ##選p建主分區
p
Partition number (1-4): 1
First cylinder (1-17849, default 1): ##註:這個就是分區的Start 值;這里最好直接按回車,如果你輸入了一個非默認的數字,會造成空間浪費;
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-17849, default 17849): 8920
Using default value 500
##這個是定義分區大小的,+200M 就是大小為200M ;當然你也可以根據上面提示的單位cylinder的大小來算,然後來指定 End的數值,在fdisk –l命令中可以看到Units = cylinders of 16065 * 512 = 8225280 bytes,這個就是單位cylinder的大小,我這里選的End的數值是8920,正好是總大小的一半,71G左右
##然後再來建一個主分區
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (8921-17849, default 8921):8921
Using default value 8921
Last cylinder or +size or +sizeM or +sizeK (8921-17849, default 17849):17849
Using default value 17849
##最後保存並退出,切記,一定要保存,不然不會生效的。
Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
##使用fdisk –l命令來查看磁碟狀況:
[root@localhost ~]# fdisk -l

Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda3 14 1044 8281507+ 83 Linux

Disk /dev/sdb: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sdb1 1 8920 71649868+ 83 Linux
/dev/sdb2 8921 17849 71722192+ 83 Linux
##磁碟/dev/sdb已經被劃分為2個分區,每個分區大小大概是71G左右。
##在掛載文件系統之前,需要將/dev/sdb1和/dev/sdb2重新用mkfs -t ext3 命令格式化一下,否則在掛載時會報錯。
4、格式化分區:使用mkfs.ext3 /dev/sdb命令格式化磁碟 註:也可以使用mkfs -t ext3 /dev/sdb命令
[root@localhost ~]# mkfs -t ext3 /dev/sdb1 ##指將該磁碟格式化成ext3文件系統
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
1048576 inodes, 2096474 blocks
104823 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2147483648
64 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 31 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.

補充:掛載
掛載文件系統,目前有兩種方法:
一是通過 mount 來掛載,使用mount掛載系統,一旦系統重啟之後就需要重新掛載。
二是通過/etc/fstab文件來開機自動掛載。
我把/dev/sdb1掛載到/test下
[root@localhost ~]# mkdir /test ## 首先建立掛載的目錄test
(或者[root@localhost ~]# cd /
[root@localhost ~]# mkdir test
)
[root@localhost ~]# df –h ##掛載前的分區
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
6.7G 5.8G 576M 92% /
/dev/sda1 99M 12M 82M 13% /boot
tmpfs 233M 0 233M 0% /dev/shm
[root@localhost ~]# mount /dev/sdb1 /test
[root@localhost ~]# df –h ##掛載後的分區
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
6.7G 5.8G 576M 92% /
/dev/sda1 99M 12M 82M 13% /boot
tmpfs 233M 0 233M 0% /dev/shm
/dev/sdb1 7.9G 147M 7.4G 2% /test
6、通過/etc/fstab文件來開機自動掛載(不然重啟電腦後系統將不會保存之前的掛載操作):
[root@localhost ~]# vi /etc/fstab
/dev/VolGroup00/LogVol00 / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
devpts /dev/pts devpts gid=5,mode=620 0 0
tmpfs /dev/shm tmpfs defaults 0 0
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
/dev/VolGroup00/LogVol01 swap swap defaults 0 0
/dev/sdb1 /test ext3 defaults 1 1
/dev/sdb2 /test ext3 defaults 1 1
# Beginning of the block added by the VMware software
.host:/ /mnt/hgfs vmhgfs defaults,ttl=5 0 0
# End of the block added by the VMware software
第一欄位:設備名,在這里表示是文件系統; 有時我們把掛載文件系統也說成掛載分區;
第二欄位:文件系統的掛載點;
第三欄位:文件系統類型;
第四欄位:mount 命令的選項,和mount 中的-o 同理;defaults包括這些選項 rw, suid, dev, exec, auto, nouser, async;
第五欄位:表示文件系統是否需要mp 備份,1是需要,0 是不需要;
第六欄位: 是否在系統啟動時,通過fsck磁碟檢測工具來檢查文件系統,1是需要,0是不需要,2是跳過;
卸載:
[root@localhost ~]# umount /dev/sdb1
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
6.7G 5.8G 576M 92% /
/dev/sda1 99M 12M 82M 13% /boot
tmpfs 233M 0 233M 0% /dev/shm

補充知識:
1. mount可以用來掛載什麼:
不同的操作系統使用不同的文件系統格式。MS-DOS支持FAT16文件系統,Windows98支持FAT16、FAT32文件系 統,WindowsNT支持FAT16、NTFS文件系統,Windows2000則支持FAT16、FAT32、NTFS三種文件系統格式,現在的xp 可以支持FAT32,NTFS,現在最新版本的windows 7 引入了新的WinFS文件系統。 而 Linux差不多支持所有的文件系統格式,但一般使用ext2或ext3文件系統。很多用戶使用的是windows操作系統,如果想在運行的Linux下 訪問其它文件系統中的資源的話,就要用Linux mount命令來實現。
2. mount使用格式:
mount命令[-參數] [設備名稱] [掛載點]
說明:
[掛載點]必須是一個已經存在的目錄,這個目錄可以不為空,但掛載後這個目錄下以前的內容將不可用,umount以後會恢復正常。
[設備名稱] 可以是一個分區,一個usb設備,光碟機,軟盤,網路共享等。
常見參數說明:
Mount 掛載文件系統使用幫助
參數 說明
掛載指定的設備類型:adfs, affs, autofs, coda, coherent, cramfs,
devpts, efs, ext, ext2, ext3, hfs, hpfs, iso9660, jfs, minix,
msdos, ncpfs, nfs, nfs4, ntfs, proc, qnx4, ramfs, reiserfs,
romfs, smbfs, sysv, tmpfs, udf, ufs, umsdos, vfat, xenix, xfs,
xiafs

一般文件類型,可以不需要指定就可以有相同自動檢測(adfs, bfs,
cramfs, ext, ext2, ext3, hfs, hpfs, iso9660, jfs, minix, ntfs,
qnx4, reiserfs, romfs, udf, ufs, vxfs, xfs, xiafs 等文件系統),如
果探測失敗,就將訪問/etc/filesystems ,以指定文件系統探測。說
明:如果清楚文件系統,最好指定具體類型。探測錯誤將帶來災難性
的。
多個文件系統可以用「,」分割開來.
-t vfstype mount -a -t nomsdos,ext
將掛載fstab文件指定所有的文件系統,除了類型為 msdos 和 ext 的
那一些。

閱讀全文

與linuxxfs文件恢復相關的資料

熱點內容
生意圈app是什麼意思 瀏覽:395
linuxarcgisserver 瀏覽:234
加密pdf怎麼修改文件 瀏覽:138
紅米刷機無命令怎麼辦 瀏覽:356
啥叫美國谷歌外包程序員 瀏覽:260
雲伺服器管家婆 瀏覽:440
發郵件命令 瀏覽:354
程序員好做嗎工作好嗎 瀏覽:886
雲電腦伺服器維護一個月多少錢 瀏覽:882
有沒有什麼app數學題型較多 瀏覽:341
政策pdf 瀏覽:295
有什麼好玩的文娛app 瀏覽:811
python教學合集 瀏覽:959
有什麼好用的小眾app嗎 瀏覽:118
芋道app源碼 瀏覽:448
計算機程序員怎麼找 瀏覽:282
智聯發pdf 瀏覽:241
c語言編譯錯誤變黑 瀏覽:74
手機軟體加密了怎麼解開 瀏覽:887
linux中的ln命令例子 瀏覽:143