Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Paste
P11298
nuke-lvm.sh
Active
Public
Actions
Authored by
Kormat
on May 25 2020, 1:01 PM.
Edit Paste
Archive Paste
View Raw File
Subscribe
Mute Notifications
Award Token
Flag For Later
Tags
None
Referenced Files
F31841538: raw.txt
May 25 2020, 1:01 PM
2020-05-25 13:01:07 (UTC+0)
Subscribers
None
#!/bin/sh
# All sizes/offsets are in sectors (512B)
set
-exu
[
! -e /tmp/nuke_lvm
]
||
exit
0
mkdir /tmp/nuke_lvm
cd
/tmp/nuke_lvm
# Find LVM physical volume
pvs -o pv_name,pe_start --units s --noheadings --nosuffix > pvs.list
[
-s pvs.list
]
||
{
echo
"No pv's detected:
$(
pvs
)
"
;
exit
0
;
}
read
pv_name pe_start < pvs.list
disk
=
$(
debconf-get partman-auto/disk
)
[
"
$disk
"
]
||
{
echo
"ERROR: partman-auto/disk is unset"
;
exit
1
;
}
part_num
=
${
pv_name
#
$disk
}
# Find LVM logical volume
lvs -o lv_size,lv_layout --units s --noheadings --nosuffix > lvs.list
[
-s lvs.list
]
||
{
echo
"ERROR: no lv's detected:
$(
lvs
)
"
;
exit
1
;
}
read
lv_size lv_layout < lvs.list
[
"
$lv_layout
"
==
"linear"
]
||
{
echo
"ERROR: unsupported lv layout '
$lv_layout
' (expected 'linear')"
;
exit
1
;
}
sfdisk -d
"
$disk
"
|
grep
"^
$pv_name
\\>"
> sfdisk.part
[
-s sfdisk.part
]
||
{
echo
"ERROR: pv
$pv_name
not found on disk
$disk
"
;
exit
1
;
}
read
_ _ _ pv_start _ pv_size _ < sfdisk.part
pv_start
=
${
pv_start
%,
}
pv_size
=
${
pv_size
%,
}
sfdisk --delete
${
disk
:?
}
${
part_num
:?
}
echo
"start=
$((
pv_start
+
pe_start
))
, size=
$lv_size
, type=83"
echo
"start=
$((
pv_start
+
pe_start
))
, size=
$lv_size
, type=83"
|
sfdisk -N
"
$part_num
"
"
$disk
"
;
Event Timeline
Kormat
created this paste.
May 25 2020, 1:01 PM
2020-05-25 13:01:07 (UTC+0)
Kormat
mentioned this in
T252195: In-place conversion from LVM to normal partition
.
May 25 2020, 1:03 PM
2020-05-25 13:03:24 (UTC+0)
Log In to Comment