Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
path: root/archinstall.py
diff options
context:
space:
mode:
authorLord Anton Hvornum <anton.feeds@gmail.com>2018-05-05 19:13:48 +0200
committerLord Anton Hvornum <anton.feeds@gmail.com>2018-05-05 19:13:48 +0200
commitba09d311a21bdc5757237253d07a21019fceedcb (patch)
treeedcdf115dd4eaa18c7a195f3ffa69f5314fc3567 /archinstall.py
parent97c44e0d945b806aad73fe8ffba9d5d3dc867d2a (diff)
Fixed: nvme-drive support fixed. parted gives partition numbers, not the actual labels of devices. Hence, parted is scrapped and lsblk is used to determain partition names/labels instead.
Diffstat (limited to 'archinstall.py')
-rw-r--r--archinstall.py28
1 files changed, 12 insertions, 16 deletions
diff --git a/archinstall.py b/archinstall.py
index dad42737..9fa0d07e 100644
--- a/archinstall.py
+++ b/archinstall.py
@@ -81,9 +81,10 @@ def update_git():
def device_state(name):
# Based out of: https://askubuntu.com/questions/528690/how-to-get-list-of-all-non-removable-disk-device-names-ssd-hdd-and-sata-ide-onl/528709#528709
- with open('/sys/block/{}/device/block/{}/removable'.format(name, name)) as f:
- if f.read(1) == '1':
- return
+ if os.path.isfile('/sys/block/{}/device/block/{}/removable'.format(name, name)):
+ with open('/sys/block/{}/device/block/{}/removable'.format(name, name)) as f:
+ if f.read(1) == '1':
+ return
path = rootdir_pattern.sub('', os.readlink('/sys/block/{}'.format(name)))
hotplug_buses = ("usb", "ieee1394", "mmc", "pcmcia", "firewire")
@@ -96,20 +97,15 @@ def device_state(name):
return True
def grab_partitions(dev):
- o = run('parted -m -s {} p'.format(dev)).decode('UTF-8')
+ drive_name = os.path.basename(dev)
parts = oDict()
- for line in o.split('\n'):
- if ':' in line:
- data = line.split(':')
- if data[0].isdigit():
- parts[int(data[0])] = {
- 'start' : data[1],
- 'end' : data[2],
- 'size' : data[3],
- 'sum' : data[4],
- 'label' : data[5],
- 'options' : data[6]
- }
+ o = run('lsblk -o name -J -b {dev}'.format(dev=dev))
+ r = json.loads(o)
+ for part in r['blockdevices'][0]['children']:
+ parts[part['name'][len(drive_name):]] = {
+ # TODO: Grab partition info and store here?
+ }
+
return parts
def update_drive_list():