Skip to content

Commit 2997abc

Browse files
authored
Merge pull request #1404 from ancorgs/discard_ramdisk
Discard RAM disks as candidates for installation
2 parents a7ea9b4 + 1a522fc commit 2997abc

File tree

5 files changed

+180
-2
lines changed

5 files changed

+180
-2
lines changed

package/yast2-storage-ng.changes

+7
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
-------------------------------------------------------------------
2+
Mon Feb 24 15:11:04 UTC 2025 - Ancor Gonzalez Sosa <[email protected]>
3+
4+
- Discarded RAM disks as candidate for installation
5+
(gh#agama-project/agama#2042).
6+
- 5.0.27
7+
18
-------------------------------------------------------------------
29
Fri Feb 21 13:30:05 UTC 2025 - Knut Anderssen <[email protected]>
310

package/yast2-storage-ng.spec

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
#
1717

1818
Name: yast2-storage-ng
19-
Version: 5.0.26
19+
Version: 5.0.27
2020
Release: 0
2121
Summary: YaST2 - Storage Configuration
2222
License: GPL-2.0-only OR GPL-3.0-only

src/lib/y2storage/disk_analyzer.rb

+4-1
Original file line numberDiff line numberDiff line change
@@ -276,11 +276,14 @@ def candidate_disk_devices
276276
# A device is candidate for installation if no filesystem belonging to the device is mounted and the
277277
# device does not contain a repository for installation.
278278
#
279+
# Moreover, RAM disks are also discarded.
280+
#
279281
# @param device [BlkDevice]
280282
# @return [Boolean]
281283
def candidate_disk?(device)
282284
!contain_mounted_filesystem?(device) &&
283-
!contain_installation_repository?(device)
285+
!contain_installation_repository?(device) &&
286+
!device.name.match?(/^\/dev\/ram\d+$/)
284287
end
285288

286289
# Checks whether a device contains a mounted filesystem

test/data/devicegraphs/agama_pxe.yml

+160
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,160 @@
1+
---
2+
- disk:
3+
name: "/dev/ram0"
4+
size: 2 GiB
5+
block_size: 0.5 KiB
6+
io_size: 0 B
7+
min_grain: 1 MiB
8+
align_ofs: 0 B
9+
- disk:
10+
name: "/dev/ram1"
11+
size: 2 GiB
12+
block_size: 0.5 KiB
13+
io_size: 0 B
14+
min_grain: 1 MiB
15+
align_ofs: 0 B
16+
partition_table: gpt
17+
partitions:
18+
- free:
19+
size: 1 MiB
20+
start: 0 B
21+
- partition:
22+
size: 2 MiB
23+
start: 1 MiB
24+
name: "/dev/ram1p1"
25+
type: primary
26+
id: linux
27+
- free:
28+
size: 2045 MiB (2.00 GiB)
29+
start: 3 MiB
30+
- disk:
31+
name: "/dev/ram2"
32+
size: 2 GiB
33+
block_size: 0.5 KiB
34+
io_size: 0 B
35+
min_grain: 1 MiB
36+
align_ofs: 0 B
37+
- disk:
38+
name: "/dev/ram3"
39+
size: 2 GiB
40+
block_size: 0.5 KiB
41+
io_size: 0 B
42+
min_grain: 1 MiB
43+
align_ofs: 0 B
44+
- disk:
45+
name: "/dev/ram4"
46+
size: 2 GiB
47+
block_size: 0.5 KiB
48+
io_size: 0 B
49+
min_grain: 1 MiB
50+
align_ofs: 0 B
51+
- disk:
52+
name: "/dev/ram5"
53+
size: 2 GiB
54+
block_size: 0.5 KiB
55+
io_size: 0 B
56+
min_grain: 1 MiB
57+
align_ofs: 0 B
58+
- disk:
59+
name: "/dev/ram6"
60+
size: 2 GiB
61+
block_size: 0.5 KiB
62+
io_size: 0 B
63+
min_grain: 1 MiB
64+
align_ofs: 0 B
65+
- disk:
66+
name: "/dev/ram7"
67+
size: 2 GiB
68+
block_size: 0.5 KiB
69+
io_size: 0 B
70+
min_grain: 1 MiB
71+
align_ofs: 0 B
72+
- disk:
73+
name: "/dev/ram8"
74+
size: 2 GiB
75+
block_size: 0.5 KiB
76+
io_size: 0 B
77+
min_grain: 1 MiB
78+
align_ofs: 0 B
79+
- disk:
80+
name: "/dev/ram9"
81+
size: 2 GiB
82+
block_size: 0.5 KiB
83+
io_size: 0 B
84+
min_grain: 1 MiB
85+
align_ofs: 0 B
86+
- disk:
87+
name: "/dev/ram10"
88+
size: 2 GiB
89+
block_size: 0.5 KiB
90+
io_size: 0 B
91+
min_grain: 1 MiB
92+
align_ofs: 0 B
93+
- disk:
94+
name: "/dev/ram11"
95+
size: 2 GiB
96+
block_size: 0.5 KiB
97+
io_size: 0 B
98+
min_grain: 1 MiB
99+
align_ofs: 0 B
100+
- disk:
101+
name: "/dev/ram12"
102+
size: 2 GiB
103+
block_size: 0.5 KiB
104+
io_size: 0 B
105+
min_grain: 1 MiB
106+
align_ofs: 0 B
107+
- disk:
108+
name: "/dev/ram13"
109+
size: 2 GiB
110+
block_size: 0.5 KiB
111+
io_size: 0 B
112+
min_grain: 1 MiB
113+
align_ofs: 0 B
114+
- disk:
115+
name: "/dev/ram14"
116+
size: 2 GiB
117+
block_size: 0.5 KiB
118+
io_size: 0 B
119+
min_grain: 1 MiB
120+
align_ofs: 0 B
121+
- disk:
122+
name: "/dev/ram15"
123+
size: 2 GiB
124+
block_size: 0.5 KiB
125+
io_size: 0 B
126+
min_grain: 1 MiB
127+
align_ofs: 0 B
128+
- disk:
129+
name: "/dev/sda"
130+
size: 70 GiB
131+
block_size: 0.5 KiB
132+
io_size: 0 B
133+
min_grain: 1 MiB
134+
align_ofs: 0 B
135+
partition_table: gpt
136+
partitions:
137+
- free:
138+
size: 1 MiB
139+
start: 0 B
140+
- partition:
141+
size: 8 MiB
142+
start: 1 MiB
143+
name: "/dev/sda1"
144+
type: primary
145+
id: bios_boot
146+
- partition:
147+
size: 69622 MiB (67.99 GiB)
148+
start: 9 MiB
149+
name: "/dev/sda2"
150+
type: primary
151+
id: linux
152+
- partition:
153+
size: 2098159.5 KiB (2.00 GiB)
154+
start: 69631 MiB (68.00 GiB)
155+
name: "/dev/sda3"
156+
type: primary
157+
id: swap
158+
- free:
159+
size: 16.5 KiB
160+
start: 73400303.5 KiB (70.00 GiB)

test/y2storage/disk_analyzer_test.rb

+8
Original file line numberDiff line numberDiff line change
@@ -704,5 +704,13 @@ def format_device(device)
704704
end
705705
end
706706
end
707+
708+
context "when there are some RAM disks (PXE scenario with Agama)" do
709+
let(:scenario) { "agama_pxe" }
710+
711+
it "includes only the real physical disks" do
712+
expect(candidate_disks).to eq ["/dev/sda"]
713+
end
714+
end
707715
end
708716
end

0 commit comments

Comments
 (0)