我的服务器中有一个磁盘,我正在将其迁移到 LVM 卷组。以前,它使用传统的 DOS 磁盘分区,hdb[1-5].
我已经从 卸载了每个文件系统hdb,使用 关闭了交换hdb,已经删除了设备上的一个较小的 VG,然后使用 fdisk 对其进行了重新分区,删除了现有分区,并创建了 2 个分区,但是在将其写出后,linux 拒绝重新分区读取分区表。使用报告重试hdparm -z:BLKRRPART failed: Device or resource busy.
我已检查以下位置以确保设备及其分区未在任何地方列出:
但cat /proc/partitions仍然列出分区,并且hdparm -z /dev/hdb仍然让我设备繁忙。
是否有什么我遗失的东西,或者一个我还不知道的秘密地方,可以找到我的块设备上仍然保留着的东西?更重要的是,如何释放它的保留以便重新加载分区表?
FWIW,在这种特定情况下,我可以简单地重新启动服务器而不必担心,但这之前一直困扰着我,我很好奇是否有更好的方法。
(编辑:添加了更精确的措辞)(编辑:重新分区的详细信息)
更新:我使用了partprobe /dev/hdb,它确实改变了一些事情:在 /dev /hdb1 中,/deb/hdb[3-5] 现在消失了,partprobe 正在报告Error: Error informing the kernel about modifications to partition /dev/hdb1 -- Device or resource busy.<-- 特别是关于 hdb1。hdb1 以前是 LVM 卷组 …
我尝试使用 PowerShell 将闪存驱动器的分区样式更改为 GPT,但 cmdlet 会抛出“磁盘已初始化”(即使我已经清理了驱动器):
PS C:\WINDOWS\system32> Clear-Disk 5 -RemoveData -RemoveOEM
PS C:\WINDOWS\system32> Get-Disk 5
Number Friendly Name OperationalStatus Total Size Partition Style
------ ------------- ----------------- ---------- ---------------
5 UFD 2.0 Silicon-Power16G USB Device Online 15.14 GB MBR
PS C:\WINDOWS\system32> Initialize-Disk 5 -PartitionStyle GPT
Initialize-Disk : The disk has already been initialized.
At line:1 char:1
+ Initialize-Disk 5 -PartitionStyle GPT
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (StorageWMI:ROOT/Microsoft/Windows/Storage/MSFT_Disk) [Initialize-Disk], CimException
+ FullyQualifiedErrorId : StorageWMI 41001,Initialize-Disk
Run Code Online (Sandbox Code Playgroud)
如何取消初始化磁盘以便重新初始化它?
PS-PartitionStyle MBR显示同样的错误。
我需要将 CentOS 安装从使用 LVM 分区的 1TB 磁盘克隆到几台相同的计算机。磁盘大部分是空的,因为只安装和配置了操作系统和一些软件。
如果没有 LVM,我会复制整个分区表,然后使用 partclone 逐个克隆分区:
sfdisk -d /dev/sda | sed -e 's/sda/sdb/' | sfdisk /dev/sdb
partclone.ext4 -c -s /dev/sda# -o - | partclone.ext4 -r -s - -o /dev/sdb#
Run Code Online (Sandbox Code Playgroud)
不过我认为它不适用于 LVM。
当然,我可以使用dd克隆整个磁盘:
dd if=/dev/sda of=/dev/sdb
Run Code Online (Sandbox Code Playgroud)
但与partclone相比需要太多时间。
有没有办法更快地克隆 LVM 分区?我认为一种可能的解决方案是使用 dd 将 LVM 分区克隆到另一个磁盘中的常规分区,然后使用 partclone 将新磁盘克隆到其他计算机。但我不知道这样的事情是否会起作用:
dd if=/dev/mapper/vg_node07-lv_root of=/dev/sdb1
Run Code Online (Sandbox Code Playgroud)
能行吗?你能告诉我其他解决方案吗?
我正在尝试为 GPT 分区分配一个分区标签,并使用该分区标签作为在 Ubuntu 14.04 中安装的标识符。
首先我设置 GPT 并在卷上创建一个分区:
~# parted /dev/vdb -s -- mklabel gpt
~# parted /dev/vdb -s -- mkpart primary 0 -1
Warning: The resulting partition is not properly aligned for best performance.
Run Code Online (Sandbox Code Playgroud)
然后我将分区标签“TEST”分配给分区 1:
~# parted /dev/vdb -s -- name 1 TEST
Run Code Online (Sandbox Code Playgroud)
并用ext4格式化分区:
~# mkfs.ext4 /dev/vdb1
mke2fs 1.42.9 (4-Feb-2014)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
6553600 inodes, 26214391 blocks
1310719 blocks (5.00%) reserved for the super …Run Code Online (Sandbox Code Playgroud) 预置 Ubuntu / Debian 工作正常 - 系统可启动。
但fdisk -l结果如下:
Disk /dev/sda: 50 GiB, 53687091200 bytes, 104857600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x000e157a
Device Boot Start End Sectors Size Id Type
/dev/sda1 63 192779 192717 94.1M 83 Linux
/dev/sda2 * 192780 1172744 979965 478.5M 83 Linux
/dev/sda3 1172745 96470324 95297580 45.5G 83 Linux …Run Code Online (Sandbox Code Playgroud) 问题:我需要弄清楚哪个卷对应哪个分区,哪个分区对应于一个非常有效的脚本庄园中的哪个磁盘。我知道如何对应哪个分区对应哪个磁盘,因为磁盘id直接在一个简单的wmic查询的结果中。然而,问题的第一部分更加困难。如何关联哪个卷属于哪个分区?
有没有办法使用 wmic、PowerShell、cmd 提示符对哪个卷映射到哪个分区进行逆向工程,这适用于所有当前支持的 Windows Server 版本(Windows Server 2008R2 - Windows Server 2016)?
如果是这样,这个查询看起来如何?
使用 diskpart 获取信息不是一种选择。虽然它可以用来编写磁盘操作的脚本,但是使用 diskpart 作为返回有关磁盘配置信息的工具是很糟糕的。Diskpart 输出不可解析。
partman多年来,我一直在使用以下设置来自动安装 VM:
d-i partman-auto/disk string /dev/sda
d-i partman-auto/method string regular
d-i partman-lvm/device_remove_lvm boolean true
d-i partman-md/device_remove_md boolean true
d-i partman-lvm/confirm boolean true
d-i partman/alignment string "optimal"
d-i partman-auto/expert_recipe string \
boot-root :: \
64 512 300% linux-swap \
$primary{ } \
method{ swap } format{ } \
. \
500 10000 1000000000 ext4 \
$primary{ } $bootable{ } \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext4 } \
mountpoint{ / } \
.
d-i partman/confirm_write_new_label boolean …Run Code Online (Sandbox Code Playgroud) 我为我的OVH云服务器额外购买了200G磁盘,因为我的初始磁盘已满。
\n现在,我的附加磁盘几乎已满(如下所示)。所以我又加了200G。如您所见,sdb 的大小现在为 400G。
\n那么,如何在 sdb1(编辑:FS ext4)linux 分区中添加 200Gb,而不丢失其中的当前数据?
\n当我跑步时:
\nlsblk\nRun Code Online (Sandbox Code Playgroud)\n我得到:
\nNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT\nsda 8:0 0 200G 0 disk \n\xe2\x94\x94\xe2\x94\x80sda1 8:1 0 200G 0 part /\nsdb 8:16 0 400G 0 disk \n\xe2\x94\x94\xe2\x94\x80sdb1 8:17 0 199.5G 0 part /mnt\nRun Code Online (Sandbox Code Playgroud)\n 所以我的服务器中有一个 240 GB 的 SSD,但我注意到当我登录时它总是显示我
\nUsage of /: 56.6% of 108.79GB
lsblk所以当我使用以下打印输出时,我开始更深入地研究:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT\nloop0 7:0 0 52.4M 1 loop /snap/certbot/579\nloop1 7:1 0 96.6M 1 loop /snap/core/9804\nloop2 7:2 0 97.1M 1 loop /snap/core/9993\nloop3 7:3 0 29.9M 1 loop /snap/snapd/8790\nloop4 7:4 0 30.3M 1 loop /snap/snapd/9279\nloop5 7:5 0 61M 1 loop /snap/core20/634\nloop6 7:6 0 55.3M 1 loop /snap/core18/1885\nsda 8:0 0 223.6G 0 disk\n\xe2\x94\x9c\xe2\x94\x80sda1 8:1 0 512M 0 part /boot/efi\n\xe2\x94\x9c\xe2\x94\x80sda2 8:2 0 1G 0 …Run Code Online (Sandbox Code Playgroud) 首先,对不起,如果问题已经被问到并正确回答,我没有找到任何让我满意的东西。
我在数据中心租了一台专用机器,该机器运行 Debian 10 并在 RAID 1 中有两个驱动器,有 3 个分区:一个用于引导,一个用于交换,一个用于其余部分。
第三个 (/dev/md2) 使用 ext4 文件系统,我想改用 XFS。
我不习惯更改文件系统,这是我第一次拥有带有 RAID 的机器,所以我不知道该怎么做。
这是一个新安装,因此没有丢失数据的风险。
我尝试了一个,mkfs.xfs /dev/md2但没有用:
root@Debian-105-buster-64-minimal ~ # mkfs.xfs /dev/md2
mkfs.xfs: /dev/md2 contains a mounted filesystem
Run Code Online (Sandbox Code Playgroud)
而且我不知道由于 RAID 应该如何卸载/挂载。
预先感谢您的帮助。
该df -Th命令:
root@Debian-105-buster-64-minimal ~ # df -Th
Filesystem Type Size Used Avail Use% Mounted on
udev devtmpfs 32G 0 32G 0% /dev
tmpfs tmpfs 6.3G 516K 6.3G 1% /run
/dev/md2 ext4 437G 1.2G 413G 1% /
tmpfs tmpfs 32G …Run Code Online (Sandbox Code Playgroud) partition ×10
ubuntu ×4
hard-drive ×3
linux ×3
lvm ×2
preseed ×2
cloning ×1
dd ×1
debian ×1
disk-volume ×1
extend ×1
gpt ×1
mdadm ×1
mount ×1
ovh ×1
powershell ×1
raid ×1
supermicro ×1
ubuntu-14.04 ×1
windows ×1
wmi ×1
xfs ×1